OPENCV图像混合
#python #opencv

OPENCV图像混合的功能是:

cv2.addWeighted(src1, alpha, src2, beta, gamma, dst=..., dtype=...) -> dst

必需的参数:

  • src1 :第一个图像的numpy阵列。
  • alpha :第一个图像的重量。
  • src2 :第二张图像的numpy阵列。
  • beta :第二张图像的重量。
  • 伽马:图像混合后添加了一个常数。

可选参数:

  • dst :输出图像的numpy阵列。
  • dtype :输出图像的位深度,默认值为src1.depth()。

混合公式可以表示如下:

dst false“ false”>) = 饱和< /mtext> src1 i <你+<“ mathvariant =“ monospace”> gamma ) 例子

以下示例设置alpha + beta = 1.0,γ= 0.0。这个示例也在我的github repo上。执行脚本退出脚本​​后按ESC。

import cv2


def main():
    img1 = cv2.imread("Dog_Strong.jpg")
    img2 = cv2.imread("Dog_Weak.jpg")
    window_name = "Blending"

    def change_trackbar(val):
        alpha = float(val / 255)
        blend_img = cv2.addWeighted(img2, alpha, img1, 1.0 - alpha, 0.0)
        cv2.imshow(window_name, blend_img)

    cv2.namedWindow(window_name)
    cv2.createTrackbar("trackbar", window_name, 0, 255, change_trackbar)
    cv2.imshow(window_name, img1)
    while True:
        if cv2.waitKey(100) == 27:  # ESC
            cv2.destroyWindow(window_name)
            break


if __name__ == "__main__":
    main()

演示:

Image description