使用 ffmpeg 拉伸视频的对比度

Pic*_*les 5 video 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
Run Code Online (Sandbox Code Playgroud)

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

Raj*_*jib 4

用这个:

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  
Run Code Online (Sandbox Code Playgroud)

滤波器extractplanes需要提取每个通道 (y+u+v[y][u][v]),稍后可以与 组合mergeplanes

请注意,我明确指出输出格式为 yuv420p,因为我的输入材料具有相同的格式。
请注意,我使用了您的优势和价值观作为histeq过滤器,这使得我的“正常”镜头完全无法使用。这并不是说它不适用于拍摄质量较差的镜头。但即使是 的值也histeq=strength=0.1:intensity=0.5处于可用性的边缘。这是因为 histeq 是一种全局过滤器,应用于一个通道并不是最佳过程。在任何情况下您都可以使用curves也可以使用过滤器来单独定位频道。

分裂和合并的原理如上所述。