OpenCV入门(三):图像对象的创建与赋值

OpenCV中图像以Mat类的格式存储。Mat类型将图像的存储分为两部分。一部分为图像头,包括图像的信息,如大小,格式等。第二部分为图像的数据矩阵,即每个像素点的值。

对Mat对象赋值时,clone 与 copyto 会将图像生成一个新的图像对象。而其他赋值方式仅仅复制的图像头,图像的数据存储地址没变。下面例子中,改变img2 img3都不会影响img1,而改变img4 img5,img1则会跟随改变。

void OpencvExample::Example_MatCreation()
{
	Mat img1, img2, img3, img5;
	img1 = Mat::zeros(Size(256,256),CV_8UC3);
	img1= Scalar(73, 148, 70);
	imshow("output1", img1);
	
	img2 = img1.clone();
	imshow("output2", img2);

	img1.copyTo(img3);
	imshow("output3", img3);

	Mat img4(img1);

	img5 = img1;

	img4 = Scalar(31,199,231);
	imshow("output1.1", img1);

	img2 = Scalar(60, 54, 175);
	imshow("output1.2", img1);
	imshow("output2.1", img2);
}

程序运行效果如下:
OpenCV入门(三):图像对象的创建与赋值_第1张图片

你可能感兴趣的:(Opencv新手入门教程,opencv,计算机视觉,图像处理)