我现在正在开发一个应用程序,并计划通过jni的方式使用原生OpenCV库。请参考本教程作为我的环境。
http://docs.opencv.org/doc/tutorials/introduction/android_binary_package/O4A_SDK.html
要使用OpenCV的非免费模块,如SurfFeatureDetector,我必须自己构建opencv,并使用OpenCV网站上的教程:
http://code.opencv.org/projects/opencv/wiki/Building_OpenCV4Android_from_trunk
当我按照教程(windows本机部分)中的步骤进行操作并想要运行script cmake_android.cmd来编译它们时,我得到如下错误消息:
In file included from E:\git\opencv\3rdparty\libtiff\tif_stream.cxx:30:
E:\git\opencv\3rdparty\libtiff\/tiffiop.h:54:21: error: search.h: No such file or directory
make[2]: *** [3rdparty/libtiff/CMakeFiles/libtiff.dir/tif_stream.cxx.o] Error 1
make[1]: *** [3rdparty/libtiff/CMakeFiles/libtiff.dir/all] Error 2
make: *** [all] Error 2有没有办法解决这个问题,或者让我可以在安卓应用程序中使用带有非自由模块的原生OpenCV库?
发布于 2013-05-28 23:50:38
我也有这个问题。我的修复方法是安装最新版本2.4.5,然后按照教程进行操作。1.下载clean 2.4.5版本并解压缩。2.遵循教程。http://code.opencv.org/projects/opencv/wiki/Trunk_OpenCV_for_Android
这修复了您提到的错误。在那之后我又犯了一个错误,现在我不记得是什么错误了,但我看到了错误所在,我用2.4.2版本的脚本中的行替换了这一行,仅此而已(这是它们之间的一个小区别)
发布于 2013-05-24 03:20:42
如果你只想在非自由模块中使用SIFT或SURF,你不需要重新构建整个opencv包。您只能将非自由模块构建为独立库,并在项目中使用它。此tutorial将为您提供有关如何执行此操作的详细信息。
发布于 2016-04-01 16:01:17
编译器Opencv4android,默认打开libtiff。你可以关闭它来编译sdk,因为它是第三方的。search.h不存在于NDK目录中,但是系统路径usr/include/有一个,所以你为linux或mac编译源代码,它工作得很好。
解决方案: 1、vi CMakeList.txt 2、Search "TIFF",/TIFF
编辑
OCV_OPTION( IF (而不是IOS)上的WITH_TIFF“包含TIFF支持”)
至
OCV_OPTION(如果不是IOS,则关闭WITH_TIFF“包含TIFF支持”)
完成了!
https://stackoverflow.com/questions/15599185
复制相似问题