1.openCV万能头文件 #include<opencv2/opencv.hpp>
常用头文件#include<opencv2/core/core.hpp> 、#include<opencv2/highgui/highgui.hpp>
2.int main(int argc,char **argv){}
argc是用来统计程序运行时发送给main函数的命令行参数的个数;
argv是用来存放指向字符串参数的指针数组,每一个元素指向一个参数,
argv[0]指向程序运行的全路径名
argv[1]指向在DOS命令行中执行程序名后的第一个字符串
argv[n]指向在DOS命令行中执行程序名后的第n个字符串,其中n<argc
argv[argc]为NULL
3.OpenCV中的C++类和函数都定义在命名空间cv之内,可以使用using namespace cv;
4.Mat类是用于保存图像以及其他矩阵数据的数据结构。
Mat类有两部分组成:矩阵头和一个指向像素值矩阵的指针。
Mat类的定义和初始化问题:定义仅创建矩阵头,拷贝和赋值运算仅复制矩阵头(矩阵头会有少量变化)和矩阵指针。
多个Mat对象指向同一个数据矩阵,改变任何一个对象都会影响其他对象。
如果想拷贝数据矩阵可以使用成员函数clone(),例如Mat F=A.clone();
5.显示创建Mat对象的几种方法:
- Mat M(2,2,CV_8UC3,Scalar(0,0,255));
- int sz[3]={2,3,2}; Mat L(3,sz,CV_8UC,Scalar::all(0));
- Mat M; M.create(4,4,CV_8UC2);
- Mat E=Mat::eye(4,4CV_64F);//Mat O=Mat::ones(4,4,CV_32F);//Mat Z=Mat::zeros(4,4,CV_8UC1);
- Mat C=(Mat_<double>(3,3)<<0,-1,0,-1,5,-1,0,-1,0);
- Mat rowClone=C.row(0).clone();