如何在CentOS6.0上安装OpenCV-2.3.2+FFmpeg0.8.2

刚开始接触Linux,很多东西不懂,真所谓丈二的和尚摸不着头脑,嘿嘿。。。迅速地翻了一遍《鸟哥的私房菜--Linux基础学习》第三版,便有跃跃欲试的冲动了。因为导师给定的课题和图像视频处理有关,于是乎,想在Linux上装个OpenCV和FFmpeg,使用google的goagent代理下载到了OpenCV-2.3.1和FFmpeg0.8.2的源代码,google了大量关于在Linux上如何安装OpenCV和FFmpeg的文章,照葫芦画瓢,可是都没有成功,不过却积累了不少教训和经验,总结了一些规律,所以,最后,还是安装成功了!Now,现在我把自己安装成功的整个过程记录如下,仅供大家参考,请各位高手批评指正,不吝赐教,毕竟,小弟还是个菜鸟,需要各位的指点。

0. 准备

           我实验室中机器的基本信息: CPU Intel I5 ;  RAM  4GB; OS   Windows7 ultimate

           我是在VMware Workstation8中安装的CentOS6.0,可以逐步骤的Take Snapshot,返工比较方便,呵呵 

          OpenCV-2.3.1和FFmpeg0.8.2的源代码,都是通过代理下到的

1. 更新CentOS6.0

          更改/etc/yum.repos.d/CenOS-Base.repo文件,我将整个文件内容替换为:

     http://www.cnblogs.com/buffer/archive/2011/07/27/2118118.html中的网易163的

            然后yum -y upgrade

  2. 安装相关程序

         我比较笨的依次安装的,就像下面这样,其实可以一条命令搞定的~

标红的部分是系统中已经有的,但是也不一定~呃

     

yum install gcc-c++

yum install gtk+-devel.i686

yum install gimp-devel.i686

yum install gimp-devel-tools.i686

yum install gimp-help-browser.i686

yum install zlib-devel.i686

yum install libtiff-devel.i686

yum install libjpeg-devel.i686

yum install libpng-devel.i686

yum install gstreamer-devel.i686

yum install libavc1394-devel.i686

yum install libraw1394-devel.i686

yum install libdc1394-devel.i686

yum install jasper-devel.i686

yum install jasper-utils.i686

yum install cmake

yum install swig

yum install python

yum –y install libtool

yum install nasm.i686

 3. 安装FFmpeg

       我下载到的是这个文件ffmpeg-HEAD-023e996.tar.gz,右键解压,呵呵,然后找到解压后的文件夹,Open in Terminal,切换到root

            执行:/configure --prefix=/usr  --enable-shared --disable-yasm

       标红的部分是整个安装过程的关键,否则OpenCV安装时可能会找不到FFmpeg。事实上,最新的 OpenCV会 /usr/include/中寻找文件夹libavcodec libavdevicelibavformatlibavutillibswscale下的相关头文件。

   make

   make install 

 4.安装OpenCV

    我下载到的是这个文件OpenCV-2.3.1a.tar.bz,同样右键解压,找到CMakeLists.txt文件,将下面这行注释掉,我也不知道这句什么意思,为什么,总之不注释掉的话cmake时会出错。求高手们解释解释,多谢啦!

       set_property( CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS ${CMAKE_CONFIGURATION_TYPES} )

    然后,修改安装路径,找到

set(CMAKE_INSTALL_PREFIX "/usr/local" CACHE PATH "Installation Directory")

将其中的"/usr/local"改为 “/usr”,这样的话,就有:

头文件安装在

   /usr/include/opencv

  /usr/include/opencv2

库文件安装到 

      /usr/lib

    同样找到解压后的文件OpenCV-2.3.1,右键Open in Terminal,切换到root,执行

        mkdir release

        cd release

        cmake  ../

        make

        make install

   这样,opencv就安装完成了。  

 5.测试:

     从《Leaning OpenCV》中拷贝如下代码,命名为test.c

#include "highgui.h"

int main(int argc, char** argv)

    cvNamedWindow("test",CV_WINDOW_AUTOSIZE);

    CvCapture *capture=cvCreateFileCapture(argv[1]);

    IplImage *frame=NULL;

    while(1)

    {

     frame=cvQueryFrame(capture);

     if(!frame) break;

     cvShowImage("test",frame);

     char c=cvWaitKey(33);

     if(c==27) break;

     }

     cvReleaseCapture(&capture);

     cvDestroyWindow("test");

     return 0;

}

     然后在对应的目录中执行:

  gcc `pkg-config --cflags opencv --libs opencv`  test.c -o test

   因为我主要需要处理H.264编码的视频,所以找到了一个对应的flv文件,测试下

    ./test test.flv

   呵呵,可以播放了,当然,也可以编译执行OpenCV中的例子程序,但是我不知道为什么,samples这个文件夹没有被安装到/usr/local/share/OpenCV中了,于是直接把OpenCV-2.3.1这个文件夹里的samples拷贝

     /usr/share/OpenCV

    另外,FFmpeg也可以调用其他的如xvid,x264等编码库,具体参见链接6;

参考链接:

    1)http://opencv.willowgarage.com/wiki/InstallGuide_Linux

       2)https://sites.google.com/a/asu.edu/wireless-video-sensor/how-to-1/how-to-install-ffmpeg-opencv-under-fedora

       3)http://www.360doc.com/content/11/0726/10/1217721_135892686.shtml

       4)http://www.samontab.com/web/2010/04/installing-opencv-2-1-in-ubuntu/

       5)http://www.opencv.org.cn/forum/viewtopic.php?f=1&t=4670

       6)http://www.cppblog.com/fengqing888/archive/2011/08/12/153530.html


你可能感兴趣的:(OpenCV)