Mat对象与像素操作 OpenCV C++
Mat对象,分为两个部分,头部和数据部分
Mat对象拷贝之后是相互独立的
Mat对象有三种创建方法
CV_8UC1单通道,CV_8UC2双通道,CV_8UC3三通道,通道数
Scalar(0-255,0-255,0-255);这个Scalar是给图片一个颜色
zeros代表创建了一个全黑的图片,默认背景色为黑色
Mat t1 = Mat(256, 256, CV_8UC3);//三通道 t1 = Scalar(0, 0, 255); imshow("t1", t1); Mat t2 = Mat(Size(512, 512), CV_8UC3); t2 = Scalar(255, 0, 255); imshow("t2", t2); Mat t3 = Mat::zeros(Size(256, 256), CV_8UC3); imshow("t3", t3);
Mat克隆的方式有两种
//直接克隆 t4还是原来的地址,会随着之前的一起变动 Mat t4 = src; t4 = Scalar(0, 0, 0); //用函数克隆,t5是新的地址,不会随着之前的一起变动 Mat t5 = src.clone(); t5 = Scalar(0, 0, 255);
只拷贝原图的参数,size和type ,大小和类型
Mat t6 = Mat::zeros(src.size(), src.type()); imshow("t6", t6);