加入我们有两张图,分别是这样:

我们想要将第二个放置在第一个图上,直接贴图就是这样的:

这样贴着,没啥意义,我们使用seamlessClone处理一下就会变得很好:

看着自然很多了吧,上述的代码如下:

import cv2
import numpy as npb3=cv2.imread('b3.jpg')
b2=cv2.imread('b2.jpg')
#b1=cv2.resize(b1,(256,256))
center_x=300
center_y=500#normal_clone
mask = 255 * np.ones(b3.shape, b3.dtype)
normal_clone = cv2.seamlessClone(b3, b2, mask, (center_x+256,center_y-256), cv2.NORMAL_CLONE)
cv2.imshow('normal_clone',normal_clone)
#max_clone
max_clone = cv2.seamlessClone(b3, b2, mask, (center_x+256,center_y-256), cv2.MIXED_CLONE)
cv2.imshow('max_clone',max_clone)
#直接贴
#print(b3.shape)
b2[200:416,300:1151]=b3
cv2.imshow('b2',b2)
cv2.waitKey(0)

同样,我们想讲一个美女头像贴在这个草原上:

先看一下直接贴的效果:

看着是不是很别扭

接下使用seamlessClone看一下:

看着这样更自然很多,上面使用了normal_clone和max_clone两种模式,上述的例子看起来差别不大,但是有的例子差距就会很多,需要自己选择。

至此,使用cv2里面seamlessClone方式,应该熟悉了,代码如下:

import cv2
import numpy as npb1=cv2.imread('b1.jpg')
b2=cv2.imread('b2.jpg')
b1=cv2.resize(b1,(256,256))
center_x=300
center_y=500#normal_clone
mask = 255 * np.ones(b1.shape, b1.dtype)
normal_clone = cv2.seamlessClone(b1, b2, mask, (center_x+256,center_y-256), cv2.NORMAL_CLONE)
cv2.imshow('normal_clone',normal_clone)
#max_clone
max_clone = cv2.seamlessClone(b1, b2, mask, (center_x+256,center_y-256), cv2.MIXED_CLONE)
cv2.imshow('max_clone',max_clone)
#直接贴
b2[center_x-128:center_x+128,center_y-128:center_y+128]=b1
cv2.imshow('b2',b2)
cv2.waitKey(0)

使用cv2进行图像融合相关推荐

  1. opencv学习笔记7:图像加法与图像融合

    图像加法 1.使用Numpy加法 运算方式:结果=图像1+图像2 原理:图像数据格式为unit8 8位二进制表示范围是0到255. 二进制相加 1.不超过255的,如100+58=158 2.两数相加 ...

  2. [转载] opencv学习笔记7:图像加法与图像融合

    参考链接: python opencv 基础 4: addWeighted() 融合两张图像 图像加法 1.使用Numpy加法 运算方式:结果=图像1+图像2 原理:图像数据格式为unit8 8位二进 ...

  3. python图像运算、图像融合

    文章目录 图像加法运算 图像减法运算 图像与运算 图像或运算 图像异或运算 图像非运算 图像融合 获取图像ROI区域 图像类型转换 报错解决 图像加法运算 cv2.add(src1,src2,dst, ...

  4. OpenCV-Python图像融合cv2.addWeighted权重加法函数详解

    ☞ ░ 前往老猿Python博客 https://blog.csdn.net/LaoYuanPython ░ 一.概述 在<OpenCV-Python图像的加法运算cv2.add函数详解> ...

  5. 【opencv】(2) 图像处理:边界填充、图像融合、图像阈值、数值计算

    主要内容有:边界填充 cv2.copyMakeBorder(),数值计算 cv2.add(),改变尺寸 cv2.resize(),图像融合 cv2.addWeighted(),图像阈值 cv2.thr ...

  6. python——图像处理3(均值偏移、改变亮度、图像修复、图像融合)

    https://blog.csdn.net/gm_ergou/article/details/92846396 1.均值偏移(磨皮效果) import cv2 as cv import numpy a ...

  7. 【Python】手把手教你用Python做一个图像融合demo,小白可上手!

    创作背景 说到融合,一下子会让我们这些95后想起来童年的动漫游戏王了! 发动魔法卡--融合! 哈哈,今天说得当然不是游戏王里的魔法了,但是我们使用的是Python魔法,今天我们将使用Python编程语 ...

  8. 【opencv系列08】OpenCV4.X图像融合操作

    点击上方"AI搞事情"关注我们 图像叠加 add(src1, src2, dst=None, mask=None, dtype=None)函数或者numpy操作实现图像按位相加,若 ...

  9. [Python从零到壹] 三十七.图像处理基础篇之图像融合处理和ROI区域绘制

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

最新文章

  1. 用产品的心态写代码:什么样的机器学习产品是最符合用户需求的
  2. rabbitmq sleuth zinkip 分布式链路追踪
  3. python实时监控_使用Python监控Linux系统
  4. 【操作系统】操作系统的生成
  5. $ is not defined 如何解决
  6. 高手过招:用SQL解决环环相扣的刑侦推理问题(苏旭辉版本)
  7. flutter: 建树流程
  8. window设置定时任务执行python脚本
  9. html %3c自动转化,将几个文件中的大型HTML文件拆分
  10. 软件测试必问必背面试题
  11. 怎么把计算机加入网络打印机共享打印机共享,打印机共享怎么设置
  12. 慕尼黑工业大学计算机博士申请条件,德国慕尼黑工业大学博士生申请条件
  13. 【转载】最全的脱壳,反编译_,汇编工具集合
  14. linux找不到mysql命令行_解决linux系统中找不到命令的问题
  15. vue如何实现在页面上画画_Vue使用Canvas绘制图片、矩形、线条、文字,下载图片...
  16. Entropy attack——hash函数的熵攻击
  17. python有趣小程序春节祝福-Python实现春节祝福语自动回复
  18. python二维码生成识别代码_Python3+qrcode+zxing生成和识别二维码教程
  19. python在土木领域_自学python需要注意的问题
  20. Proteus仿真AT89C52——计数器

热门文章

  1. 循环输入某同学专业阶段考试的5门课成绩,并计算平均分
  2. JAVA导入gpx文件_技术贴 | 如何将赛事路线导入 Garmin 设备(BaseCamp 篇)
  3. JavaSE基础篇--Java SE语法02--基本语法
  4. MySQL数据库界面化工具 - Navicat的常用功能
  5. 克服自卑心理,展现真实自我
  6. Leetcode算法Java全解答--17. 电话号码的字母组合
  7. 处理Activity#onResume()遇到java.lang.IllegalArgumentException诡异异常
  8. 文本识别论文CRNN
  9. Pycharm连接sqllite
  10. 数据结构pintia_数据结构和算法(一)概述