首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从中继构建OpenCV4Android

从中继构建OpenCV4Android
EN

Stack Overflow用户
提问于 2013-03-24 21:44:17
回答 3查看 1.1K关注 0票数 2

我现在正在开发一个应用程序,并计划通过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来编译它们时,我得到如下错误消息:

代码语言:javascript
复制
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库?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 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版本的脚本中的行替换了这一行,仅此而已(这是它们之间的一个小区别)

票数 1
EN

Stack Overflow用户

发布于 2013-05-24 03:20:42

如果你只想在非自由模块中使用SIFT或SURF,你不需要重新构建整个opencv包。您只能将非自由模块构建为独立库,并在项目中使用它。此tutorial将为您提供有关如何执行此操作的详细信息。

票数 1
EN

Stack Overflow用户

发布于 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支持”)

完成了!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15599185

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档