考虑在恶劣条件下录制的(彩色)视频。其帧的最亮像素远低于纯白色,最暗像素远高于纯黑色。是否可以像音频压缩器/限制器一样将每帧的对比度拉伸到更接近全亮度范围?可以使用 ffmpeg 中的许多过滤器中的一些来实现这一点吗?
当然,简单地将每帧最亮的值设为白色,将最暗的值设为黑色,会使曝光变得像 1910 年拍摄的照片一样不稳定。拉伸多少每个框架的对比度应该取决于最亮和最暗的值周围帧,大概+-10秒。
可以提取所有帧,使用 imagemagick 获取每帧的白点和黑点,将它们存储在数组中,平滑数组,使用 imagemagick 再次拉伸每帧的对比度,然后重建视频。但这似乎太过原始了。
答案1
这希斯特克接近您想要的效果。但您也可以查看各种 LUT 滤镜以及 lut3d。
lut 过滤器的可定制性更强,因为您可以实际查看帧并确定要使用的值。此外,如果输入素材(即亮度级别)存在很大差异,则在应用“每帧”校正时输出可能会抖动。对所有帧应用统一强度的校正将产生更平滑的结果。