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

这篇具有很好参考价值的文章主要介绍了【Opencv】----- 图片无缝融合。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

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

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

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

代码如下

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画的不够好的话,合成的图就有违和感

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

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

代码实现如下

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画的越精细,效果就越优秀

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

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

 代码如下

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)https://learnopencv.com/seamless-cloning-using-opencv-python-cpp/好了,目前应该还有比泊松融合更加优秀的图片融合方法,可能ps上就是用的这个算子吧,不过ps应该已经进入了AIGC时代了,这中小卡拉米的技术应该看不上了吧。

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

至此,敬礼,salute!!!!

老规矩,上咩咩图

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

 文章来源地址https://www.toymoban.com/news/detail-508350.html

到了这里,关于【Opencv】----- 图片无缝融合的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 花30分钟,我用ChatGPT写了一篇2000字文章(内附实操过程)

    有了ChatGPT之后,于我来说,有两个十分明显的变化: 1. 人变的更懒 因为生活、工作中遇到大大小小的事情,都可以直接找ChatGPT来寻求答案。 2. 工作产出量更大 之前花一天,甚至更久才能写一篇原创内容,现在有了主题、框架之后,ChatGPT 30分钟就能给我一篇「水准之上」

    2024年02月07日
    浏览(59)
  • 无缝集成:基于FastAPI实现AI模型服务与nacos的完美融合

    当我们使用python构建AI模型算法的过程中,经常会遇到如下的问题: 这个模型如何提供给其他微服务调用(比如JAVA构建的微服务)? 这个模型如何做到多个服务节点的负载均衡? 这个模型如何做到服务的备份与故障转移? 本项目通过一个实际的例子,展示如何基于FastAPI实

    2024年02月02日
    浏览(41)
  • 前端多张图片无缝无限循环滚动

    想必大家都注意到marquee的不循环滚动。下面说一下循环滚动相对简单的实现思路:一个设定宽度并且隐藏超出它宽度的内容的容器demo,里面放demo1和demo2,demo1是滚动内容,demo2为demo1的直接克隆,通过不断改变demo1的scrollTop或者scrollLeft达到滚动的目的,当滚动至demo1与demo2的交

    2024年01月15日
    浏览(56)
  • 在html中使用js实现图片的无缝滚动(四种状态)

    获取整个ul和ul下面的所有li, 把ul里面的li内容添加一份,因为需要完成图片滚动效果所以需要二份完成无缝对接, 定义初始速度。 设置定时器 在定时中进行判断 实现原理:因为ul是跟着父元素div进行定位的,所以ul的offsetleft的值初始值为0。 只需要改变ul的left值就可以完成

    2024年02月09日
    浏览(38)
  • Python实现:图片叠加与融合

    Python实现:图片叠加与融合 在图像处理和计算机视觉中,图像的叠加和融合是一项重要的功能。通过叠加和融合不同的图像,我们可以实现许多有趣的应用,例如将两张图片叠加成一张,比较两幅图片的相似度等等。 Python作为一种高级编程语言,提供了丰富的图像处理和计

    2024年02月11日
    浏览(37)
  • OpenCV图像拼接和图像融合

    其它参考: https://zhuanlan.zhihu.com/p/362371939 https://blog.csdn.net/u013289254/article/details/103111601 主流的图像融合算法主要有以下几种: 1)直接进行图像拼接,会导致图片之间有很明显的界线 2)加权平均法,界线的两侧各取一定的比例来融合缝隙,速度快,但不自然 3)羽化算法,即

    2024年02月05日
    浏览(39)
  • python OpenCV:seamlessClone泊松融合

    翻译 https://www.learnopencv.com/seamless-cloning-using-opencv-python-cpp/ Python: cv.NORMAL_CLONE 将具有复杂轮廓的对象插入新背景,也就是说不保留dst 图像的texture细节,目标区域的梯度只由源图像决定。 Python: cv.MIXED_CLONE 基于宽松选择的混合无缝克隆,保留des图像的texture 细节。目标区域的梯

    2024年02月20日
    浏览(40)
  • Opencv——视频融合及人物影像探测

    【知识点】 视觉处理技术结合模式识别方法。 【素材准备】 准备视频A和视频B。 其中 视频A 是网上下载的风景区的视频录制(如张家界、武夷山或五大名山之一)。 视频B是个人在白墙或纯色背景前的行走视频。 【要求】 (i)通过阈值方法,结合OPENCV的与或运算,将视频

    2023年04月09日
    浏览(34)
  • opencv实现抠图,图像拼接,图像融合

    在OpenCV中,你可以使用图像拼接、抠图和将图像的一部分放在另一张图片的指定位置。以下是示例代码,演示如何执行这些操作: 图像拼接 要将两张图像拼接在一起,你可以使用  cv::hconcat (水平拼接)和  cv::vconcat (垂直拼接)函数。下面是一个示例代码,演示如何水平

    2024年02月05日
    浏览(38)
  • OpenCV进阶 — 图像拼接和图像融合技术

    图像拼接在实际的应用场景很广,比如无人机航拍,遥感图像等等,图像拼接是进一步做图像理解基础步骤,拼接效果的好坏直接影响接下来的工作,所以一个好的图像拼接算法非常重要。 再举一个身边的例子吧,你用你的手机对某一场景拍照,但是你没有办法一次将所有你

    2024年02月03日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包