moviepy音视频剪辑:lum_contrast什么时候使用以及图像处理什么时候需要调整亮度与对比度
☞ ░ 前往老猿Python博文目录 ░
一、亮度、对比度的概念
图像的亮度(luminosity )也即对明度的度量(参考《音视频处理基础知识扫盲:数字视频YUV像素表示法以及视频帧和编解码概念介绍》)。图像亮度本质上图像中每个像素的亮度,每个像素的亮度本质上RGB值的大小,RGB值为0是像素点为黑色,RGB都为255时像素点最亮,为白色。
图像对比度指的是指一幅图像中明暗区域最亮的白和最暗的黑之间不同亮度层级的测量,即指一幅图像灰度反差的大小,也就是不同像素点之间的差值,差值越大,对比度越明显。差异范围越大代表对比越大,差异范围越小代表对比越小,好的对比率120:1就可容易地显示生动、丰富的色彩,当对比率高达300:1时,便可支持各阶的颜色。
二、什么时候调整亮度和对比度
在研究moviepy的变换处理函数lum_contrast(亮度对比度修正)时,不禁心生疑问,亮度和对比度除了图像看得不是很清楚时需要使用外,是否还有其他场景,查阅了一下资料,CSDN上大神gloomyfish的博文:《图像处理之调整亮度与对比度》介绍得比较全面,虽然场景和笔者想的差不多,但介绍得比较全面,大家可以看看。
三、moviepy的lum_contrast函数及算法
lum_contrast和上文介绍的差别比较大,下面我们来看看:
调用语法:lum_contrast(clip, lum = 0, contrast=0, contrast_thr=127)
参数说明:
- lum:亮度要增加或减少的值,老猿建议为-255 到255之间的浮点数,但函数未进行限制,理论上任何值都可以,老猿建议绝对值不要太大,-127和127之间比较好
 - contrast:对比度,对比度调整可能会使得画面中部分场景看不清,该怎么调整需要结合图像本身的情况来设定,函数未对该值进行限定,但过大的数可能导致画面失衡的概率大增,老猿建议一般小于1不要超过2
 - contrast_thr:这个参数moviepy未进行解释,老猿是认为对比度调整的一个基准值,老猿建议使用缺省值127
 
调整结果逻辑:
- 具体调整时,是将各像素的RGB值各减去contrast_thr之后的结果值再与contrast相乘,得到的结果与lum 相加得到该像素要调整的亮度
 - 如果最终结果小于0或大于255,则取0或255作为最终值。
 
从上面算法可以看到,如果结果超过255或小于0,就会强制设为255和0,因此参数lum、contrast_thr、contrast绝对值过大可能会导致大量像素的RGB值被设置为0或255,从而导致图像严重失衡。
更多moviepy的介绍请参考《PyQt+moviepy音视频剪辑实战文章目录》或《moviepy音视频开发专栏》。
关于收费专栏
老猿的付费专栏《使用PyQt开发图形界面Python应用》专门介绍基于Python的PyQt图形界面开发基础教程,付费专栏《moviepy音视频开发专栏》详细介绍moviepy音视频剪辑合成处理的类相关方法及使用相关方法进行相关剪辑合成场景的处理,两个专栏加起来只需要19.9元,都适合有一定Python基础但无相关专利知识的小白读者学习。
对于缺乏Python基础的同仁,可以通过老猿的免费专栏《专栏:Python基础教程目录》从零开始学习Python。
如果有兴趣也愿意支持老猿的读者,欢迎购买付费专栏。
跟老猿学Python、学5G!
☞ ░ 前往老猿Python博文目录 ░
moviepy音视频剪辑:lum_contrast什么时候使用以及图像处理什么时候需要调整亮度与对比度的更多相关文章
- moviepy音视频剪辑:颜色相关变换函数blackwhite、colorx、fadein/out、gamma_corr、invert_colors、lum_contrast、mask_color介绍
		
☞ ░ 前往老猿Python博文目录 ░ 一.引言 在<moviepy音视频剪辑:moviepy中的剪辑基类Clip详解>介绍了剪辑基类的fl.fl_time.fx方法,在<movi ...
 - PyQt+moviepy音视频剪辑实战文章目录
		
☞ ░ 前往老猿Python博文目录 ░ 本专栏为moviepy音视频剪辑合成相关内容介绍的免费专栏,对应的收费专栏为<moviepy音视频开发专栏>. 一.moviepy基础能力系统介绍 ...
 - moviepy音视频剪辑:AudioClip帧处理时报TypeError: only size-1 arrays can be converted to Python scalar错
		
☞ ░ 前往老猿Python博文目录 ░ 一.环境 操作系统:win7 64位 moviepy:1.0.3 numpy:1.19.0 Python:3.7.2 二.应用代码及报错信息 程序代码 if ...
 - moviepy音视频剪辑:视频变换处理与内容相关的变换函数headblur、mask_and/or、mirror_x/y、rotate、painting、scroll介绍
		
一.引言 在<moviepy音视频剪辑:moviepy中的剪辑基类Clip详解>介绍了剪辑基类的fl.fl_time.fx方法,在<moviepy音视频剪辑:视频剪辑基类VideoC ...
 - moviepy音视频剪辑:headblur函数遇到的ValueError assignment destination is read-only问题及解决办法
		
☞ ░ 前往老猿Python博文目录 ░ 一.运行环境 运行环境如下: python版本:3.7 opencv-python版本:4.2.0.34 numpy版本:1.19.0 二.错误案例代码及报错 ...
 - moviepy音视频剪辑:headblur函数遇到的TypeError: integer argument expected, got float错误的解决方案
		
运行环境如下: python版本:3.7 opencv-python版本:4.2.0.34 numpy版本:1.19.0 错误信息: 在调用moviepy1.03版本的headblur函数执行人脸跟踪 ...
 - moviepy音视频剪辑:headblur的参数r_blur卷积核以及fx、fy、r_zone的功能作用及用途
		
☞ ░ 前往老猿Python博文目录 ░ 在moviepy1.03版本中,headblur的调用语法为:headblurbak(clip,fx,fy,r_zone,r_blur=None) 其中参数f ...
 - moviepy音视频剪辑:与大小相关的视频变换函数crop、even_size、margin、resize介绍
		
☞ ░ 前往老猿Python博文目录 ░ 一.引言 在<moviepy音视频剪辑:moviepy中的剪辑基类Clip详解>介绍了剪辑基类的fl.fl_time.fx方法,在<movi ...
 - moviepy音视频剪辑:与大小相关的视频变换函数详解
		
☞ ░ 前往老猿Python博文目录 ░ 一.引言 在<moviepy音视频剪辑:moviepy中的剪辑基类Clip详解>介绍了剪辑基类的fl.fl_time.fx方法,在<movi ...
 
随机推荐
- Redis基础—了解Redis是如何做数据持久化的
			
之前的文章介绍了Redis的简单数据结构的相关使用和底层原理,这篇文章我们就来聊一下Redis应该如何保证高可用. 数据持久化 我们知道虽然单机的Redis虽然性能十分的出色, 单机能够扛住10w的Q ...
 - python的各版本的不同
			
Python的版本主要分为 2.× . 3.× 两个系列. Python3计划每年发布一个新的子版本,一次只增加一两种新语法. 使用时当然选择越新的Python版本越好,版本越老的代码越难维护. 维护 ...
 - VirtualBox 6 安装 CentOS 7
			
1 安装环境 windows7 Oracle VM VirtualBox 6.0.24 CentOS 7 2 VirtualBox 6 - 虚拟机软件 2.1 下载 Oracle VM Virtual ...
 - Python学习笔记2:基本数据类型
			
Python中的变量不需要声明.每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建. 在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象 ...
 - Flink基础:时间和水印
			
 往期推荐: Flink基础:入门介绍 Flink基础:DataStream API Flink基础:实时处理管道与ETL Flink深入浅出:资源管理 Flink深入浅出:部署模式 Flink深入 ...
 - Why use MSIX message signal interrupt
			
处理一个低版本内核中断向量表不够问题:__assign_irq_vector 关联irq 和 vector失败问题: (bug还没解决先记录一下吧) 同时先学习一下MSI-X:MSI, message ...
 - 极客mysql38
			
InnoDB 引擎把数据放在主键索引上,其他索引上保存的是主键 id.这种方式,我们称之为索引组织表(Index Organizied Table). 而 Memory 引擎采用的是把数据单独存放,索 ...
 - CentOS 7 静态IP配置
			
CentOS 7 网络配置还有一个有趣的现象,我们都习惯使用 ifconfig 命令查看自己的网络信息和IP地址,但是在 CentOS 7 是无法执行的,如下图所示: 原因是 CentOS 7 使用 ...
 - 超强工具集——GitHub 热点速览 Vol.47
			
作者:HelloGitHub-小鱼干 本周 GitHub 趋势榜精彩至极,先是 JetBrains 开源的图像渲染引擎 Skia 有了 Java 封装,一开源便获得 500+ star,再是支持开发者 ...
 - MathType颜色设置的技巧
			
MathType功能非常强大,在编辑公式时使用非常方便.运用MathType不仅可以改变公式的字体和字号,也可以改变公式字体颜色,MathType颜色设置还是有一套技术的,下面我们就一起来看看公式编辑 ...
 
			
		
