首页 > 代码库 > 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)