首页 > 代码库 > OPENCV(1)

OPENCV(1)

VS 程序的默认路径是源码所在路径(所以图片应该放在此处),而不是Debug路径

 

OpenCV 模块结构:

core——定义了基本数据结构,包括最重要的Mat和一些其他的模块

imgproc——该模块包括了线性和非线性的图像滤波,图像的几何变换,颜色空间转换,直方图处理等等

video——该模块包括运动估计,背景分离,对象跟踪

calib3d——基本的多视角几何算法,单个立体摄像头标定,物体姿态估计,立体相似性算法,3D信息的重建

features2d——显著特征检测,描述,特征匹配

objdetect——物体检测和预定义好的分类器实例(比如人脸,眼睛,面部,人,车辆等等)

highgui——视频捕捉、图像和视频的编码解码、图形交互界面的接口

gpu——利用GPU对OpenCV模块进行加速算法

ml——机器学习模块(SVM,决策树,Boosting等等)

flann——Fast Library for Approximate Nearest Neighbors(FLANN)算法库

legacy——一些已经废弃的代码库,保留下来作为向下兼容

 

 

 

Mat的拷贝只是复制了Mat的信息头,数据的指针也指向了被拷贝的数据地址,而没有真正新建一块内存来存放新的矩阵内容。这样带来的一个问题就是对其中一个Mat的数据操作就会对其他指向同一块数据的Mat产生灾难性的影响。

建立多维数组

int sz[3]={2,2,2};

Mat L(3,sz,CV_8UC(1),Scalar::all(0));

 

IplImage 格式直接转换为Mat格式

IplImage * img = cvLoadImage(“greatwave.png”,1);

Mat mts(img);    // convert  IplImage*   ----->    Mat

 

Mat 转换为 IplImage 或 CvMat

Mat I;

IplImage* pI = &I.operator  IplImage();

CvMat* mI = &I.operator CvMat();

OPENCV(1)