【图像处理】图像表示与通道问题

问题描述:今天打算利用最小外接矩计算物资的偏移角度(后面搞完会写的),我将之前闭运算后的结果图作为初始图传入,计算最小外接矩其中一个步骤就是前面做过的寻找轮廓,由于外接矩的结果不理想,所以逐步调试,最终在寻找轮廓这步,竟然找到了100多个轮廓。

闭运算效果图:

 使用形态学滤波,已经可以清楚的找到了12个矩形。可是使用findCountours()函数寻找轮廓数量的时候,竟然找到的111个轮廓

原因分析:

在前面将三维转换成二维图像的时候,将三维点的z转换成二维图像中的灰度值

        Mat Image = Mat(row, col,CV_8UC3);
	int k = 0;
	for (int i = 0; i < row; i++)
	{
		for (int j = 0; j < col; j++)
		{
			Image.at<cv::Vec3b>(i, j)[0] = Points[k].G;
			Image.at<cv::Vec3b>(i, j)[1] = Points[k].G;
			Image.at<cv::Vec3b>(i, j)[2] = Points[k].G;
			k++;
			//cout << k << endl;
		}
	}

定义的时候,二维图像就是一个三通道的图像,最后得到的只是灰度图像,而并不是灰度化的图像,灰度化的图像应该是单通道的。下面左图是三通道灰度图像的详细信息,右图是单通道灰度化后的图像详细信息:

因为这个原因,所以后面的二值化也都是三通道的,所以在寻找轮廓的时候,就会有大量的杂乱轮廓,因为之前先把图像灰度,二值,闭运算处理后,虽然看不到那些细小的轮廓,但是,你看不看得见,他一直在~~所以图像通道对图像的处理有着巨大的影响,与大家共勉~~

 

 

 

 

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值