引言:在我们进行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版权协议,转载请附上原文出处链接和本声明。



