OpenCV灰度图与二值图叠加显示

本文介绍了如何使用OpenCV库对二值图进行处理,将其转换为RGB图并改变特定像素颜色。通过循环遍历像素,将二值图中的1像素替换为自定义RGB值。此外,还展示了如何将灰度图转换为RGB图,并使用addWeighted函数将灰度图与二值图叠加。整个过程详细阐述了图像处理的基本步骤,适用于图像分析和视觉应用。
摘要由CSDN通过智能技术生成
1.对二值图做处理,先将其转换成RGB图
Mat mask = imread("F:/二值图.png", IMREAD_ANYDEPTH);	//读取二值图,只有0,1像素
//mask.setTo(255, mask == 1); //uint8格式显示0和1像素都是黑色的,为了能看出来二值模板,需要将像素1换成255
//imshow("原始二值图", mask);
//waitKey(6000);
cvtColor(mask, mask, COLOR_GRAY2BGR);//先将二值图转成RGB图,此时二值图中的1像素值就变成了[1,1,1]
for (int i = 0; i < mask.rows; i++)//将RGB图中的[1,1,1]像素改成我们想要的彩色像素
{
	for (int j = 0; j < mask.cols; j++)
	{
		Vec3b& pixel = mask.at<Vec3b>(i, j);//按照坐标,获取RGB图对应的像素值
		if (pixel[0] == 1)   //找到像素值为1的值,将其转换成别的颜色
		{
			pixel[0] = 0;   //Blue //可以自己设置RGB值
			pixel[1] = 128;  //Green
			pixel[2] = 255;  //Red
		}
	}
}

※ 如何设置想要的颜色?推荐一个方法
(1)在windows附件中打开画图工具,找到编辑颜色选项,打开编辑界面。

画图工具(2)选择颜色,就会在右下角显示对应的RGB值,照着这个数输入到代码中就可以了。

在这里插入图片描述

2.读取灰度图
Mat img = imread("F:/灰度图.png", IMREAD_ANYDEPTH);
//imshow("原始灰度图", img);
//waitKey(6000);
cvtColor(img, img, COLOR_GRAY2BGR); //将灰度图转成RGB图
3.灰度图与二值图叠加,利用OpenCV的addWeighted函数
addWeighted(img, 1, mask, 0.5, 1, img);//1,0.5,1是两个图叠加的比例系数,可以自行设置
//imshow("叠加后的图",img);
//waitKey(6000);
4.结果展示

叠加效果

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值