我正在學習開發android應用程序,我正試圖將OpenCV合併到應用程序中。我決定製作一個簡單的應用程序來顯示圖像。下面的代碼給出:使用OpenCV在Android上顯示圖像
package com.example.first;
import org.opencv.android.BaseLoaderCallback;
import org.opencv.android.CameraBridgeViewBase;
import org.opencv.android.LoaderCallbackInterface;
import org.opencv.android.OpenCVLoader;
import org.opencv.android.CameraBridgeViewBase.CvCameraViewFrame;
import org.opencv.android.CameraBridgeViewBase.CvCameraViewListener2;
import org.opencv.core.Mat;
import org.opencv.highgui.Highgui;
import android.os.Bundle;
import android.app.Activity;
import android.graphics.Canvas;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.SurfaceView;
import android.view.WindowManager;
import android.webkit.WebView.FindListener;
import android.widget.ImageView;
import android.widget.Toast;
public class MainActivity extends Activity{
Mat m=Highgui.imread("C:/Users/Administrator/Desktop/circle1.png");
}
在檢查中被顯示以下錯誤的logcat:
E/AndroidRuntime(1310): FATAL EXCEPTION: main
E/AndroidRuntime(1310): java.lang.UnsatisfiedLinkError: Native method not found: org.opencv.highgui.Highgui.imread_1:(Ljava/lang/String;)
E/AndroidRuntime(1310): at org.opencv.highgui.Highgui.imread_1(Native Method)
E/AndroidRuntime(1310): at org.opencv.highgui.Highgui.imread(Highgui.java:359)
E/AndroidRuntime(1310): at com.example.run.MainActivity.(MainActivity.java:26)
E/AndroidRuntime(1310): at java.lang.Class.newInstanceImpl(Native Method)
E/AndroidRuntime(1310): at java.lang.Class.newInstance(Class.java:1130)
E/AndroidRuntime(1310): at android.app.Instrumentation.newActivity(Instrumentation.java:1061)
E/AndroidRuntime(1310): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2128)
E/AndroidRuntime(1310): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
E/AndroidRuntime(1310): at android.app.ActivityThread.access$600(ActivityThread.java:141)
E/AndroidRuntime(1310): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
E/AndroidRuntime(1310): at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(1310): at android.os.Looper.loop(Looper.java:137)
E/AndroidRuntime(1310): at android.app.ActivityThread.main(ActivityThread.java:5103)
E/AndroidRuntime(1310): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(1310): at java.lang.reflect.Method.invoke(Method.java:525)
E/AndroidRuntime(1310): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
E/AndroidRuntime(1310): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
E/AndroidRuntime(1310): at dalvik.system.NativeStart.main(Native Method)
什麼是錯的代碼?
你是否能夠讓世界各地的應用程序顯示圖像? (說,stackoverflow徽標?) – 18446744073709551615
@ 18446744073709551615在activity_main.xml文件中,當我在圖形佈局中查看它時,我可以看到圖像,但是當我在模擬器上運行它時,它不顯示圖像。 –
如果您無法編寫顯示圖像的應用程序,則這是與opencv無關的另一個問題。 (如果遇到別人遇到的問題,歡迎在Google上搜索示例或詢問。)一旦設法顯示圖像,您必須將Mat轉換爲Android可以自行理解的內容(例如,製作一個位圖可繪製,或者將Mat保存爲png)並顯示它。 – 18446744073709551615