2012-02-07 18 views
1

我目前正在嘗試運行一些opencv過濾器(即查找egde,Median,...)存儲在圖像庫文件夾中的圖像。Android:如何將圖庫中的圖像加載到OpenCv Mat變量中?

但我得到加載圖像的錯誤。我的設備是Galaxy Tab的10.1採用Android 3.2,我的OpenCV - API 8級。

,我有以下一個按鈕來源:

@Override 
    public void onClick(View v) { 

     Bitmap myBitmap = BitmapFactory.decodeFile("/sdcard/image1.jpg");     
     Bitmap myBitmap32 = myBitmap.copy(Bitmap.Config.ARGB_8888, true); 
     Mat pic1 = Utils.bitmapToMat(myBitmap32); 

    } 

這裏是logcat的:

02-07 12:31:27.290: I/System.out(16522): Not a DRM File, opening notmally 
02-07 12:31:27.290: I/System.out(16522): buffer returned 
02-07 12:31:27.310: D/dalvikvm(16522): GC_FOR_ALLOC freed 11K, 21% free 6975K/8775K, paused 19ms 
02-07 12:31:27.320: I/dalvikvm-heap(16522): Grow heap (frag case) to 12.918MB for 6291472-byte allocation 
02-07 12:31:27.340: D/dalvikvm(16522): GC_FOR_ALLOC freed <1K, 13% free 13119K/14983K, paused 19ms 
02-07 12:31:27.380: D/dalvikvm(16522): GC_CONCURRENT freed 0K, 13% free 13119K/14983K, paused 2ms+2ms 
02-07 12:31:27.710: D/dalvikvm(16522): GC_FOR_ALLOC freed 55K, 13% free 13063K/14983K, paused 20ms 
02-07 12:31:27.730: I/dalvikvm-heap(16522): Grow heap (frag case) to 24.864MB for 12582928-byte allocation 
02-07 12:31:27.780: D/dalvikvm(16522): GC_FOR_ALLOC freed 0K, 8% free 25351K/27335K, paused 21ms 
02-07 12:31:27.830: D/dalvikvm(16522): GC_CONCURRENT freed <1K, 8% free 25351K/27335K, paused 2ms+3ms 
02-07 12:31:27.890: W/dalvikvm(16522): Exception Ljava/lang/UnsatisfiedLinkError; thrown while initializing Lorg/opencv/android/Utils; 
02-07 12:31:27.890: D/AndroidRuntime(16522): Shutting down VM 
02-07 12:31:27.890: W/dalvikvm(16522): threadid=1: thread exiting with uncaught exception (group=0x400fc760) 
02-07 12:31:27.890: E/AndroidRuntime(16522): FATAL EXCEPTION: main 
02-07 12:31:27.890: E/AndroidRuntime(16522): java.lang.ExceptionInInitializerError 
02-07 12:31:27.890: E/AndroidRuntime(16522): at photo.klu.PhotoKLUActivity$1.onClick(PhotoKLUActivity.java:82) 
02-07 12:31:27.890: E/AndroidRuntime(16522): at android.view.View.performClick(View.java:3127) 
02-07 12:31:27.890: E/AndroidRuntime(16522): at android.view.View$PerformClick.run(View.java:12025) 
02-07 12:31:27.890: E/AndroidRuntime(16522): at android.os.Handler.handleCallback(Handler.java:587) 
02-07 12:31:27.890: E/AndroidRuntime(16522): at android.os.Handler.dispatchMessage(Handler.java:92) 
02-07 12:31:27.890: E/AndroidRuntime(16522): at android.os.Looper.loop(Looper.java:132) 
02-07 12:31:27.890: E/AndroidRuntime(16522): at android.app.ActivityThread.main(ActivityThread.java:4126) 
02-07 12:31:27.890: E/AndroidRuntime(16522): at java.lang.reflect.Method.invokeNative(Native Method) 
02-07 12:31:27.890: E/AndroidRuntime(16522): at java.lang.reflect.Method.invoke(Method.java:491) 
02-07 12:31:27.890: E/AndroidRuntime(16522): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:844) 
02-07 12:31:27.890: E/AndroidRuntime(16522): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602) 
02-07 12:31:27.890: E/AndroidRuntime(16522): at dalvik.system.NativeStart.main(Native Method) 
02-07 12:31:27.890: E/AndroidRuntime(16522): Caused by: java.lang.UnsatisfiedLinkError: Couldn't load opencv_java: findLibrary returned null 
02-07 12:31:27.890: E/AndroidRuntime(16522): at java.lang.Runtime.loadLibrary(Runtime.java:425) 
02-07 12:31:27.890: E/AndroidRuntime(16522): at java.lang.System.loadLibrary(System.java:554) 
02-07 12:31:27.890: E/AndroidRuntime(16522): at org.opencv.android.Utils.<clinit>(Utils.java:86) 
02-07 12:31:27.890: E/AndroidRuntime(16522): ... 12 more 
02-07 12:31:30.010: I/dalvikvm(16522): threadid=4: reacting to signal 3 
02-07 12:31:30.010: I/dalvikvm(16522): Wrote stack traces to '/data/anr/traces.txt' 
02-07 12:31:37.470: I/Process(16522): Sending signal. PID: 16522 SIG: 9 

任何想法?

謝謝。

回答

0

openCV庫沒有附加到您的應用程序。請執行以下操作(我假設openCV庫已導入到您的工作區)。在包資源管理器中>右鍵單擊應用程序項目>屬性>在庫下單擊添加>選擇openCV確保在Java Build Path中沒有任何與openCV相關的任何內容

相關問題