当前位置: 首页 > news >正文

opencv图像融合

 大家好,我是csdn的博主:lqj_本人

这是我的个人博客主页:

lqj_本人的博客_CSDN博客-微信小程序,前端,python领域博主lqj_本人擅长微信小程序,前端,python,等方面的知识https://blog.csdn.net/lbcyllqj?spm=1011.2415.3001.5343哔哩哔哩欢迎关注:小淼Develop

小淼Develop的个人空间-小淼Develop个人主页-哔哩哔哩视频

本篇文章主要讲述python的人工智能视觉领域(opencv),本篇文章已经成功收录python人工智能视觉(opencv)从入门到实战专栏中:https://blog.csdn.net/lbcyllqj/category_12200666.htmlicon-default.png?t=N176https://blog.csdn.net/lbcyllqj/category_12200666.html

图像融合

  • 背景:图像融合是图像处理的一个基本问题,目的是将源图像中一个物体或者一个区域嵌入到目标图像生成一个新的图像。在对图像进行合成的过程中,为了使合成后的图像更自然,合成边界应当保持无缝。但如果源图像和目标图像有着明显不同的纹理特征,则直接合成后的图像会存在明显的边界。
  • 引入:基于泊松方程而引入的泊松融合求解像素最优值的方法,在保留了源图像梯度信息的同时,融合源图像与目标图像。该方法根据用户指定的边界条件求解一个泊松方程,实现了梯度域上的连续,从而达到边界处的无缝融合。

对比传统图像融合和泊松融合

  • 传统的图像融合:
    • 精确地选择融合区域:过程单调乏味且工作量大,常常无法得到好的结果。
    • Alpha-Matting:功能强大,但是实现复杂。
  • 基于Poisson方程的无缝融合:
    • 选择融合区域的过程简单且方便。
    • 最终可以得到无缝融合的结果。

变分法的解释泊松图像编辑

 表示融合图像块的梯度。

变分方程的意义表明我们的无缝融合是以源图像块内梯度场为指导,将融合边界上目标场景和源图像的差异平滑地扩散到融合图像块 I 中,这样的话,融合后的图像块能够无缝地融合到目标场景中,并且其色调和光照可以与目标场景相一致。

 读取需要融合的两张图

import cv2
import numpy as np src = cv2.imread("1.jpg")
dst = cv2.imread("2.jpg")

 创建飞机的mask

src_mask = np.zeros(src.shape, src.dtype)
# 绘制多边形
poly = np.array([ [4,80], [30,54], [151,63], [254,37], [298,90], [272,134], [43,122] ], np.int32)
cv2.fillPoly(src_mask, [poly], (255, 255, 255))

 

  • 融合操作使用 cv2.eamlessClone() :
    • 参数1:融合图(飞机)
    • 参数2:目标图(天空)
    • 参数3:融合图的mask
    • 参数4:融合图位置中心
    • 参数5:融合方式,常用 cv2.MIXED_CLONE 和 cv2.NORMAL_CLONE
# 飞机中心位置在dst的坐标
center = (500,100)
# 泊松融合.
output1 = cv2.seamlessClone(src, dst, src_mask, center, cv2.MIXED_CLONE)

http://www.lryc.cn/news/18600.html

相关文章:

  • 没有经验的时候,怎么搞定面试?
  • 整数保序的离散化(C/C++)
  • python--排序总结
  • 进化的隐藏水印:深度学习提升版权保护的鲁棒性
  • Jenkins配置项目教程
  • C++多继承,虚继承部分总结与示例
  • 程序员35岁以后就没有出路了吗?听听京东10年测开的分析
  • 数据结构(六):冒泡排序、选择排序、插入排序、希尔排序、快速排序
  • C++之类与对象(上)
  • Java岗面试题--Java并发 计算机网络(日积月累,每日三题)
  • 三菱FX3U与威纶MT8071IP走RS422通讯
  • 给想考CISP的一点建议
  • ACM 记忆化搜索
  • spring框架常用注解简单说明
  • 2023-02-24 mysql/innodb-聚合-临时表避免OOM-使用磁盘文件-分析
  • cracklib与libpwquality 评估密码的安全性
  • 【Java】保证并发安全的三大特性
  • 如何优雅的用golang封装配置项(Functional Options)
  • Springboot 使用thymeleaf 服务器无法加载resources中的静态资源异常处理
  • 服务端IOS订阅类型支付接入详细说明与注意事项
  • 【剑指Offer】重建二叉树(递归+迭代)
  • 注解@Transactional 原理和常见的坑
  • 2023年全国最新交安安全员精选真题及答案4
  • 扬帆优配|半天翻倍,“蹭热点”翻车,前期“牛股”已近腰斩
  • 6 种易于上手的编程副业,每月赚取 1,000 多美元——没有废话
  • 第九届蓝桥杯省赛 C++ B组 - 日志统计
  • 记一次服务器入侵事件的应急响应
  • 作用域链查找机制(回顾)
  • 前端基础之HTML扫盲
  • 大规模食品图像识别:T-PAMI 2023论文解读