OpenCV_Python官方文档7——图像融合

OpenCV-Python Tutorials

https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_tutorials.html

图像叠加(融合)

主要函数

被叠加的两张图片的大小、类型(高度/宽度/通道数)必须相同。 但是如果这两张图片大小不相同,有什么方法解决?具体解决方法请点击此处查看

  1. cv2.add(img1,img2):直接对两张图片作加法运算

Numpy中可以直接用res = img1 + img2相加,但这两者的结果并不相同,因为OpenCV中的加法运算是饱和运算(就是当运算结果大于一个上限或小于一个下限时,结果就等于上限或是下限。),而Numpy中的加法运算是取模运算

如下面代码中cv2.add(x,y)运行结果为[[255]],是因为250+10 = 260 >= 255,所以结果就等于上限255,x+y运行结果为[4],是因为250+10 = 260 mod 255 = 4

OpenCV的结果会更好,所以最好使用OpenCV中的函数

from imutils import *
import os 
os.chdir('D:/BaiduYunDownload/')

img1 = imread('image1.jpg')
img2 = imread('image2.jpg')
show(img1)
show(img2)

x = np.uint8([250])
y = np.uint8([10])
print(cv2.add(x,y)) #运行结果为[[255]]
print(x+y) #运行结果为[4]

res = img1 + img2
show(res)#显示使用数组加法后的图片
add = cv2.add(img1,img2)
show(add)#显示使用OpenCV中add函数的图片

想了解上面代码中的from imutils import *点击此处

  1. cv2.addWeighted(src1, alpha, src2, beta, gamma[, dst[, dtype]]):也是一种图片相加的操作,可以实现两张图片的线性融合。
  • src1 – 输入图片1
  • alpha – 图像1的加权系数(融合比例)
  • src2 – 输入图像2,必须与图片1的大小、类型(高度/宽度/通道数)相同。融合时图片大小不一致的解决方法请
  • 5
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值