OpenCV(2)---图像加权和制作鬼影

793 阅读1分钟

什么是图像加权和

所谓图像加权和,就是计算两幅图像的像素值之和时,将两幅图像的权重考虑进来,数据公式表示为如下:

dst=saturate(src1a+src2b+y)

OpenCV中提供cv2.addWeighted()函数,来实现图像的加权和,该函数的定义为:

addWeighted(src1, alpha, src2, beta, gamma, dst=None, dtype=None)

其中,参数alpha和beta是src1和src2所对应的系数,它们的和可以等于1,也可以不等于1。分别对应数学公式a,b。而gamma对应数学公司y。需要注意的是gamma的值可以是0,但不能省略,是必选参数。

简单的理解就是“图像1系数1+图像2系统2+亮度调节参数”。

玻璃上出现人头

在各大灵异的网站,我们都会见到各种的拍摄图像中出现各种鬼影。当然,博主并不是要说这完全不存在,至于存不存在不在这里的讨论范畴,但是我们可以通过图像加权和给某个图片嵌入人头,造成有鬼影的样子。

背景图

人头图

上面是两张原始的图像,分别对应上面的src1,src2。叠加实现鬼影效果的具体代码如下所示:

import cv2

img = cv2.imread("2_2.png", 1)
head = cv2.imread("2_1.png", 1)
print(img.shape, head.shape)
head = cv2.addWeighted(img, 1, head, 0.3, 0)
cv2.imshow("123", head)
cv2.waitKey()
cv2.destroyAllWindows()

运行之后,效果如下所示:

1.png

当然,这里还是能看到方正的轮廓,后面详细介绍矩阵运算的时候,会更加的完善。现在主要讲些基础的东西,让读者更加的对OpenCV感兴趣。