图像背景与前景运算

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Bigat/article/details/80889636

我们可以将一些logo图案加在其他的图像上,这和图像的按比重加法的不同之处在于按比重加法是整体的加法,要求比较多,而在本节内容中,则主要是提取一些特征来实现加法,实用性更强,首先来对比一下这两者的差别。

图1 图像按比重混合(左)图像前景背景混合(右)

实现的过程(代码网上较多,本文就不附代码)

1. 获取前景图像的特征轮廓(logo部分)

将前景图像转为灰度图像,然后进行二值化(确保logo与背景在灰度图中像素值差异明显,提取的效果才会好)


   
   
  1. img2gray=cv2.cvtColor(img2,cv2.COLOR_BGR2GRAY) #将图像转为灰度图
  2. ret,mask=cv2.threshold(img2gray, 242, 255,cv2.THRESH_BINARY) #第二个参数为阈值,第三个参数为高于阈值取值结果,第四个是阈值方法

ret值存放的是阈值,mask存放二值图,我们希望logo部分的值为0,这样和背景图做与运算时,logo部分就会保留(为0)

图2 logo二值化后
2. logo二值化后与背景图做与运算

这样做的结果就是在背景图中,logo部分的像素值均会为0

图3 logo二值化后与背景图上的ROI区域做与运算
3. 对logo的二值化图取反,将其与logo图做与运算

结果就和上一步相反,logo图中的特征部分保留,其背景被消除

图4 logo图二值化取反后与logo原图与运算
4. 上两步的结果相加

相加后,我们希望的结果就实现了!然后,将这一部分复制到我们原图的对应部分(ROI区域)

图5 相加后的结果

5. 对图像中的噪点进行滤波 

5.1对取得logo的边缘后对其滤波(在最终相加前)

图 6 对logo部分滤波(均值滤波,核矩阵大小为5*5)
滤波后,图像边缘噪点要少,但图像模糊化了,在猫的眼睛部分尤其明显,采用小的核矩阵效果会好一些,但在边缘处的处理有不如前者。
5.2 对相加后的结果滤波

图7 相加后对图像滤波
对比两者(相加前和相加后滤波),可以发现后者在对边缘的处理效果要好,噪点少,更加平滑。后续的可以结合其他的滤波方法,来对比效果,选择最佳的滤波方法。



参考文献:OpenCV官方文档(中文版) for python

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值