您的位置:首页 > 运维架构 > Linux

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

2012-02-27 10:33 323 查看
刚开始接触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文件,我将整个文件内容替换为:

/article/4821281.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
,libavdevice,libavformat,libavutil,libswscale下的相关头文件。

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: