opencv4.0 mat

mat:图像文件的内存数据对象
一.获取mat信息。

Mat src = imread("D:/software/opencv4.1.0/opencv/sources/samples/data/lena.jpg",IMREAD_ANYCOLOR);
int width = src.cols;
	int height = src.rows;
	int dim = src.channels();//通道数,1个的是灰色,3个是彩色,4个的还有一个是透明通道
	int d = src.depth(); //图像深度
	int t = src.type();
	if(t==CV_8UC3)
				printf("width:%d, height:%d,  dim=%d   dep=%d  type=%d\n ", width, height, dim,d,t);

在这里插入图片描述

在这里插入图片描述

二.创建mat

Mat t1 = Mat(256, 256, CV_8UC3); //创建一个灰度图像,(宽,高,通道数)
	//t1 = Mat(Size(256, 256), CV_8UC3);//和上面等价
	t1 = Scalar(0,34,0); 
	 //sclar  表示颜色赋值,由于上面让它为3通道,故而要给3个通道赋值
	imshow("t1",t1);  

	Mat t2 = Mat::zeros(Size(256, 256), CV_8UC3);  //天生黑色
	imshow("t2",t2);


	//赋值和克隆的区别
	Mat t3 = src.clone();
	t3 = Scalar(0, 0, 0);
	imshow("after clone _src", src);
	Mat t4 = src;
	t4 = Scalar(0, 0, 0);//这时原图会改变
	imshow("after assignment _src", src);

	//创建和src大小完全一致的图
	Mat t5 = Mat::zeros(src.size(), src.type());

三.遍历与访问像素值

发布了114 篇原创文章 · 获赞 22 · 访问量 7031

猜你喜欢

转载自blog.csdn.net/qq_43235540/article/details/103318701