OpenCV(Open source Computer Vision library,开放计算机视觉库)由Intel发起,采用C/C++编写,追求性能优化,跨平台,帮助新生从一个高的起点开始视觉研究,避免闭门造车。
在CentOS-2.6.32中安装OpenCV-2.2.0步骤:
(1)安装相关依赖工程(本人只装了yasm、ffmpeg、cmake和gtk2-devel)
(2)下载OpenCV-2.2.0.tar.bz2,跟普通的tarball安装有点不同:
$tar jxvf OpenCV-2.2.0.tar.bz2
$cd OpenCV-2.2.0
$cmake .
$make
$sudo make install
(3)可能需要的步骤:
(3.1)$sudo cp /usr/local/lib/pkgconfig/opencv.pc /usr/lib/pkgconfig
(3.2)在/etc/ld.so.conf.d目录中添加文件opencv.conf,内容为/usr/local/lib,最好结尾换行,然后执行$sudo ldconfig重新加载配置
简单的例子:加载并显示图像(show.cpp)
#inlcude "cv.h"
#include "highgui.h"
int main(int argc, char * argv[])
{
IplImage *img = cvLoadImage(argv[1]);
cvNamedWindow("Show", CV_WINDOW_AUTOSIZE);
cvShowImage("Show", img);
cvWaitKey(0);
cvReleaseImage(&img);
cvDestroyWindow("Show");
return 0;
}
编译&执行:
$g++ `pkg-config --cflags --libs opencv` show.cpp -o show
$./show p.jpg
如果正确显示图像,那么安装成功
OpenCV的基本结构:CvPoint、CvSize、CvRect和CvScalar,都有同名的生成函数(开头变小写,如cvSize()),使得代码易写易读。
图像的结构层级:CvArr -> CvMat -> IplImage,CvMat派生于CvArr,IplImage派生于Cvmat,OpenCV没有向量结构,可用单列或单行矩阵代替,IplImage图像结构最初为Intel图像处理库(IPL,Image Processing Library)的一部分,而IPL是Intel集成性能基元(IPP,Integrated Pereformance Primitives)的前身,OpenCV的很多函数实际上可调用IPL或IPP中的相同功能函数。
个人以为CvMat矩阵结构和IplImage图像结构要重点拿下,其次是它们的相关操作,至少要知道以下这些函数:
cvLoadImage() & cvReleaseImage()
cvCreateImage() & cvShowImage() & cvSaveImage()
cvNamedWindow() & cvWaitKey() & cvDestroyWindow()
cvPoint() & cvSize() & cvRect() & cvScalar()
看完前三章对我来说够用了,后面章节需要再看吧~