我一直在寻找一种解决方案来执行 ffmpeg 中的
magick -auto-level
的等效操作,但我找不到任何东西。有一些参考文献指出我应该首先使用 GIMP 等其他软件手动发现级别,但是,我正在寻找一种自动化且更简单的解决方案。有什么想法如何解决这个问题吗?
我尝试了以下方法 - 第一个增强了最初相当暗的图像,但第二个过度曝光,导致其大部分变成白色:
convert img.jpg -auto-level img2.jpg
ffmpeg -i img.jpg -vf "normalize" -y img2.jpg
注意:很抱歉我无法分享该图像,因为它受到隐私政策的限制
ffmpeg -vf normalize
是“过度曝光”您的图像,因为默认情况下它会独立标准化每个通道。因此,它总是会将最暗的输入颜色映射为黑色,将最亮的输入颜色映射为白色(或者可能映射为 RGB 原色/次色,具体取决于输入)。
使用
"normalize=independence=0"
会关闭独立性,并给出与 magick -auto-level
基本相同的结果。
magick -size 200x200 "gradient:thistle-lightslategrey" input.png
magick input.png -auto-level autolevel.png
ffmpeg -i input.png -vf "normalize" ffmpeg-i1.png
ffmpeg -i input.png -vf "normalize=independence=0" ffmpeg-i0.png