如何使用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实现图像长曝光相关推荐

  1. [Python与图像处理]利用Python与Kmeans聚类分析图像主色彩

    如何使用OpenCV,Python和k-means聚类算法来查找图像中最主要的颜色   该任务可用于分析一张优秀摄影作品的色彩分布,并建立色卡图,将其用于本地调色. K-Means聚类,那么k-mea ...

  2. 【Python例】利用 python 进行用户画像词云图的生成 --- wordcloud

    [Python例]利用 python 进行用户画像词云图的生成 - wordcloud 本文主要用于记录,并使用 python 脚本进行用户画像的词云图的生成. 前言 对于词云图来说,是一个用户画像数 ...

  3. 【Python例】利用 python 进行图片文字信息的提取 --- OCR-EasyOCR

    [Python例]利用 python 进行图片文字信息的提取 - OCR-EasyOCR 本文主要用于记录,并使用 python 脚本进行图片文字信息的生成. 什么是 OCR? OCR OCR(Opt ...

  4. boxplot用法 python,[Python画图笔记]利用Python画箱型图boxplot

    [Python画图笔记]利用Python画箱型图boxplot [Python画图笔记]利用Python画箱型图boxplot 最近在学习使用Python画图,想用subplot画两幅箱型图,分别用来 ...

  5. python 离散化_利用Python将数值型特征进行离散化操作的方法

    利用Python将数值型特征进行离散化操作的方法 如下所示: data = np.random.randn(20) factor = pd.cut(data,4) pd.get_dummies(fac ...

  6. 动态照片墙 python 实现_利用python生成照片墙的示例代码

    这篇文章主要介绍了利用python生成照片墙的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 PIL(Python Im ...

  7. python图片相似度计算_python Opencv计算图像相似度过程解析

    这篇文章主要介绍了python Opencv计算图像相似度过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.相关概念 一般我们人区分谁是谁 ...

  8. python excel绘图-利用python在excel中画图的实现方法

    一.前言 以前大学时候,学EXCEL看到N多大神利用excel画图,觉得很不可思议.今个学了一个来月python,膨胀了就想用excel画图.当然,其实用画图这个词不甚严谨,实际上是利用opencv遍 ...

  9. 动态照片墙 python 实现_使用Python生成照片墙,利用,python

    PIL(Python Image Library)是python的第三方图像处理库,但是由于其强大的功能与众多的使用人数,几乎已经被认为是python官方图像处理库了.其官方主页为: PIL . PI ...

最新文章

  1. 缩放浏览器不会换行_深入了解现代浏览器之三 - 渲染
  2. UTF-8, Unicode, GB2312格式串转换之C语言版
  3. cannot resolve symbol ‘springframework‘
  4. 多通路fpga 通信_基于USB通信的FPGA高速数据采集系统研究
  5. 有多少人乘坐公交车时用NFC付钱?
  6. zoiper 软件_zoiper软件下载
  7. monkey入门研究
  8. 网易云信 web demo体验-会议
  9. mysql 三角函数_三角函数公式
  10. 新浪微博注册页面的用户体验分析报告(转载)
  11. 教你如何快速下载网站?如何仿制网址,下载网站,获取网站html文件,图像文件
  12. 消息队列——RabbitMQ消息队列集群
  13. pc无线连接多台移动设备
  14. Python实现简易万年历
  15. JS 实现驼峰式转下横线,下横线转驼峰式2
  16. SAP中QM和MM在质检流程应用中的区别应用问题实例
  17. 建筑间距对住房有什么影响
  18. ZOJ 3716 - Ribbon Gymnastics
  19. Mysql之统计函数
  20. 二叉树的非递归遍历和层次遍历详解

热门文章

  1. ImageMagick图像处理
  2. python定义变量参数_Python变量定义与使用
  3. 3.21以太猫源码分析1
  4. mp4文件太大怎么压缩变小?
  5. DW1000学习笔记4 - 移植
  6. C#中根据情况禁用contextMenuStrip
  7. 如何判断是否已经安装VC++2008运行库
  8. window7兼容jbuild2006
  9. WPF UI框架界面开发教程(五)
  10. 【敏捷CSM认证】产品负责人(Product Owner)