在 Android < 6 上找不到 Canny 的实现
No implementation found for Canny on Android < 6
将 openCVLibrary320 用于 Android 我在我的项目中遇到错误:
W/dalvikvm: No implementation found for native Lorg/opencv/imgproc/Imgproc;.Canny_2:(JJDDIZ)V
W/dalvikvm: threadid=12: thread exiting with uncaught exception (group=0x9cd7fb20)
E/AndroidRuntime: FATAL EXCEPTION: Thread-68
Process: hantke.niklas.mnotes, PID: 2144
java.lang.UnsatisfiedLinkError: Native method not found: org.opencv.imgproc.Imgproc.Canny_2:(JJDDIZ)V
at org.opencv.imgproc.Imgproc.Canny_2(Native Method)
at org.opencv.imgproc.Imgproc.Canny(Imgproc.java:1029)
at hantke.niklas.mnotes.MainActivity.detectStaffLines(MainActivity.java:121)
at hantke.niklas.mnotes.MainActivity.onCameraFrame(MainActivity.java:173)
at org.opencv.android.CameraBridgeViewBase.deliverAndDrawFrame(CameraBridgeViewBase.java:392)
at org.opencv.android.JavaCameraView$CameraWorker.run(JavaCameraView.java:352)
at java.lang.Thread.run(Thread.java:841)
这是我第一次调用 canny 方法,但我事先调用了 cvtColor 和 equalizeHist 没有任何错误。
在 API 25 模拟器上工作正常,但在 API 19 emu 和 Android-Phone with Android 5.1 上都不起作用。
与 SDK 3.20 捆绑在一起的最新版本的 openCV 管理器安装在每个模拟器上,phone
我发现了我的错误。
问题出在openCV的初始化上:
我不得不写:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_3_2_0, this, mLoaderCallback);
}
而不是
OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_2, this, mLoaderCallback);
因为我使用的是 3.2.0 版本。
奇怪的是,它在 Android 6 模拟器上工作。
将 openCVLibrary320 用于 Android 我在我的项目中遇到错误:
W/dalvikvm: No implementation found for native Lorg/opencv/imgproc/Imgproc;.Canny_2:(JJDDIZ)V
W/dalvikvm: threadid=12: thread exiting with uncaught exception (group=0x9cd7fb20)
E/AndroidRuntime: FATAL EXCEPTION: Thread-68
Process: hantke.niklas.mnotes, PID: 2144
java.lang.UnsatisfiedLinkError: Native method not found: org.opencv.imgproc.Imgproc.Canny_2:(JJDDIZ)V
at org.opencv.imgproc.Imgproc.Canny_2(Native Method)
at org.opencv.imgproc.Imgproc.Canny(Imgproc.java:1029)
at hantke.niklas.mnotes.MainActivity.detectStaffLines(MainActivity.java:121)
at hantke.niklas.mnotes.MainActivity.onCameraFrame(MainActivity.java:173)
at org.opencv.android.CameraBridgeViewBase.deliverAndDrawFrame(CameraBridgeViewBase.java:392)
at org.opencv.android.JavaCameraView$CameraWorker.run(JavaCameraView.java:352)
at java.lang.Thread.run(Thread.java:841)
这是我第一次调用 canny 方法,但我事先调用了 cvtColor 和 equalizeHist 没有任何错误。
在 API 25 模拟器上工作正常,但在 API 19 emu 和 Android-Phone with Android 5.1 上都不起作用。 与 SDK 3.20 捆绑在一起的最新版本的 openCV 管理器安装在每个模拟器上,phone
我发现了我的错误。
问题出在openCV的初始化上: 我不得不写:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_3_2_0, this, mLoaderCallback);
}
而不是
OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_2, this, mLoaderCallback);
因为我使用的是 3.2.0 版本。 奇怪的是,它在 Android 6 模拟器上工作。