壮心未与年俱老,死去犹能作鬼雄。这篇文章主要讲述Build opencv libraries for android arm, x86 ubuntu相关的知识,希望能为你提供帮助。
废话不多说。
准备工作:
1. 下载源代码:
http://opencv.org/
编译平台:ubuntu14.04
opencv 2.4.6.1
本人用这样的办法编译了opecv 2.4.9 的没有什么问题, 问题比opencv2.4.6.1还要少, 事实上他们的原理是一样的.
opencv 源代码根文件夹----${opencv_home}
2.
改动 ${opencv_home}/platforms/scripts/cmake_android_arm.sh 文件,加入编译选项 -DBUILD_SHARED_LIBS=ON 和 -DWITH_OPENCL=ON
改动后的cmake_android_arm.sh 文件例如以下:
【Build opencv libraries for android arm, x86 ubuntu】
#!/bin/sh cd `dirname $0`/..mkdir -p build_android_arm cd build_android_armcmake -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON -DCMAKE_TOOLCHAIN_FILE=../android/android.toolchain.cmake [email protected] ../..-DBUILD_SHARED_LIBS=ON -DWITH_OPENCL=ON
3.
改动 ${opencv_home}/cmake/OpenCVDetectOpenCL.cmake
以便生成支持编译opencl 的编译选项:在OpenCVDetectOpenCL.cmake 40 行后面加入
set(OPENCL_FOUND YES) set(OPENCL_INCLUDE_DIR your_ocl_include_dir) #set(OPENCL_LIBRARYyou_opencl_lib_file_path)
一个是设置ocl头文件,一个设置opencl 库文件的, 上面把他凝视掉了是由于本人要用的是动态显示调用的方式去调用opencl库的api。 这样就不用在编译的加入于设备相关的opencl库了。
4.
改动 ${opencv_home}/CMakeLists.txt OCV_OPTION(WITH_OPENCL " Include OpenCL Runtime support" ON IF (NOT ios) )
这一步好像在opencv2.4.9 版本号的源代码不用设置能够。 这个的主要目的是为了能是下一步生成支持opencl 的选项。
5.运行 ${opencv_home}/platforms/scripts/cmake_android_arm.sh
假设运行有问题。 设置NDK 路径:
终端运行:export NDKROOT=/xxxx/android-ndk-r9d
能够看到:
-- Other third-party libraries:
-- Use IPP: NO
-- Use Eigen: NO
-- Use TBB: NO
-- Use OpenMP: NO
-- Use GCD NO
-- Use Concurrency NO
-- Use C=: NO
-- Use Cuda: NO
-- Use OpenCL: YES
这这样就能编译相关的库了。 只是假设没有设置
set(OPENCL_LIBRARYyou_opencl_lib_file_path)
这个可能会导致一些test 编译只是去,没有关系, ocl的相关库已经能编译好了。
6. 切换到 ${opencv_home}/platforms/build_android_arm 文件夹:
运行:make
等待编译完毕吧...
7.终于Andorid动态库在${opencv_home}/platforms/build_android_arm/lib/armeabi-v7a下生成
对于Android x86 的同理Android arm 库的编译方法, 仅仅是步骤2, 5操作脚本是 ${opencv_home}/platforms/scripts/cmake_android_x86.sh
祝你使用愉快。 有什么问题。 欢迎指出。 以便更正。
推荐阅读
- Android属性动画
- 在线音乐搜索引擎推荐(免费的10种最佳Grooveshark替代品)
- 常用的项目管理软件推荐(15种最佳Redmine替代品合集)
- 最佳的时间跟踪软件合集(免费的10个Hubstaff替代品)
- 创建视频和动画(在线或Windows的10种最佳免费Renderforest替代方案)
- 创建实时启动USB驱动器的11种最佳UNetbootin替代品
- 最佳免费文件共享工具合集(DocSend的替代方案推荐)
- iOS媒体管理器下载(Windows和Mac的15大最佳iTunes替代品)
- 免费仪表板工具合集推荐(10种最佳Klipfolio替代方案)