更新於 2024/05/30閱讀時間約 2 分鐘

[OpenCV][Python]圖片清晰度如何檢測?

首先我們先用小畫家,創建一個簡單的十字箭頭圖,在用高斯模糊將圖用模糊來模擬圖片糊掉的狀況。

raw-image


如何檢測呢?

先假設在圖像清晰的狀況下,取邊緣的話線條應該是很明顯的吧,模糊的情況下,邊緣線條應該就會變多?

看下圖,由左看到右,在圖片清晰的狀況下,線條是相當明顯的

那有什麼方法將其量化成數字?

利用變異數的方法

變異數衡量的是數據分布的離散程度,變異數越大,數據點之間的差異越大。

舉例:

  1. 模糊圖像: 模糊圖像中的像素值變化平滑,梯度值較小且變化不大,這會導致梯度幅值的變異數較小。
  2. 清晰圖像: 清晰圖像中的像素值變化劇烈,邊緣明顯,梯度值較大且變化明顯,這會導致梯度幅值的變異數較大。

為什麼圖像越清楚,變異數越大?

當圖像清晰時,邊緣和紋理更加明顯和銳利,因此每個像素的梯度值會有更大的變化,這導致梯度幅值的變異數增加。

分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.