1. OpenCV简介
OpenCV的全称是:Open Source Computer Vision Library。OpenCV是一个基于(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。
【详细介绍见我的上一篇博文:01.OpenCV简介】
2. OpenCV移植环境说明
- 目标平台
UP-TECH 2410
系统:Linux 2.4 - 宿主机
系统:Ubuntu 10.04
交叉编译链:gcc-3.4.6-glibc-2.3.6
3. 移植前期准备
3.1 一点点说明
在OpenCV移植之前需要先确认自己宿主机上边的交叉编译链符合编译目标OpenCV版本的要求。博主就曾尝试过很多版本的gcc和OpenCV,本来想编译高版本的OpenCV,但是由于ARM目标板上Linux版本过低,以至于太高版本的交叉编译链编译出来的可执行文件无法在上边运行,因为时间关系,没办法重新烧目标板的linux,只能选择低一点版本的交叉编译链:gcc-3.4.6-glibc-2.3.6(无奈脸) 。而gcc-3.4.6-glibc-2.3.6在交叉2.0以上版本的OpenCV时会出现各种各样的bug,最终被迫使用了低版本的OpenCV 1.0 。
由于OpenCV中对图像视频的处理需要使用libjpeg 、x264、xvid、ffmpeg 等第三方库,因此在进行OpenCV的正式移植之前需要对上述所述第三方库进行移植。
3.2 libjpeg 、x264、xvid、ffmpeg 等第三方库下载
- libjpeg源码:ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v6b.tar.gz
- 下载yasm0.7.2yasm0.7.2(x264需要用到的汇编编译器) :http://www.tortall.net/projects/yasm/wiki/Download
- 下载x264-snapshot-20060805-2245.tar.bz2 :ftp://ftp.videolan.org/pub/videolan/x264/snapshots/
- 下载xvid:http://downloads.xvid.org/downloads/xvidcore-1.1.3.tar.gz
- 下载ffmpeg-0.4.9-p20051120.tar.bz2 http://download.chinaunix.net/download.php?id=5532&ResourceID=2990
- 下载OpenCV-1.0.0源码 :http://www.opencv.org.cn/download/opencv-1.0.0.tar.gz
4. OpenCV 1.0的移植步骤
总述:
1. 叉编译libjpeg
2. 下载安装yasm (x264需要用到的汇编编译器)
3. 交叉编译 x264,xvid,ffmpeg
4. 交叉编译OpenCV
注:交叉编译前保证交叉编译链已经成功安装并添加环境变量
4.1 叉编译libjpeg
解压jpegsrc.v6b.tar.gz并进入加压后的目录,配置:
#./configure --prefix=/usr/opencv-depend/libjpeg-