图片读取和显示

Mat img = imread("dog.jpg");
//Mat img = imread("dog.jpg",IMREAD_GRAYSCALE); 读取为灰度图
//其他还有IMREAD_UNCHANGE和IMREAD_ANYDEPTH

//创建一个可以手动调整大小的自适应窗口
namedWindow("freesize", WINDOW_FREERATIO);
imshow("freesize", img);

imwrite("保存位置/文件名",文件对象); //保存

色彩空间转换

cvtColor(输入,输出,函数); GRAY,HSV,BGR

图像对象的创建

Mat基本结构
mat由矩阵头(包含了尺寸、存储方法等信息)和一个包含所有像素信息的矩阵组成。
赋值
克隆(clone)、拷贝(copyTo)、直接赋值
m1 = image.clone();
image.copyTo(m2);
创建空白矩阵并赋值
Mat m3 = Mat::zeros(Size(8, 8), CV_8SC3);

直接赋值是赋的地址,副本改变了原图像也会改变;用克隆和copyTo()则不会
可以用Scalar()对Mat数值进行修改
m4 = Scalar(0, 255, 255);

图像像素的读写操作

获取Mat基本参数
int w = image.cols;
int h = image.rows;
int dims = image.channels();

.at<>方法
对象.at(row,col); //获取坐标为row,col的像素点

智能指针
image.png