2015-03-02 61 views
1

我正在尋找一種方法來以編程方式檢查圖像是否模糊不清,我有興趣聽到任何選項,我必須這樣做。我可以使用任何編程語言,但我最熟悉PHP和Python。如何檢查模糊圖像?

提前感謝您的任何想法。

+1

可能重複有沒有辦法,如果圖像來檢測是模糊?](http://stackoverflow.com/questions/7765810/is-there-a-way-to-detect-if-an-image-is-blurry) – 2015-03-02 14:41:42

回答

2

這裏有很多關於計算拉普拉斯算子和理論的建議,但是我覺得你想要一些實用和簡單的東西,所以我建議你使用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掏出,用我的命令給ImageMagick或使用ImageMagick的PHP綁定。

如果你不想讓圖像輸出,並在統計數據中只是有興趣,您可以避免像這樣的中間文件:

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