关于cv2.addWeighted()函数《python图像处理篇》

引言:在我们进行P图的时候,经常做的就是将一个表情包放在一张图上,相对于是遮住指定部分,然而在图像处理中,会有这么一种操作,就是将两幅图像按照不同的比例合成一张图像,这就是我们今天的主角函数cv2.addWeighted()。


  1.函数cv2.addWeighted()   

         函数cv2.addWeighted()的主要功能就是将两幅图像合成为一幅图像,下面给出一个简单的例子便于理解。

先看效果:

原图1(图像来自网络,如有冒犯、侵权请联系删除) 

 原图2

合成效果图

 在对图像进行合成时,需要注意的一点是,图像的尺寸维度必须相同,才能使用此函数进行合成,在此处,需要将原图图像1的尺寸调整为图像2的尺寸,使用简单一点的就是直接resize函数,不考虑图像形变问题。

补充:cv2.resize()函数:

代码:

img1=cv2.resize(img1,(img2.shape[1],img2.shape[0]),interpolation=cv2.INTER_AREA)

解释:

在此处重要的部分为插入法:即采用不同的插值法,一般采用四近邻、八近邻,最近邻、双线性插值。也就是后面interpolation=插值法,如下所示:

# cv2.INTER_CUBIC------四领域插值
# cv2.INTER_LINEAR----性插值法
# cv2.INTER_LANCZOS4----基于8x8像素邻域的Lanczos插值
# cv2.INTER_NEAREST- ---最近邻插值法

将原图像1resize后的效果:

原图像1   resize  操作后 

补充结束#

关于图像合成部分的代码:

import cv2

path1=r'./1.jpg'
path2=r'./cat1.png'

img1=cv2.imread(path1)
img2=cv2.imread(path2)
cv2.imshow('img1',img1)

img1=cv2.resize(img1,(img2.shape[1],img2.shape[0]),interpolation=cv2.INTER_NEAREST)

out=cv2.addWeighted(img1,alpha=0.6,src2=img2,beta=0.7,gamma=1)
cv2.imshow('out',img1)
cv2.imshow('out1',img2)
cv2.imshow('out2',out)
cv2.waitKey(0)

2.结束:

GAME OVER

如果理解错误,欢迎大家批评,及时纠正小琼的错误哦,真心感谢你的纠正!!!

如果小伙伴梦有疑问欢迎在评论区留言哦!!!

如果感觉不错的话!点个赞呗,不用客气!(O(∩_∩)O哈哈~)

欢迎和小伙伴梦一起学习,共同努力,加油!!!


版权声明:本文为m0_56654441原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。