openCV

您所在的位置:网站首页 ppt渐出 openCV

openCV

2024-03-21 09:19| 来源: 网络整理| 查看: 265

目标:使用OpenCV实现幻灯片渐变的效果。

原理:渐变效果实际上是两张图片的加权叠加,new image = alpha * image 1 + ( 1 - alpha ) *image 2就可以得到一张同时含有两张照片的合成图。当alpha=1时,新图像就为image 1,当alpha=0时相反,实现图片的渐变效果需要将alpha连续的从1变到0。 opencv提供了addWeighted函数实现该功能,该函数的原型如下:

 

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

src1 和 src2为两张图片文件,这里需要src1和src2为同一大小,alpha和beta为权值,gamma为透明度。

工具: Python3,  cv2,  os

实现流程:

    1. 使用os.chdir切换目录,并使用os.listdir得到文件列表。

    2. 使用cv2.imread打开两张图,并resize到统一的大小。

    3. 将权值设置为随着时间缓慢变化。

    4. 使用cv2.addWeighted将两张图加权相加。

程序源码:

import cv2 import os WAIT = 3000 os.chdir('/Users/mac/Pictures/Vincent') file_list = os.listdir() for i in range(len(file_list) -1): img1 = cv2.imread(file_list[i ]) img2 = cv2.imread(file_list[i+1]) src1 = cv2.resize(img1, (640, 480)) src2 = cv2.resize(img2, (640, 480)) for it in range(WAIT+1): if it % 100 == 0: weight = it / WAIT res = cv2.addWeighted(src1, 1-weight, src2, weight, 0) cv2.imshow('images', res) cv2.waitKey(100) cv2.waitKey(0) cv2.destroyAllWindows()

效果:



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3