开发者社区> 技术小胖子> 正文

移植Opencv-2.0.0到ARM11(S3C6410)

简介:
+关注继续查看

 1、OpenCV的简介

       开源的计算机视觉类库OpenCV( IntelÒ Open Source Computer Vision Library)由英特尔公司位于俄罗斯的研究实验室所开发,它是一套可免费获得的由一些C 函数和C ++ 类所组成的库,用来实现一些常用的图像处理及计算机视觉算法]。由于OpenCV 的源代码是完全开放的,而且源代码的编写简洁而又高效,特别是其中大部分的函数都已经过汇编最优化,以使之能高效而充分地利用Intel系列处理芯片的设计体系,OpenCV 的代码执行效率是非常高的,所以近年来在国外的图像处理相关领域中被广泛地使用,成为一种流行的图像处理软件。
2.1.1 OpenCV 的特点
相对于其它常用的图像处理软件来说,OpenCV有其显著的不可比拟的优点,主要体现在如下几个方面[1]:
(1)OpenCV是一个包含了超过300 个C 函数的应用编程接口,它不依赖于外部库,既可以独立运行,也可在运行时使用其它外部库。
(2)高性能:OpenCV 中所有的算法都是基于封装于IPL 的具有很高灵活性的动态数据结构,而且其中有一半以上的函数在设计及汇编时被Intel 公司针对其所生产的处理器进行了优化。
(3)开放性:不管对于商业的还是非商业的用途,OpenCV都是完全免费的,其源代码完全开放,开发者可以对源代码进行修改,将自己设计的新类添加到库中,只要设计符合规范,自己的代码也可以被别人广泛使用。
(4)可移植性:由于OpenCV的大部分库函数基本上采用C或C++语言编写,因此可以方便地移植到其它如ARM、MPIS等嵌入式微处理器中。
2.1.2 OpenCV 的函数体系
    OpenCV 中每个函数的命名都以“cv”开始,然后是该函数的行为及目标。例如用来创建图像的函数“cvCreateImage”,载入图像的函数“cvLoadImage”。OpenCV是为图像处理及计算机视觉在实际工程中的应用而设计的一个类库,其中所有的函数都由于其在实际应用中所实现的不同的功能而分属不同的类型,主要的函数类型有:
(1)基本的图像处理与分析函数:这个类型的函数主要用于实现一些基本的图像处理与分析功能,例如图像平滑函数cvSmooth,Sobel 算子cvSobel,Canny 边缘分割函数cvCanny 等。
(2)结构分析函数:包括有轮廓处理函数,几何学函数以及平面细分函数。
(3)运动分析与目标跟踪函数:包括有用于运动分析与目标跟踪的函数,例如背景重建函数cvAcc,用光流法或动态轮廓模型来实现目标跟踪的函数cvCalcOpticalFlowBM 和cvSnakeImage 以及卡尔曼滤波函数CvKalman等。
(4)摄像机标定和3D 重建函数:包括有用于摄像机标定,姿态估计以及从两个摄像机进行3D 相似重构的函数。
(5)GUI 与视频处理函数:包括有高级图形用户接口highGUI 用以实现对图像的载入、显示及保存等基本操作以及用以实现视频输入输出及处理的函数。
根据上述的函数体系,程序开发者可以根据自己所开发应用程序所要实现的功能来方便地选择所需的库函数,从而大大减少开发时间和精力,缩短程序开发的周期。
2、Opencv移植
     

linux 下 opencv2.0.0 的移植 (ARM11)

环境:

PC机系统:Fedora 8

交叉编译工具 :arm-linux-gcc-4.5.1

解压:OpenCV-2.0.0.tar.bz2

#cd  OpenCV-2.0.0

#./configure --host=arm-linux --without-gtk --without-carbon 
--without-quicktime --without-1394libs --without-ffmpeg 
--without-python --without-swig --enable-static --enable-shared 
--disable-apps  CXX=arm-linux-g++  CPPFLAGS=-I/opt/FriendlyARM/too
lschain/4.5.1/arm-none-linux-gnueabi/include   LDFLAGS=-L/opt/Frie
ndlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/lib --with-v4l2 
--prefix=/opt/arm-2.0.0/opencv

#make

#make install

?  --host=arm-linux 指定主机

?  --without-gtk:      不编译gtk

?  --without-carbon:

?  --without-quicktime

?  --without-1394libs

?  --without-ffmpeg

?  --without-python

?  --without-swig

?  --enable-static   编译静态库*.a文件

?  --enable-shared  编译为动态库*.so文件

?  CXX=arm-linux-g++

?  CPPFLAGS=-I/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/include:OpenCV会用到一些dev的包,如png.h,jpeglib.h头,大部分文件在/usr/include下。

?  LDFLAGS=-L/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/lib

?  --prefix=/opt/arm/opencv 安装编译好的库文件头文件存放的位置


3、移植库到ARM11板子

将/opt/arm/opencv/lib里的

libcvaux.so.4.0.0

libcv.so.4.0.0

libcxcore.so.4.0.0

libhighgui.so.4.0.0

libml.so.4.0.0

拷出来全部重命名

*.so.4

将这些文件拷贝到ARM11板子的/lib目录下。。。

4、测试是否一致成功。。。

arm-linux-g++   XX.c -o XX -I/opt/arm-2.0.0/opencv/include/opencv -L/opt/arm-2.0.0/opencv/lib/ -lcv -lcxcore -lcvaux -lml -lhighgui

Then , Enjoy........



     本文转自 驿落黄昏 51CTO博客,原文链接:http://blog.51cto.com/yiluohuanghun/1181683,如需转载请自行联系原作者



版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
OpenCV交叉编译ARM版本
OpenCV交叉编译ARM版本
13 0
ffmpeg 移植到 arm s3c2410
  首先需要说明的是,由于我只需要在arm上做视屏采集,就没有移植其他的编码和解码库。 这个做好了,那些库加载上来编译也是很容易的! arm-linux-gcc版本:arm-linux-gcc-3.
1056 0
移植 ffmpeg 到 ARM 平台
1,yasm: 到 http://www.tortall.net/projects/yasm/wiki/Download 下载yasm0.7.2(x264需要用到的汇编编译器) for x86: .
2028 0
【ARM】Linux驱动移植
1驱动模块移植过程 1模块的第一种编译方法改kconfig 2模块的第二种编译方法Makefile 2Linux驱动原理 0从哪里切入 1什么是注册 2register_chrdev提交哪些数据 21设备号为什么是231 22设备名随便给 23文件操作结...
1418 0
编译移植龙芯2K1000平台下的qt-5.13
本文记录对龙芯2K进行qt5.13.1版本的移植。 本文中对于tslib的安装不做讲解,使用了QT4进行核心板开发的童鞋一般情况下,应该已经安装好了tslib了,直接使用就行。
15 0
使用飞凌嵌入式IMX6UL-C1板子——qt+opencv环境搭建
使用飞凌嵌入式IMX6UL-C1板子——qt+opencv环境搭建
43 0
QT5.6移植到ARM三星4412-
QT5.6移植到ARM三星4412-
118 0
OpenCV开发:ubuntu18.04下交叉编译OpenCV3.4.9到ARM64位平台RK3399(aarch64-linux-)
OpenCV开发:ubuntu18.04下交叉编译OpenCV3.4.9到ARM64位平台RK3399(aarch64-linux-)
432 0
QTE移植成功后的交叉编译
qte终于移植成功,但是在交叉编译自己写的程序是总是提示有错误,错误如下:In file included from main.cpp:3: ./database.
1090 0
+关注
技术小胖子
文章
问答
视频
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载