2012-09-16 90 views
0

我想讓所有的OpenCV教程運行,但到目前爲止,無法獲得教程2,面部檢測,顏色斑點檢測,工作;我可以,但是,運行教程0,1,3和4。我已校正的差錯數,包括具有添加所有的包含路徑:Android OpenCV 2.4.2教程Eclipse - 無法dlopen攝像機包裝庫

<includepath>${NDKROOT}/platforms/android-9/arch-arm/usr/include</includepath> 
<includepath>C:\android-ndk-r8b\sources\cxx-stl\gnu-libstdc++\4.6\libs\armeabi\include</includepath> 
<includepath>${NDKROOT}/sources/cxx-stl/gnu-libstdc++/4.6/include</includepath> 
<includepath>C:\android-opencv\sdk\native\jni\include</includepath> 
<includepath>C:\android-ndk-r8b\toolchains\arm-linux-androideabi-4.6\prebuilt\windows\lib\gcc\arm-linux-androideabi\4.6.x-google\include</includepath> 

我已在Application.mk文件也被更新以使用APP_ABI:= armeabi,這允許Tuts 3和4工作。 Android版本都是正確的。

某些示例根本不使用C++代碼,但仍無法打開相機包裝庫。這似乎是經過一系列試圖鏈接每個版本的庫,如libnative_camera_r2.3.3,r2.2.0等 它也這樣做,這之前我更新APP_ABI:= Tuts 3和4 armeabi-v7到APP_ABI:= armeabi,但這並不能解決其他Tuts的問題。

請幫忙。我是Android NDK的新手,只有在Windows中使用Open CV的經驗。提前致謝。

我注意到,在我可以運行的教程中,手機攝像頭是Camera類型,並使用.open()命令打開;不會運行的攝像頭,手機攝像頭被聲明爲類型VideoCapture,並且顯然需要包裝庫。只是不知道如何把它放到手機上。

回答

1

顯然,這是值得做我的電話,我在測試它:三星Galaxy S.我發現別人用一個非常類似的問題:Camera not working

而不是去通過超人編程躍起皮特通過解決這個問題,我決定在另一部手機上試用它,一個HTC幻燈片。瞧,所有的教程都運行良好,沒有問題,沒有重新編碼。

爲了完成任務,我將與我的項目一起使用HTC幻燈片。 如果有人遇到更好的解決方案,請告訴我!

更新:我做了一些更多的研究:http://answers.opencv.org/question/1223/android-opencv-support/ 看來,所有設備都不支持OpenCV Android Native Camera,因爲它被硬件平臺供應商修改。

最後更新:我做了一些更多的實驗教程,並有一個主要的DUH時刻。實際上,您可以使用OpenCV而無需使用OpenCV本機相機。我通過轉換教程3中的SampleViewBase類來替換面部檢測示例中的SampleCvViewBase類來測試它,它效果很好!主要技巧是在processImage來調用,這樣在轉換數據:

capture.retrieve(mRgba, Highgui.CV_CAP_ANDROID_COLOR_FRAME_RGBA); 
capture.retrieve(mGray, Highgui.CV_CAP_ANDROID_GREY_FRAME); 

成爲

Mat mYuv = new Mat(getFrameHeight()+getFrameHeight()/2, getFrameWidth(), CvType.CV_8UC1); 
mYuv.put(0, 0, data); 
Imgproc.cvtColor(mYuv, mRgba, Imgproc.COLOR_YUV420sp2RGB, 4); 
Imgproc.cvtColor(mRgba, mGray, Imgproc.COLOR_RGB2GRAY, 0); 

主要幫助從另一個計算器的文章就來了:Capture camera preview for using in OpenCV. Converting to RGB and Gray Mat's. Java. Android

在情況下,我沒有看到你,下午好,晚上好,晚安!

0

我認爲這是因爲您的手機,因爲我可以在我的三星Galaxy Note Phone中完美運行所有樣品。嘗試更換手機,然後運行樣本。