准备
1 配置好交叉编译链
2 安装cmake及一些依赖库
sudo apt-get install cmake
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff4.dev libswscale-dev libjasper-dev
3 安装cmake-gui
sudo apt-get install cmake-qt-gui
4 从官网下载opencv源码
编译及安装
1 shell中输入cmake-gui打开cmake图形界面,输入opencv源码所在路径及要安装的路径(比如/usr/local/arm-opencv)。
2 点击configure按钮,在对话框中选择specify options for corss-compiling选项,点击next。
3 在弹出的新的对话框中,填上operating system(linux),processor(arm),compilers(c和c++编译工具的具体路径)及target root(编译链目录,即arm-linux-*-gcc所在的bin文件夹上一级目录)。
4 点击finish,cmake开始工作。
5 停止工作后,会看到一片红,取消with_tiff,with_cuda,with_cl,build_opencv_ocl的选项;勾选上build_jpeg,build_png;找到cmake_install_prefix,改为usr/local/arm-opencv;如果想同时编译example,勾选上build_examples;如果想要生成debug版本的库,将cmake_build_type选项改为debug(首字母大写)。
6 配置完成后点击configure,直到没有红色为止,然后点击generate。
7 去往/usr/local/arm-opencv路径下,找到cmakecache.txt文件,将其中的cmake_exe_linker_flags:string=改为cmake_exe_linker_flags:string=-lpthread -lrt。
8 编译,等待完成。
sudo make
9 安装。
sudo make install
PC上配置、交叉编译及移植
1 在/etc/profile加入
#for arm-opencv
PKG_CONFIG_PATH=/usr/local/arm-opencv/pkgconfig:$PKG_CONFIG_PATH
export PKG_CONFIG_PATH
2 source /etc/profile
3 编写测试程序
// arm-opencv-test.cpp
#include <cv.h>
#include <highgui.h>
#include <iostream>
using namespace std;
using namespace cv;
int main(int argc,char *argv[])
{
Mat image=imread("test.jpg");
if(NULL==image.data)
{
cout<<"fail to load the image"<<endl;
}
cout<<"the size of test.jpg is:"<<image.rows<<"x"<<image.cols<<endl;
return 0;
}
4 编译
arm-none-linux-gnueabi-g++ `pkg-config --cflags arm-opencv` `pkg-config --libs arm-opencv` arm-opencv-test.cpp -lpthread -lrt -ldl -o arm-opencv-test
5 将编译得到的opencv库拷贝到板子里的/lib/路径下(将libstdc++.so,libstdc++.so.6和libstdc++.so.6.0.16也拷贝到此),然后将编译得到的测试程序(可执行文件)拷贝到板子里进行测试。