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);

 

 

Tags: