交叉编译OpenCV的Android版本
OpenCV作为一个强大的图像处理库,在Android上也有强大的应用。
OpenCV官网提供了SDK的下载,可以直接下载使用
OpenCV官网地址:https://opencv.org/
不过有时候也会有自定义编译的需求
下面来记录一下最近在交叉编译OpenCV所作的笔记
避免以后走弯路。
编译Host系统是Ubuntu 16.04
准备工作
下载opencv:
1 git clone git@github.com:opencv/opencv.git 2 git checkout 3.4
下载opencv依赖的库
1 git clone git@github.com:opencv/opencv_contrib.git 2 git checkout 3.4
这里我们使用的版本都是3.4。
配置环境:
1. 安装ant
编译Java代码需要用到ant或者gradle
但是我还没搞清楚怎么配置使用gradle编译
而且我这次是在服务器上工作,没有x11环境
没装Android Studio,所以,姑且使用ant编译Java。
修改opencv/CMakeLists.txt文件
激活ant编译
set(ANDROID_PROJECTS_SUPPORT_ANT ON)
sudo apt-get install ant
2. 安装ndk
安装ndk需要翻wall,请自备梯子
这里写了一个python程序,用于枚举NDK的版本,
然后手动输入选择下载对应的版本,
这里我下载的r17c版本NDK,下载完成之后配置NDK_ROOT环境变量
1 #!/usr/bin/env python 2 3 import urllib2 4 import collections 5 import json 6 import os 7 8 def init(): 9 """ 10 Return name/link dict 11 12 @return: name-to-link dict 13 """ 14 with open('table.json') as data_file: 15 url_table = json.load(data_file) 16 17 if url_table is None or len(url_table) <= 0: 18 print('