OpenCV 3.0 for Android - 静态初始化不加载新模块

时间:2015-06-12 13:27:30

标签: android opencv opencv3.0 opencv4android

我最近将我的Android项目从OpenCV 2.4.10移至 OpenCV 3.0

我使用以下代码静态初始化OpenCV:

OpenCVLoader.initDebug();

当我运行我的应用程序时,我得到了这个例外:

java.lang.UnsatisfiedLinkError: Native method not found: org.opencv.imgcodecs.Imgcodecs.imread_1:(Ljava/lang/String;)J

Imgcodecs是OpenCV 3.0中的一个新模块,它取代了OpenCV 2.4中的Highgui。*如果我是对的。

初始化时,我可以在OpenCV的日志中看到以下输出:

Version control:               2.4.10
...
To be built:                 core androidcamera flann imgproc highgui features2d calib3d ml objdetect video contrib photo java legacy ocl stitching superres ts videostab

根据上面的信息,我猜OpenCV 3.0的OpenCVLoader只初始化2.4.10中的旧模块。你可以看到它加载了不再需要的highgui模块。

这是新OpenCV的错误还是我错过了什么?是否有一些解决方法如何加载新模块?感谢。

2 个答案:

答案 0 :(得分:1)

现在似乎正在使用2015年6月23日的更新版本。

错误似乎已由this commit修复,因此答案是问题可能是由OpenCV错误造成的。

答案 1 :(得分:0)

我建议创建一个新项目,添加opencv静态版本,导入build.gradle并将版本从2.4。*更改为3.0。* 我做了同样的事情,我以前的版本是2.4.9,迁移后这是3.0.0

To be Built: hal core flann imgproc ml photo video ***imgcodecs*** shape videoio ..

这在您的项目中显而易见,您仍然使用2.4版本。*