使用 ffmpeg 拉伸视频的对比度

使用 ffmpeg 拉伸视频的对比度

我正在尝试实现这里的建议:ffmpeg:自适应拉伸对比度

我想到的方法是:

  1. 分离 L、U 和 V 通道。
  2. 将 histeq 应用于 L 通道。
  3. 重新组合频道。

我是 ffmpeg 的新手,所以我可以做到 1 和 2,但不确定如何实现 #3。到目前为止,我所做的是:

ffmpeg -i in.mkv -vf extractplanes=y,histeq=strength=0.3:intensity=1 out.mkv

它提取 L 通道并自动对比它,但我不确定如何将其与 U 和 V 通道重新组合。也许使用mergeplanes

答案1

用这个:

ffmpeg -y -i in.mkv -filter_complex "extractplanes=y+u+v[y][u][v];   \
[y]histeq=strength=0.3:intensity=1[lumaeq];   \
[lumaeq][u][v]mergeplanes=0x001020:yuv420p[out]" -map "[out]" out.mkv  

滤波器extractplanes需要提取每个通道 (y+u+v[y][u][v]),然后可以将其与 相结合mergeplanes

笔记我明确指出输出格式为 yuv420p,因为我的输入材料是相同的格式。
笔记我使用了你的histeq滤镜优势和值,这使我的“正常”镜头完全无法使用。这并不是说它对拍摄不佳的镜头不起作用。但即使是 的值也histeq=strength=0.1:intensity=0.5处于可用性的边缘。这是因为 histeq 是一个全局过滤器并且仅应用于一个渠道并不是最佳过程。无论如何,您curves也可以使用过滤器单独定位渠道。

分裂与合并原则同上。

相关内容