【Opencv】----- 图片无缝融合

文章介绍了图像融合的几种方法,包括基于加权平均的简单融合、基于mask的替换融合以及使用OpenCV的seamlessClone实现的泊松融合。通过示例代码展示了这些技术如何将缺陷图片与正常图片进行自然融合,强调了mask质量和融合算法对结果的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上次写了一篇关于GAN缺陷生成的图片的,发现大家的对这个根本不感兴趣,可能是用于在座的各位觉得样本有的是,我为什么还苦哈哈的去生成啊,说的也不是没有道理,可能只是我搞了更加苦哈哈的工业深度学习吧,所以这种技术才显得格外感兴趣,最讨厌听到的客户说,你要那么多图片干什么,谁谁家的软件就不需要这么多图片。直接大写的无语。既然大家都不感兴趣,那我就换个话题。

那我们就来说一说缺陷图片和正常图片无缝融合(反正GAN生成的了的缺陷还是要和正常图片融合),先来看看大家理解的几种融合。

1.cv2.addWeighted(img1,0.5,img2,0.5,0)

这种其实就是img1,img2两张图片对应像素对应加权得到新的像素值,也就img = img1 *0.5 + img2 *0.5 ,img1就是第一张这样,img2就是下图的咩咩狗,img合成后就像下面第三张图的效果

代码如下

img1 = cv2.imread(r'C:\Users\admin\Desktop\1.jpg')
img2 = cv2.imread(r'C:\Users\admin\Desktop\2.jpg')
img2 = cv2.resize(img2,(img1.shape[1],img1.shape[0]))
finall_img = cv2.addWeighted(img1,0.5,img2,0.5,0)
cv2.imshow('finall_img',finall_img)
cv2.waitKey(0)

2.基于mask的替换融合

我们先上效果图,可以看到合成效果图,如果我们的mask画的不够好的话,合成的图就有违和感

代码实现如下

mg1 = cv2.imread(r'C:\Users\admin\Desktop\1.jpg')
img2 = cv2.imread(r'C:\Users\admin\Desktop\2.jpg')
img2_mask = cv2.imread(r'C:\Users\admin\Desktop\2_mask.png')
#将img2_mask 以0 padding到img1的大小
img2_mask = cv2.copyMakeBorder(img2_mask,0,img1.shape[0]-img2_mask.shape[0],0,img1.shape[1]-img2_mask.shape[1],cv2.BORDER_CONSTANT,value=0)
#将img2 以0 padding到img1的大小
img2 = cv2.copyMakeBorder(img2,0,img1.shape[0]-img2.shape[0],0,img1.shape[1]-img2.shape[1],cv2.BORDER_CONSTANT,value=0)
img1[img2_mask == 255] = img2[img2_mask == 255]
cv2.imshow('img1',img1)
cv2.waitKey(0)

 3.cv2.seamlessClone

我们先上效果图,可以看到合成效果图比之前都好了很多,也自然了很多,这是就是泊松融合,但当然如果你的mask画的越精细,效果就越优秀

 代码如下

img1 = cv2.imread(r'C:\Users\admin\Desktop\1.jpg')
img2 = cv2.imread(r'C:\Users\admin\Desktop\2.jpg')
img2_mask = cv2.imread(r'C:\Users\admin\Desktop\2_mask.png')
img = cv2.seamlessClone(img2,img1,img2_mask,(150,230),cv2.NORMAL_CLONE)
cv2.imshow('img',img)
cv2.waitKey(0)
 cv2.seamlessClone这个函数具体的使用方法可以参考以下链接

Seamless Cloning using OpenCV ( Python , C++ ) | (learnopencv.com)icon-default.png?t=N5K3https://learnopencv.com/seamless-cloning-using-opencv-python-cpp/好了,目前应该还有比泊松融合更加优秀的图片融合方法,可能ps上就是用的这个算子吧,不过ps应该已经进入了AIGC时代了,这中小卡拉米的技术应该看不上了吧。

好了,已经很久没写博客了,写起来还是感觉有点累的,最后也不知道到底有没有人看,这种文章感觉会淹没了,毕竟没几行代码,大家估计不过瘾

至此,敬礼,salute!!!!

老规矩,上咩咩图

 

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

咕里个咚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值