转自:http://blog.csdn.net/luotuo44/article/details/8958990
1、安装辅助软件
1.1、安装arm-linux-g++
下载arm-linux-gcc-4.3.2.tgz。然后使用#tar -zxvf arm-linux-gcc-4.3.2.tgz -C /命令解压。可以看到其已经被解压到/usr/local/arm/4.3.2目录下了。使用命令#vim /etc/bash.bashrc打开文件进行配置。在最后一行输入下面一句:
export PATH=$PATH:/usr/local/arm/4.3.2/bin
保存并退出。打开一个新终端或者在本终端输入 #source /etc/bash.bashrc使得配置信息生效。原理可以查看博文《/etc/profile、/etc/bash.bahsrc、~/.profile、~/.bashrc的用途》
1.2、安装cmake-gui
输入命令$cmake-gui后,会出现下面的提示,尚未安装cmake-gui,即没有安装图形界面。
用其提示的命令安装即可 $sudo apt-get install cmake-qt-gui。安装过程需要联网。
2、安装OpenCV
2.1、下载OpenCV
到http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/下载安装opencv。自己选一个版本。我使用的是2.40。
下载完成后,把文件解压到/root/download目录下。
2.2使用cmake编译源码
切换到root用户(要使用root权限运行cmake-gui)。
1)输入#cmake-gui 打开cmake的图形界面。在cmake的图形界面中输入OpenCV的源代码的所在路径和要安装的地点。如下图所示。
2)点击”Configure”按钮,如果还没arm-opencv目录,那么会提示新建之。点击”yes”即可。然后弹出下面的对话框。如下面那样选择。然后点击”Next”
3)弹出新的对话框,需要填充的信息如下:
4)点击Finish后,cmake就自动开始工作。
2.2.1、修改cmake的配置
等其停止工作后,会出现下图那样,红了一片。
这里要更改一些东西。
勾上 BUILD_JPEG、BUILD_PNG。如果没有安装tiff,那么取消下面的打勾。
如果想生成静态库,那么就要取消BUILD_SHARED_LIBS的打勾。
如果想生成Debug版本的库文件,那么就要找到CMAKE_BUILD_TYPE选项,改成下图。好像是大小写敏感的,不能写成DEBUG。
除了Debug和Release,还有其他编译类型,这些编译类型会对应不同的编译优化级别。这里还可以看到CMake其他一些选项的意义。
其他的看情况勾选。
找到
把后面的值改成 /usr/local/arm-opencv 如下图所示:
配置完成。
再次点击Configure。如下图所示,可以看到没有了红色。(如果还有,继续按Configure)
2.2.2、使用cmake生成Makefile文件
现在点击“Generate”按钮,产生Makefile文件。
3、编译和安装
3.1、修改编译配置
输入命令#cd /usr/local/arm-opencv进入到opencv的安装目录下。输入#vim CMakeCache.txt命令,修改该文件。
在
加上-lpthread –lrt 变成
保存并退出。
代码:CMAKE_EXE_LINKER_FLAGS:STRING=-lpthread -lrt -ldl
3.2、编译文件
再在终端输入#make命令,编译。这个过程要很久时间,目测有20分钟。
3.3、安装OpenCV
接着运行#make install 命令开始安装
到这里就安装完毕了。
4、配置OpenCV
4.1、配置pkgconfig
原理可以参考博文《pkg-config的一些用法》和《Linux静态库和动态库的使用》。
在arm-opencv目录下,输入#mkdir pkgconfig命令新建一个目录pkgconfig, 新建完后,进入这个目录。在这个目录里面输入#vim arm-opencv.pc创建并编辑文件。编辑这个文件,如下图所示。其中,最后一行是/usr/local/arm-opencv/lib目录里面的所有动态链接库。
保存并退出。
代码:
#include <cv.h>
#include <highgui.h>
#include <iostream>
using namespace std;
int main(int argc, char *argr[])
{
IplImage *image = cvLoadImage("1.jpg");
if(image == NULL)
{
cout<<"Load image fail" << endl;
return -1;
}
cvNamedWindow("src", 1);
cvShowImage("src", image);
cvWaitKey();
cvDestroyWindow("src");
cvReleaseImage(&image);
return 0;
}
4.2、配置shell
编辑/etc/bash.bashrc文件。使用命令#vim /etc/bash.bashrc。在最后一行加入
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/arm-opencv/pkgconfig
Export PKG_CONFIG_PATH
输入 #source /etc/bash.bashrc 这个配置信息就可以用了。或者打开一个新终端,也可以使用到该配置信息。
5、测试使用
创建并编辑一个test.cpp文件
保存,退出后,输入下面命令进行编译
#arm-linux-g++ `pkg-config --cflags arm-opencv` `pkg-config –libs arm-opencv` test.cpp -lpthread –lrt –o test
以后编译arm板的OpenCV代码时,要使用上面的编译指令。其中` 符号不是逗号,而是1 左边的那个符号。而把编译好的程序放到arm板时,在运行时,还要把/usr/local/arm-opencv/lib目录下的所有.so文件都拷贝到arm的/usr/lib或者/lib目录下。原理可以参考《Linux静态库和动态库的使用》。
另外, Linux环境下的OpenCV安装,可以参考:http://blog.csdn.net/luotuo44/article/details/8909258
Windows环境下的OpenCV安装,可以参考:http://blog.csdn.net/luotuo44/article/details/8903508