MacOS下自编译OpenCV 3.4.1集成opencv_contrib for Android SDK
5星 · 超过95%的资源 需积分: 44 36 浏览量
更新于2024-09-08
收藏 52B TXT 举报
在MacOS环境下编译OpenCV 3.4.1,并将其与opencv_contrib 3.4.1整合,以便在Android应用程序开发中使用诸如SIFT和SURF等专利算法的C++实现,是一个重要的步骤。由于OpenCV 3.4.1及更高版本将这些有专利的特征模块化,官方提供的Android SDK并没有预集成opencv_contrib。这意味着开发者必须手动处理,以确保这些功能能在Android平台上正常使用。
首先,你需要下载官方的OpenCV 3.4.1源代码以及opencv_contrib 3.4.1的源码包。可以从GitHub或其他官方渠道获取。在Mac上,你需要安装必要的开发工具,如Xcode Command Line Tools、CMake和Git,这些都是构建过程中的基础组件。
接下来,你需要创建一个工作目录并克隆两个项目的源码仓库:
```bash
mkdir opencv-android
cd opencv-android
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git
```
然后,设置OpenCV和opencv_contrib的路径,配置CMakeLists.txt文件,以确保它们能够正确识别和链接到一起。在CMakeLists.txt中,你需要指定opencv_contrib作为附加模块,添加以下内容(替换`path_to_contrib`为实际路径):
```cmake
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${path_to_contrib})
find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
add_subdirectory(opencv)
```
配置完成后,你需要创建一个新的CMakeLists.txt文件在opencv_contrib目录下,同样设置OpenCV依赖:
```cmake
cmake_minimum_required(VERSION 3.4)
project(OpenCV_contrib)
find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
add_subdirectory(surfsift)
```
接着,你可以使用CMake来生成Android.mk文件,这将用于Android NDK的构建。在opencv-android目录中运行以下命令:
```bash
cmake -D CMAKE_TOOLCHAIN_FILE=~/path/to/android-ndk-r19c/build/cmake/android.toolchain.cmake \
-D ANDROID_ABI=armeabi-v7a \
-D BUILD_opencv=ON \
-D BUILD_opencv_contrib=ON \
-D BUILD_TESTS=OFF \
..
```
这里假设你已经设置了NDK路径,并指定了目标架构(armeabi-v7a)。记得替换`~/path/to/android-ndk-r19c`为实际NDK路径。
最后,构建OpenCV库:
```bash
cd build
cmake --build . --target install
```
编译成功后,你会在build/outputs/aarch64-v7a/lib目录下找到编译好的OpenCV库,包括整合了opencv_contrib的版本。将这个库添加到你的Android项目中,通过 Gradle 或 Android Studio 的插件管理器导入,你就可以在Android应用中使用SIFT和SURF等专利算法了。
MacOS下编译OpenCV 3.4.1并整合opencv_contrib是为了克服Android SDK中缺少这些专利算法的问题,确保在移动设备上实现图像处理功能。这个过程涉及源代码管理、配置CMake、指定依赖,以及最终的编译和集成。对于任何想要在Android应用中使用高级计算机视觉技术的开发者来说,这是一个必不可少的技能。
2018-10-22 上传
2020-01-11 上传
2020-07-27 上传
2022-09-20 上传
2020-06-17 上传
2018-06-19 上传
2021-10-25 上传
2022-05-17 上传
u010671073
- 粉丝: 1
- 资源: 6
最新资源
- C语言数组操作:高度检查器编程实践
- 基于Swift开发的嘉定单车LBS iOS应用项目解析
- 钗头凤声乐表演的二度创作分析报告
- 分布式数据库特训营全套教程资料
- JavaScript开发者Robert Bindar的博客平台
- MATLAB投影寻踪代码教程及文件解压缩指南
- HTML5拖放实现的RPSLS游戏教程
- HT://Dig引擎接口,Ampoliros开源模块应用
- 全面探测服务器性能与PHP环境的iprober PHP探针v0.024
- 新版提醒应用v2:基于MongoDB的数据存储
- 《我的世界》东方大陆1.12.2材质包深度体验
- Hypercore Promisifier: JavaScript中的回调转换为Promise包装器
- 探索开源项目Artifice:Slyme脚本与技巧游戏
- Matlab机器人学习代码解析与笔记分享
- 查尔默斯大学计算物理作业HP2解析
- GitHub问题管理新工具:GIRA-crx插件介绍