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 ,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