本来想用sift算法写个安卓小程序的
没想到这么麻烦,开始使用OpenCV4Android 开发包 发现要安装OpenCV 3.2.0 Manager.apk
用户体验不好
但是秉着试试先 结果试都试不了 后来才发现sift没有需要在OpenCV_contrib中,然后查了一下发现要使用sift算法的话需要把两个包编译一下。
然后逗逼的我直接https://github.com/opencv/opencv https://github.com/opencv/opencv_contrib克隆了这两个工程 然后就开始编译 然后用了
cmake shell cmake.gui这些方法各种各样搞了我两个礼拜都没编译好
这些又要改vim ~/.bash_profile
加一句 export PATH=${PATH}:/android-ndk
但是配来配去依旧不行,编译一般就坏了 去群里问也没人知道没人回答 每天都想放弃 感觉好浪费时间 但是每天快要说不搞的时候 有给我看见希望 感觉就快成功了 今天总算成功了 在他编译的这个期间我打算写出来告诉大家
第一步
下载OpenCV 和Contrib 在https://github.com/opencv/opencv上下载
但是下载的时候要注意选择对应的tags
OpenCV 和Contrib版本要相同 我下的是3.2.0-rc
第二步
安装 brew install ant
不装会报
Executing: ['ninja', 'opencv_engine']
ninja: error: unknown target 'opencv_engine'
这样的东西
还要装 brew install ninja
第三步
在opencv的目录下
platforms-->Android--> 有个 build_sdk.py
我们就用它来编译我们的o4a
打开当前目录下的控制台输入
python build_sdk.py /Users/SoftwareCollect/opencv/opencv_android/ /Users/SoftwareCollect/opencv/opencv --sdk_path=/Users/Applications/adt-bundle-mac-x86_64-20140702/sdk --ndk_path=/android-ndk --extra_modules_path=/Users/SoftwareCollect/opencv/opencv_contrib/modules
python build_sdk.py <生成目录> <opencv源码目录> --sdk_path=<sdk目录> --ndk_path=<ndk目录> --extra_modules_path==<opencv_contrib/modules目录>
一行输完 这样就能解决找不到sdk 找不到ndk的问题 另外也不用两次编译
其他参数参考build_sdk.py里面
build_sdk.py节选如果顺利你将和我一样得到下面这图 感人的build successful 那就说明你构建成功了
另外说明一下 ndk最好是r10d以下的 http://dl.google.com/android/ndk/android-ndk-r10d-darwin-x86_64.bin
sdk要用旧版的 不然会
lib_target_sdk_target-NOTFOUND
The "android" command is deprecated.
For manual SDK, AVD, and project management, please use Android Studio.
我直接用eclipse里面的sdk就可以了
网友评论