如何自动检测图像是否质量高?

时间:2012-10-22 20:05:49

标签: python image-processing

我想要一种算法来检测图像是否具有高专业品质,或者对比度差,光线不足等。我如何设计这样的算法。

我觉得这是可行的,因为如果按picassa中的按钮,它会尝试修复照明,对比度和颜色。现在我已经看到,如果我按下自动修复按钮,那么在好照片中,变化不会像坏图像那样高。这可以用作领导吗?

请向我提出任何想法。如果以前已经做过这件事,我正在做轮子发明的事情,请停止我并指出我以前的工作。

非常感谢,

2 个答案:

答案 0 :(得分:3)

你这样做太难了。我通过生成图像的直方图,抛弃异常值来处理生产代码中的这一点(1个黑色像素并不意味着整个图像有很多黑色; 1个白色像素并不意味着明亮的图像),然后看看是否由此产生的分布涵盖了足够的亮度范围。

在统计学术语中,您还可以看到直方图是否接近具有令人满意的大标准偏差的高斯分布。如果整个图像是带有微小stddev的中灰色,那么根据定义你会得到低对比度图像。如果平均值大约为中等灰度,但stddev覆盖的亮度水平从20%到80%,那么你就有了不错的对比度。

但请注意,这些方法都不需要任何与机器学习类似的东西。

答案 1 :(得分:2)

有几个开源程序可以进行您正在寻找的图像校正,作为低质量图像的指示。我会想到Gimp(参见文档中的enhancing photos)和ImageMagick(参见对比拉伸,标准化,自适应锐化,examples中的自动水平)。

研究他们的代码将是一个良好的开端,因为检测低质量图像的一种明显方法是通过上述增强算法之一放置图像,并寻找原始图像和处理图像之间的差异。