如何检查模糊图像?
How Can I Check for Blurry Images?
我正在寻找一种方法来以编程方式检查图像是否模糊,并且有兴趣听听我必须这样做的任何选项。我可以使用任何编程语言,尽管我最熟悉 PHP 和 Python.
提前感谢您的任何想法。
这里有很多关于计算高斯拉普拉斯算子和理论知识的建议,但我感觉你想要一些实用且简单的东西,所以我建议你像这样使用 ImageMagick 在命令行计算拉普拉斯算子。它安装在大多数 Linux 发行版上,可用于 Windows 和 OS X。
这是一张清晰的图像:
然后我在命令行中像这样计算它的拉帕拉算子
convert face1.jpg colorspace gray -define convolve:scale='!' -bias 50% \
-morphology Convolve Laplacian:0 laplacian.png
并得到这样的统计数据,查看 min/max 和标准偏差:
identify -verbose laplacian.png | grep -E "min|max|deviation"
min: 44 (0.172549)
max: 200 (0.784314)
standard deviation: 4.52133 (0.0177307)
现在我对模糊版本做同样的事情
我明白了:
identify -verbose laplacian.png | grep -E "min|max|deviation"
min: 118 (0.462745)
max: 135 (0.529412)
standard deviation: 0.835725 (0.00327735)
您可以从 PHP 中 shell 并使用我给出的命令,或者使用 ImageMagick 的 PHP 绑定。
如果您不需要图像输出而只对统计信息感兴趣,则可以避免创建这样的中间文件:
convert blur.jpg -colorspace gray \
-define convolve:scale='!' -bias 50% \
-morphology Convolve Laplacian:0 -verbose info: | grep -Ei "min|max|deviation"
我正在寻找一种方法来以编程方式检查图像是否模糊,并且有兴趣听听我必须这样做的任何选项。我可以使用任何编程语言,尽管我最熟悉 PHP 和 Python.
提前感谢您的任何想法。
这里有很多关于计算高斯拉普拉斯算子和理论知识的建议,但我感觉你想要一些实用且简单的东西,所以我建议你像这样使用 ImageMagick 在命令行计算拉普拉斯算子。它安装在大多数 Linux 发行版上,可用于 Windows 和 OS X。
这是一张清晰的图像:
然后我在命令行中像这样计算它的拉帕拉算子
convert face1.jpg colorspace gray -define convolve:scale='!' -bias 50% \
-morphology Convolve Laplacian:0 laplacian.png
并得到这样的统计数据,查看 min/max 和标准偏差:
identify -verbose laplacian.png | grep -E "min|max|deviation"
min: 44 (0.172549)
max: 200 (0.784314)
standard deviation: 4.52133 (0.0177307)
现在我对模糊版本做同样的事情
我明白了:
identify -verbose laplacian.png | grep -E "min|max|deviation"
min: 118 (0.462745)
max: 135 (0.529412)
standard deviation: 0.835725 (0.00327735)
您可以从 PHP 中 shell 并使用我给出的命令,或者使用 ImageMagick 的 PHP 绑定。
如果您不需要图像输出而只对统计信息感兴趣,则可以避免创建这样的中间文件:
convert blur.jpg -colorspace gray \
-define convolve:scale='!' -bias 50% \
-morphology Convolve Laplacian:0 -verbose info: | grep -Ei "min|max|deviation"