openCV-python实现幻灯片渐变效果
2018-03-16 19:08
2251 查看
目标:使用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()效果:
原理:渐变效果实际上是两张图片的加权叠加,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()效果:
相关文章推荐
- opencv 实现图像倒影(渐变)效果【源码】
- JS实现响应鼠标点击动画渐变弹出层效果代码
- Python PyQt4实现QQ的抽屉效果
- css3实现渐变的iPhone滑动解锁效果
- [Android] android 实现加速小火箭动画效果 位移+透明渐变 动画
- python flask实现分页效果
- CSS实现文本渐变效果
- Android的TitleBar实现透明度渐变效果
- [翻译]使用ASP.NET AJAX实现幻灯片效果
- 关闭窗口是实现渐变玻璃效果
- js实现幻灯片效果二
- 如何实现渐变导航栏效果
- 【python下使用OpenCV实现计算机视觉读书笔记3】读写视频文件
- python实现批量按比例缩放图片效果
- css3实现的多级渐变下拉菜单导航效果代码
- 实现淘宝和QQ ToolBar透明渐变效果
- Delphi DbGridEh实现表格没有内容的渐变效果
- 实现图片渐变透明的轮播效果(欢迎界面)
- opencv实现魔幻笔效果
- Python+OpenCV实现车牌字符分割和识别