首页 > 代码库 > CentOS6.4 + OpenCV2.3.1 + ffmpeg0.8 + Codeblocks

CentOS6.4 + OpenCV2.3.1 + ffmpeg0.8 + Codeblocks

由于项目需要,要把之前的工作移植到CentOS上。由于之前没有真正下手使用过Linux的系统,所以这次算是练手了。

1         环境部署

1.1   安装VMWare9

1.2   新建虚拟机,安装CentOS6.4-x86_64

虚拟机配置根据计算机硬件和需求进行配置,网络设置成bridge。如果安装过程中出现VT-x错误,需要在BIOS中开启VT-x,AMD平台未测。

1.3   安装OpenCV2.3.1

参考

blog.csdn.net/xiaohouzuoxin/article/details/9831263

需要单独下载的默认放在/home/xx/Downloads

1.3.1       部署yum源

在mirror.163.com中获得CentOS的repo文件,覆盖本地的文件

/etc/yum.repo.d/CentOS-Base.repo

1.3.2       准备环境

su

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

*.i686换成*.x86_64,如果出现yum的软件包没有,用yum search 软件包名搜索一下,在yum install找到的软件包名

 

1.3.3       ffmpeg

参考

blog.csdn.net/xygl2009/article/details/12998497

在官网找ffmpeg-0.8稳定版,下载后解压,Open in Terminal

./configure –enable-shared –enable-gpl –enable-swscale–disable-yasm

make

make install

所有的库安装在/usr/local/lib下,所有的头文件安装在/usr/local/include下

测试ffplay,但是会报错。找到config.mak文件并打开,找到CONFIG_FFPLAY=yes,去掉前面的!,再make。提示缺少SDL。安装SDL

yum install SDL

再安装缺少的几个库SDL_mixer-2.0.0,SDL_image-2.0.0和SDL_rtf-0.1.0。但是make时会出错,定位的错误是SDL的版本号太旧,下载最新的SDL2-2.0.3并安装,问题解决。

make

make install

 

1.3.4       pkg-config

参考blog.csdn.net/firefoxbug/article/details/7554409

pkg-config通过各个库文件中的.pc文件识别已安装的库文件的信息。这些.pc文件是由各库的安装程序自己生成的。通过PKG_CONFIG_PATH来设置pkg-config进行更新。

 

1.3.5       cmake

yum install cmake

 

1.3.6       OpenCV2.3.1

解压后Open in Terminal,

mkdir release

cd release

cmake ../

出错,定位在CMakeLists.txt中的第44行。简单的作法是注释掉这一行。再次

cmake ../

生成列表中ffmpeg相关的都是no。执行

export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig

再次执行

cmake ../

生成列表中ffmpeg相关项都是yes

make

make install

 

所有的库安装在/usr/local/lib下,所有的头文件安装在/usr/local/include下。测试OpenCV和ffmpeg之前还需将路径更新

vi /etc/ld.so.conf

最后加入一行 /usr/local/lib

ldconfig

 

1.4   CodeBlocks-12.11

参考

www.ienter.org/html/2013/07/117.html

下载codeblocks-12.11,安装。还需要安装wxGTK和xterm

 

2         例程调试

参考

http://www.07net01.com/program/123599.html

http://digitus.itk.ppke.hu/~losda/anyagok/OpenCV/CodeBlocks_OpenCV.pdf

 

默认路径/home/xx/Codes/test/test_opencv

打开Code::blocks

新建工程,类型为Console application,使用语言C++,工程名test_opencv,一路next就好了。

在sources中双击main.cpp

输入代码

#include <stdio.h>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/core/core.hpp>

using namespace cv;
using namespace std;

int main( int argc, char ** argv )
{
	if (argc == 2)
	{
		Mat img;
		img = imread(argv[1]);
		imshow(“test”, img);
		waitKey(0);
		return 0;
	}
	return -1;
}

 

配置工程的环境变量等

右键左手边的test_opencv,选择Build options,选择对话框左手边的test_opencv,然后选择Linker settings,在Linklibraries中加入使用到的lib

/usr/local/lib/libopencv_highgui.so.2.3.1

/usr/local/lib/libopencv_imgproc.so.2.3.1

/usr/local/lib/libopencv_core.so.2.3.1

选择Search directories,在Compiler中加入include的位置

/usr/local/include/opencv2

/usr/local/include

在Linker中加入lib的位置

/usr/local/lib

最后点击确定,进行编译,生成的文件在../bin/Release里面

在Terminal中进入该路径,执行

./test_opencv xx.xx

显示图片说明OpenCV能够正常使用了。下面测试视频播放功能

#include <stdio.h>
#include<opencv2/imgproc/imgproc.hpp>
#include<opencv2/highgui/highgui.hpp>
#include <opencv2/core/core.hpp>
#include <opencv2/video/video.hpp>
 
using namespace cv;
using namespace std;
 
int main( int argc, char ** argv )
{
       Matimg;
       VideoCapturepCap;
      
       if(!pCap.isOpened())
              return-1;
 
       while(1)
       {
              pCap>> img;
              imshow(“test”,img);
              if(waitKey(10) == 27)
                  break;
       }
       return-1;
}

在Linker settings,Link libraries中加入

/usr/local/lib/libopencv_video.so.2.3.1

编译

在Terminal中进入该路径,执行

./test_opencv xx.xx

播放视频,按ESC退出。