摘 要:Opecv是做图像处理的常用视觉处理算法,本文介绍了其特点以及移植方法.
关 键 词 :Opecv;图像处理;移植
中图分类号:TP391.41 文献标识码:A 文章编号:1674-7712 (2013) 22-0000-01
Opecv对于做图像处理的人应该很熟悉,OpenCV项目最早由英特尔公司于1999年启动,致力于CPU密集型的任务,是一个包括如光线追踪和3D显示的计划的一部分.OpenCV主要用于人机交互,物体识别,图像分割,人脸识别,动作识别,运动跟踪,机器人等.在应用图像处理的世界或者说开源图像处理的世界,Opecv是公认的比较好的图像处理库.
而且OpenCV是一个跨平台的库,OpenCV可以在Windows,Android,Maemo,FreeBSD,OpenBSD,iOS,Linux和Mac OS等平台上运行.自然在嵌入式平台上也可以成功移植.
一、Opencv主要有以下几个特点
(1)高可移植性:这个就不多说了,上面有介绍;(2)高性能:OpenCV 中所有的算法都是基于封装于IPL的具有很高灵活性的动态数据结构,而且其中有一半以上的函数在设计及汇编时被Intel公司针对其所生产的处理器进行了优化;(3)开放性:不管对于商业的还是非商业的用途,OpenCV都是完全免费的,其源代码完全开放,开发者可以对源代码进行修改,将自己设计的新类添加到库中,只要设计符合规范,自己的代码也可以被别人广泛使用.
二、下面主要来讲讲Opencv的移植
主要运用的编译环境为ubuntu 10.0.4,交叉编译器为arm-linux-gcc 4.5.1,目标环境为友善之臂Tiny6410开发板.
我们借助cmake-gui进行交叉编译.
首先在终端中调出Cmake-gui界面;
选择源代码目录/home/6410/opencv/opencv-2.4.3/;
选择Build目录:/home/6410/opencv/opencv-2.4.3/build;
点击Configure,保持generator为Unix Makefiles,选择Specify options for cross-piling,点击Next,
Operating System填写arm-linux;
C Compilers填写opt/FriendlyARM/toolschain/4.5.1/bin/arm-linux-gcc;
C++ Compilers填写opt/FriendlyARM/toolschain/4.5.1//bin/arm-linux-g++
程序库的Target Root填写opt/FriendlyARM/toolschain/4.5.1/
然后点击Finish.
默认安装目录为/usr/local,点击Generate生成Makefile.
然后#make
但是仅仅是Opencv库是不够的,还必须移植一些依赖库.
以下就是要移植的库:llibz,libjpeg,libpng,liba,libx264,libxvid,lffmpeg.
Libz的交叉编译:
#./configure --prefix等于/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi --shared
修改makefile
CC等于arm-linux-gcc
AR等于arm-linux-ar rc
RANLIB等于arm-linux-ranlib
CDSHARED等于arm-linux-gcc -shared -wl, -soname,libz.so.1,--version-script,zl
lib.map
#make
#make install
libjpeg的交叉编译:
#./configure--host等于arm-linux--prefix等于/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi
有关论文范文主题研究: | 数据结构类论文范文 | 大学生适用: | 电大论文、函授论文 |
---|---|---|---|
相关参考文献下载数量: | 49 | 写作解决问题: | 本科论文怎么写 |
毕业论文开题报告: | 标准论文格式、论文目录 | 职称论文适用: | 职称评定、职称评初级 |
所属大学生专业类别: | 本科论文怎么写 | 论文题目推荐度: | 优质选题 |
--enable-shared --enable-static
#make install
libpng的交叉编译
#./configure--host等于arm-linux--prefix等于/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi --enable-shared --enable-static
#make
#make install
ya的交叉编译:
#./configure--host等于arm-linux--prefix等于/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi --enable-shared --enable-static
#make
#make install
libx264的交叉编译:
#CC等于arm-linux-gcc ./configure --enable-shared --host等于arm-linux --disable-a--prefix等于/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi
#make
#make install
libxvid的交叉编译:
#cd build/generic
#./configure--prefix等于/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi--host等于arm-linux --disable-assembly
#make
#make install
ffmpeg的交叉编译:
#./configure --prefix等于/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi --enable-shared --disable-static --enable-gpl --enable-cross-pile --arch等于arm --disable-stripping --target-os等于linux --enable-libx264 --enable-libxvid --cc等于arm-linux-gcc --enable-swscale
#make
#make install
然后只要把编译好的库拷贝到arm板的lib目录下就可以了.
当然移植过程中会出现各种难以预料的问题.这些问题在实践中才能发现和解决,用于实践这样水平才能提高.