如何检测视频中的伪影?

How to detect artifacts in video?

我正在使用 OpenCV 处理 mp4 格式的视频。下图是从视频中随机抽取的一帧,可以看到毛衣上有明显的变形。

我们怎样才能检测到这样的artifacts?或者我们可以通过提取附近的关键帧来避免此类伪影吗?

如@VC.One 所述,这些失真是由于视频隔行扫描造成的。这是一篇关于 interlacing/deinterlacing 的好文章:What is Deinterlacing? Facts, solutions, examples.

有几种工具可以处理去隔行:

  1. [Windows] 100fps.com 中建议的那个:Virtualdub + DivX codec + AviSynth
  2. [Windows] MediaCoder @VC.One 建议。
  3. [Windows/Linux] FFmpeg 提供多种去隔行过滤器,例如yadif, kerndeint 等等。这是一个例子:ffmpeg -i input.mp4 -vf yadif output.mp4