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

OpenCV 3.0 for Android - static initialization not loading new modules

我最近将我的 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 的错误还是我遗漏了什么?是否有一些解决方法如何加载新模块?谢谢

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

错误似乎已被 this commit 修复,所以答案是问题可能是由 OpenCV 错误引起的。

我建议新建一个项目,添加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 版。*