使用cv2进行图像融合
加入我们有两张图,分别是这样:
我们想要将第二个放置在第一个图上,直接贴图就是这样的:
这样贴着,没啥意义,我们使用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进行图像融合相关推荐
- opencv学习笔记7:图像加法与图像融合
图像加法 1.使用Numpy加法 运算方式:结果=图像1+图像2 原理:图像数据格式为unit8 8位二进制表示范围是0到255. 二进制相加 1.不超过255的,如100+58=158 2.两数相加 ...
- [转载] opencv学习笔记7:图像加法与图像融合
参考链接: python opencv 基础 4: addWeighted() 融合两张图像 图像加法 1.使用Numpy加法 运算方式:结果=图像1+图像2 原理:图像数据格式为unit8 8位二进 ...
- python图像运算、图像融合
文章目录 图像加法运算 图像减法运算 图像与运算 图像或运算 图像异或运算 图像非运算 图像融合 获取图像ROI区域 图像类型转换 报错解决 图像加法运算 cv2.add(src1,src2,dst, ...
- OpenCV-Python图像融合cv2.addWeighted权重加法函数详解
☞ ░ 前往老猿Python博客 https://blog.csdn.net/LaoYuanPython ░ 一.概述 在<OpenCV-Python图像的加法运算cv2.add函数详解> ...
- 【opencv】(2) 图像处理:边界填充、图像融合、图像阈值、数值计算
主要内容有:边界填充 cv2.copyMakeBorder(),数值计算 cv2.add(),改变尺寸 cv2.resize(),图像融合 cv2.addWeighted(),图像阈值 cv2.thr ...
- python——图像处理3(均值偏移、改变亮度、图像修复、图像融合)
https://blog.csdn.net/gm_ergou/article/details/92846396 1.均值偏移(磨皮效果) import cv2 as cv import numpy a ...
- 【Python】手把手教你用Python做一个图像融合demo,小白可上手!
创作背景 说到融合,一下子会让我们这些95后想起来童年的动漫游戏王了! 发动魔法卡--融合! 哈哈,今天说得当然不是游戏王里的魔法了,但是我们使用的是Python魔法,今天我们将使用Python编程语 ...
- 【opencv系列08】OpenCV4.X图像融合操作
点击上方"AI搞事情"关注我们 图像叠加 add(src1, src2, dst=None, mask=None, dtype=None)函数或者numpy操作实现图像按位相加,若 ...
- [Python从零到壹] 三十七.图像处理基础篇之图像融合处理和ROI区域绘制
欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...
最新文章
- 用产品的心态写代码:什么样的机器学习产品是最符合用户需求的
- rabbitmq sleuth zinkip 分布式链路追踪
- python实时监控_使用Python监控Linux系统
- 【操作系统】操作系统的生成
- $ is not defined 如何解决
- 高手过招:用SQL解决环环相扣的刑侦推理问题(苏旭辉版本)
- flutter: 建树流程
- window设置定时任务执行python脚本
- html %3c自动转化,将几个文件中的大型HTML文件拆分
- 软件测试必问必背面试题
- 怎么把计算机加入网络打印机共享打印机共享,打印机共享怎么设置
- 慕尼黑工业大学计算机博士申请条件,德国慕尼黑工业大学博士生申请条件
- 【转载】最全的脱壳,反编译_,汇编工具集合
- linux找不到mysql命令行_解决linux系统中找不到命令的问题
- vue如何实现在页面上画画_Vue使用Canvas绘制图片、矩形、线条、文字,下载图片...
- Entropy attack——hash函数的熵攻击
- python有趣小程序春节祝福-Python实现春节祝福语自动回复
- python二维码生成识别代码_Python3+qrcode+zxing生成和识别二维码教程
- python在土木领域_自学python需要注意的问题
- Proteus仿真AT89C52——计数器
热门文章
- 循环输入某同学专业阶段考试的5门课成绩,并计算平均分
- JAVA导入gpx文件_技术贴 | 如何将赛事路线导入 Garmin 设备(BaseCamp 篇)
- JavaSE基础篇--Java SE语法02--基本语法
- MySQL数据库界面化工具 - Navicat的常用功能
- 克服自卑心理,展现真实自我
- Leetcode算法Java全解答--17. 电话号码的字母组合
- 处理Activity#onResume()遇到java.lang.IllegalArgumentException诡异异常
- 文本识别论文CRNN
- Pycharm连接sqllite
- 数据结构pintia_数据结构和算法(一)概述