我最近将我的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的错误还是我错过了什么?是否有一些解决方法如何加载新模块?感谢。
答案 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版本。*