如何检查模糊图像?

时间:2015-03-02 14:16:39

标签: image image-processing image-segmentation blurry

我正在寻找一种以编程方式检查图像是否模糊的方法,并且有兴趣听取我必须这样做的任何选项。我可以使用任何编程语言,尽管我最熟悉PHP和Python。

提前感谢您的任何想法。

1 个答案:

答案 0 :(得分:3)

这里有很多关于计算高斯拉普拉斯算子和理论东西的建议,但我觉得你想要一些实用且简单的东西,所以我建议你像这样使用ImageMagick在命令行计算拉普拉斯算子。它安装在大多数Linux发行版上,适用于Windows和OS X.

这是一张清晰的图片:

enter image description here

我在命令行计算它的Lapalacian

convert face1.jpg colorspace gray -define convolve:scale='!' -bias 50% \
   -morphology Convolve Laplacian:0   laplacian.png

enter image description here

并获取这样的统计数据,查看最小值/最大值和标准差:

identify -verbose laplacian.png | grep -E "min|max|deviation"

  min: 44 (0.172549)
  max: 200 (0.784314)
  standard deviation: 4.52133 (0.0177307)

现在我为模糊版本做同样的事情

enter image description here

我得到了这个:

identify -verbose laplacian.png | grep -E "min|max|deviation"
min: 118 (0.462745)
max: 135 (0.529412)
standard deviation: 0.835725 (0.00327735)

你可以从PHP中弹出并使用我给出的命令,或者使用PHP绑定来获取ImageMagick。

如果您不想要图像输出并且只对统计信息感兴趣,则可以避免创建这样的中间文件:

convert blur.jpg -colorspace gray       \
  -define convolve:scale='!' -bias 50%  \
  -morphology Convolve Laplacian:0 -verbose info: | grep -Ei "min|max|deviation"