相关疑难解决方法(0)

使用Android Studio的C++支持来构建非自由的OpenCV模块

背景

虽然早期版本的OpenCV(即2.4)允许Android项目利用SIFT功能,但将该功能分离opencv_contrib使得任务更加困难; 将OpenCV-3.x.x-android-sdk模块集成到项目中会使您无法使用该SIFT功能.

FeatureDetector.create(FeatureDetector.DYNAMIC_SIFT); // Fails
//OpenCV Error: Bad argument (Specified feature detector type is not supported.)
Run Code Online (Sandbox Code Playgroud)

使用外部工具

尽管像Gouhui Wang这样的技术描述了如何将OpenCV的非自由部分构建到Android项目中,但该过程需要外部工具.这个问题是关于如何获得相同的结果,而是利用Android Studio/InteliJ的强大功能和便利性.

在Android Studio中使用CMake

现代Android Studio版本具有有用的功能:

使用Android Studio 2.2及更高版本,您可以使用NDK将C和C++代码编译到本机库中,并使用IDE的集成构建系统Gradle将其打包到您的APK中.然后,您的Java代码可以通过Java Native Interface(JNI)调用本机库中的函数

正如这个有关使用C++支持构建OpenCV的stackoverflow问题和答案所示,可以将opencv4android的OpenCV 3.1(我怀疑其他版本)快速集成到新应用程序向导中生成的C++构建结构中.

为了让OpenCV的非自由部分完全在原生Android Studio构建过程中构建,需要采取哪些具体步骤

opencv cmake android-studio opencv4android

15
推荐指数
0
解决办法
480
查看次数

标签 统计

android-studio ×1

cmake ×1

opencv ×1

opencv4android ×1