设置opencv 在ubuntu

试用OK210开发板初的目的,就是设计相同款款看似人足球机器人的视觉识别系统。在属下的试用实验被,我会一步步于是目标迈进。今天帖子的重点内容就是于Ubuntu12.04齐安装图像处理软件OpenCV,并因此简短的程序实现UVC摄像头C270底图像采集。
   
硬件平台:Windows7 64 bit +
USB摄像头C270
   
软件平台:VMware8.0.2 +
Ubuntu12.04 + arm-linux-gcc4.3.2 + OpenCV2.4.9

   
一、知识上
 
  1.什么是OpenCV
 
  OpenCV是平等慢性开源之图像处理库,于1999年出于Intel公司倡导与建。OpenCV为Python、Matlab等多计算机语言提供了接口,它的库函数采用了C和C++编写,可以以Windows、Linux、Mac
OS和Android等多操作系统上面运行。采用OpenCV做图像处理,可以假设显著增长编程效率。可以到http://www.sourceforge.net/projects/opencvlibrary 下充斥需要之本子。
 
  2.
UVC摄像头C270简介
 
  C270摄像头是罗技公司生产的均等慢经典摄像头,采用CMOS感光器件,300万像素,USB2.0接口,手动实现对焦,支持RGB24和YUV422少于种多少格式,最老帧数为15帧/秒。选用该摄像头的一个关键原因是,该摄像头是UVC(USB
Video
Class)摄像头。UVC是一个开之标准,拥有维护好的让,它属于本代码的如出一辙部分。插入摄像头后即便可干活,而不用编译或安装额外的让。
 
  查看自己手中的USB摄像头是否是UVC摄像头的主意如下:
 
  (1)在巅峰输入lsusb,查看该摄像头的ID号;
 
  (2)在网站http://www.ideasonboard.org/uvc/中比对显示的ID号,若“Status”一栏为“绿色的对号”则表示该摄像头为UVC摄像头。

   

    二、安装OpenCV

    1. 预备工作:

    (1)安装交叉编译工具:arm-linux-gcc4.3.2,具体步骤参见本人试用贴的(三)——Ubuntu下安装gcc交叉编译器和hello.c的兑现:http://bbs.elecfans.com/jishu\_500508\_1\_1.html

    (2)安装cmake。在终极输入安装指令:

  1. sudo apt-get install cmake 

复制代码

需完成安装后,在顶峰输入以下指令,可以查阅安装cmake的版本信息。

  1. cmake –version

复制代码

    2. 装步骤:

    (1)更新和晋升系统

  1. sudo apt-get update
  2. sudo apt-get upgrade

复制代码

    (2)安装依赖项

  1. sudo apt-get install pkg-config libgtk2.0-dev
    build-essential
    libjpeg-dev libtiff4-dev libjasper-dev libopenexr-dev python-dev
    python-numpy python-tk libtbb-dev libeigen3-dev yasm libfaac-dev
    libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev
    libvorbis-dev libxvidcore-dev libx264-dev libqt4-dev
    libqt4-opengl-dev sphinx-common texlive-latex-extra libv4l-dev
    libdc1394-22-dev libavcodec-dev libavformat-dev libswscale-dev
    default-jdk ant libvtk5-qt4-dev

复制代码

    (3)下载并解压OpenCV2.4.9暨Ubuntu12.04之用户目录下

  1. cd ~
  2. wget
    http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.4.9/opencv-2.4.9.zip
  3. unzip opencv-2.4.9.zip
  4. cd opencv-2.4.9

复制代码

    (4)OpenCV
2.0下的本,必须动CMake创建Makefile。我动用的CMake版本是2.8.7。最后之有限只点“..”的意思是:当前目录在build文件夹里,所以在编译的早晚要回到OpenCV的主菜单。

  1. mkdir build 
  2. cd build 
  3. cmake -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D
    WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D
    INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_QT=ON -D
    WITH_OPENGL=ON -D WITH_VTK=ON .. 

复制代码

    运行cmake的时,会于终端出现负项的安排列表如下:

<ignore_js_op>

<ignore_js_op>

<ignore_js_op>

<ignore_js_op> 

    在上述之布置列表中,观察重点的倚重软件都曾安排好,如FFMPEG、QT、OPENGL和V4L2等,显示得为YES。

    (5)编译和装OpenCV2.4.9。make编译是一个悠久的进程,建议去小憩一会儿还是喝喝茶活动活动筋骨,待编译进度及100%后头,进行设置。安装需在root权限下进展。

  1. make
  2. sudo make install

复制代码

    (6)配置OpenCV。

  1. sudo gedit /etc/ld.so.conf.d/opencv.conf

复制代码

    输入库文件路径,保存并退。   

  1. /usr/local/lib

复制代码

<ignore_js_op>    

    (7)使库文件生效,在终极输入

  1. sudo ldconfig

复制代码

    (8)设置环境变量

  1. sudo gedit /etc/bash.bashrc

复制代码

    在最后在以下简单尽代码

  1. PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig 
  2. export PKG_CONFIG_PATH 

复制代码

    保存,关闭环境变量设置文档。关闭终端,重开Ubuntu。至此,Ubuntu12.04生OpenCV2.4.9底安了。

    三、验证OpenCV的安装:用USB摄影像头实现图像采集。

    实现步骤:

    1. 打开终端,进入用户目录,创建webcam_capture.cpp

  1. cd ~
  2. gedit webcam_capture.cpp

复制代码

    2. 输入图像采集程序

  1. #include “cxcore.h”
  2. #include “highgui.h”
  3. #include “cv.h”
  4. using namespace std;
    1. int main()
  5. IplImage* pFrame = NULL;
  6. cvNamedWindow(“result”, 1);
  7. CvCapture* pCapture = cvCreateCameraCapture(-1);
  8. cvSetCaptureProperty(pCapture,CV_CAP_PROP_FRAME_WIDTH,320);
  9. cvSetCaptureProperty(pCapture,CV_CAP_PROP_FRAME_HEIGHT,240);
    1. while(true)
  10. {
  11. pFrame = cvQueryFrame( pCapture );
  12. if(!pFrame) break;
    1. char c = cvWaitKey(33);
  13. if(c == 32) break;
  14. cvShowImage(“result”, pFrame);
  15. }
    1. return 0;
  16. }

复制代码

    3. 编译和运转

  1. g++ webcam_capture.cpp -o webcam_capture `pkg-config –cflags
    –libs opencv`
  2. ./webcam_capture

复制代码

    4. 运行效果

<ignore_js_op>

    四、问题总

    1.
有关OpenCV下的file.cpp文件编译指令,最常用的措施就是为此“pkg-config”进行编译,其现实格式为

  1. g++ file.cpp -o file `pkg-config –cflags –libs opencv`

复制代码

    其中,符号“`”并非单引号,而是数字键盘上跟波浪线“~”在一道的酷点。

    “pkg-config”工具要有以下几个力量:(1)检查库的版本号,如果所要库的本不可知满足要求,会打印错误信息;(2)“–cflags”获得编译预处理的参数,如宏定义、头文件的职位;(3)“–libs”获得库及其它依赖库的职,文件称与链接参数等。

    可以以巅峰输入以下指令获得头文件与库房文件的有关目录

  1. pkg-config –cflags opencv
  2. pkg-config –libs opencv

复制代码

<ignore_js_op>

    2. 于运转USB摄影像头图像采集程序一段时间以后,会出现视频卡顿的现象,并于极端显示“select
timeout”,我起初以为是分辨率设置的题材,所以个别安装了320*240、640*480、800*600等于几乎种植分辨率,运行后仍会出现卡顿。所以,也借这首帖子在论坛呼救,希望各位大神给闹修改意见。