[Python与图像处理]利用Python与Opencv实现图像长曝光
如何使用OpenCV和Python实现摄影中常见的长曝光效果
该任务可简单实现摄影中的长曝光效果。
什么是长曝光?
长曝光是摄影中的一种技术,当采用这项技术之后,流水、云朵可以像丝绸一般柔顺、汽车的轨迹照亮整条公路、星星伴随着地球的旋转呈现圆形的轨迹,从而在图像中呈现出时间流逝的美感。
具体的效果如下图所示:左图为视频序列(流动的水),右图为长曝光效果图
代码如下所示:
#coding:utf-8
#*********************************************************************************************************
'''
说明:利用python/opencv实现摄影中的图像长曝光
算法思路:1)读取视频图像,将每一帧图像进行通道分离;2)采用简单的平均思想,对序列帧进行处理;3)合并处理后分离的三通道图像;
'''import cv2
import numpy as np
import argparseap = argparse.ArgumentParser()
ap.add_argument("-v", "--video", required=True,help="path to input video file")
args = vars(ap.parse_args())if __name__ == '__main__':print( '[INFO] 读取视频流......' )cap = cv2.VideoCapture( args['video'] )num = 0( ravg, gavg, bavg ) = ( None, None, None )while True:while ( num < 300 ):#只处理本地视频的前300帧,因为后续视频与当前场景不同#你可以根据自己的视频选择 ret, frame = cap.read()print( num )if not ret:print(' 视频流读取失败或读取完成 ')break#图片通道分离cv2.imshow( 'frame', frame )cv2.waitKey( 20 )( B, G, R ) = cv2.split( frame )if ravg is None:ravg, gavg, bavg = R, G, Belse:ravg = ( R + num * ravg ) / ( num + 1 )gavg = ( G + num * gavg ) / ( num + 1 )bavg = ( B + num * bavg ) / ( num + 1 )num += 1 #通道合并为长曝光图像long_exposure_img = cv2.merge( [ bavg, gavg, ravg ] ).astype( 'uint8' ) cv2.imshow( 'Long_exposure', long_exposure_img )cv2.waitKey( 0 )
参考链接:Adrian Rosebrock大神
https://www.pyimagesearch.com/2017/08/14/long-exposure-with-opencv-and-python/
[Python与图像处理]利用Python与Opencv实现图像长曝光相关推荐
- [Python与图像处理]利用Python与Kmeans聚类分析图像主色彩
如何使用OpenCV,Python和k-means聚类算法来查找图像中最主要的颜色 该任务可用于分析一张优秀摄影作品的色彩分布,并建立色卡图,将其用于本地调色. K-Means聚类,那么k-mea ...
- 【Python例】利用 python 进行用户画像词云图的生成 --- wordcloud
[Python例]利用 python 进行用户画像词云图的生成 - wordcloud 本文主要用于记录,并使用 python 脚本进行用户画像的词云图的生成. 前言 对于词云图来说,是一个用户画像数 ...
- 【Python例】利用 python 进行图片文字信息的提取 --- OCR-EasyOCR
[Python例]利用 python 进行图片文字信息的提取 - OCR-EasyOCR 本文主要用于记录,并使用 python 脚本进行图片文字信息的生成. 什么是 OCR? OCR OCR(Opt ...
- boxplot用法 python,[Python画图笔记]利用Python画箱型图boxplot
[Python画图笔记]利用Python画箱型图boxplot [Python画图笔记]利用Python画箱型图boxplot 最近在学习使用Python画图,想用subplot画两幅箱型图,分别用来 ...
- python 离散化_利用Python将数值型特征进行离散化操作的方法
利用Python将数值型特征进行离散化操作的方法 如下所示: data = np.random.randn(20) factor = pd.cut(data,4) pd.get_dummies(fac ...
- 动态照片墙 python 实现_利用python生成照片墙的示例代码
这篇文章主要介绍了利用python生成照片墙的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 PIL(Python Im ...
- python图片相似度计算_python Opencv计算图像相似度过程解析
这篇文章主要介绍了python Opencv计算图像相似度过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.相关概念 一般我们人区分谁是谁 ...
- python excel绘图-利用python在excel中画图的实现方法
一.前言 以前大学时候,学EXCEL看到N多大神利用excel画图,觉得很不可思议.今个学了一个来月python,膨胀了就想用excel画图.当然,其实用画图这个词不甚严谨,实际上是利用opencv遍 ...
- 动态照片墙 python 实现_使用Python生成照片墙,利用,python
PIL(Python Image Library)是python的第三方图像处理库,但是由于其强大的功能与众多的使用人数,几乎已经被认为是python官方图像处理库了.其官方主页为: PIL . PI ...
最新文章
- 缩放浏览器不会换行_深入了解现代浏览器之三 - 渲染
- UTF-8, Unicode, GB2312格式串转换之C语言版
- cannot resolve symbol ‘springframework‘
- 多通路fpga 通信_基于USB通信的FPGA高速数据采集系统研究
- 有多少人乘坐公交车时用NFC付钱?
- zoiper 软件_zoiper软件下载
- monkey入门研究
- 网易云信 web demo体验-会议
- mysql 三角函数_三角函数公式
- 新浪微博注册页面的用户体验分析报告(转载)
- 教你如何快速下载网站?如何仿制网址,下载网站,获取网站html文件,图像文件
- 消息队列——RabbitMQ消息队列集群
- pc无线连接多台移动设备
- Python实现简易万年历
- JS 实现驼峰式转下横线,下横线转驼峰式2
- SAP中QM和MM在质检流程应用中的区别应用问题实例
- 建筑间距对住房有什么影响
- ZOJ 3716 - Ribbon Gymnastics
- Mysql之统计函数
- 二叉树的非递归遍历和层次遍历详解