天天看點

圖像矩(Image moment)

在圖像處理、計算機視覺等領域,圖像矩定義為:對圖像像素點的灰階值進行的一種特殊權重方式。

幾何矩

幾何矩,又稱為标準矩。它的定義是:

圖像矩(Image moment)

各階的實體意義是:

0階矩(即 M 00 M_{00} M00​):表示目标區域的灰階和,可看成品質或面積;

1階矩(即 M 01 M_{01} M01​、 M 10 M_{10} M10​):{ M 10 M 00 \frac {M_{10}}{M_{00}} M00​M10​​, M 01 M 00 \frac {M_{01}}{M_{00}} M00​M01​​}表示目标區域的質心坐标;

2階矩(即 M 02 M_{02} M02​、 M 20 M_{20} M20​、 M 11 M_{11} M11​):表示目标區域的旋轉;

3階矩(即 M 03 M_{03} M03​、 M 12 M_{12} M12​、 M 21 M_{21} M21​、 M 30 M_{30} M30​):表示目标區域的方位和斜度,反應目标的扭曲;

由于圖像經常會伴随着空間變換(平移,尺度,旋轉),标準矩通常會因為這些變換而發生變化。

接下來,會依次介紹幾種特殊矩的定義,它們具有或平移、或尺度、或旋轉等的不變性。但需注意的是,這種不變性僅在連續情形下是成立的,對于離散情形,僅僅是近似成立。

中心矩

中心矩的定義如下:

圖像矩(Image moment)

中心矩具有平移不變性的特點。由于我們選擇了目标區域的質心為中心建構中心矩,那麼矩的計算永遠是目标區域中的點相對于目标區域的質心,而與目标區域的位置無關,故中心矩具備了平移不變性。

歸一化中心矩

歸一化中心矩的定義如下:

圖像矩(Image moment)

歸一化中心矩具備平移不變性和尺度不變性。由上文可知, μ 00 = M 00 \mu_{00}=M_{00} μ00​=M00​,表示目标區域的品質或面積,那麼當目标區域的尺度發生變化,顯然 μ 00 \mu_{00} μ00​也會相應變小,進而使得矩具備尺度不變性。

Hu矩

Hu矩的定義如下:

圖像矩(Image moment)

Hu矩具備平移不變性、尺度不變性和旋轉不變性。前面也提過,Hu矩的不變性僅在連續情形是成立的,對于離散情形的數字圖像,實際上隻有 I 1 I_1 I1​、 I 2 I_2 I2​的不變性保持的比較好。

Hu矩可應用于物體識别上。由Hu矩組成的特征量對圖像進行識别時,優點是速度很快,缺點是識别率比較低,對于紋理比較豐富的圖像,識别率就更低了。這一部分原因是因為,Hu矩的不變性隻在低階矩時成立(最多到三階矩),對于圖像的細節不能很好的描述出來,導緻對圖像的描述不夠完整。

總的來說,Hu矩一般用來識别圖像中的大物體,對于物體的形狀描述得比較好,圖像的問題不能太複雜,比如說對于車牌中的簡單字元的識别效果會好一些。

OpenCV中的相關函數

  • 計算标準矩:cv2.moments
  • 計算Hu矩:cv2.HuMoments
  • 形狀比對:cv2.matchShape,根據Hu矩來計算兩個形狀或輪廓的相似度,傳回值越小,比對得越好
函數的進一步說明參考OpenCV的API文檔,在這裡。

參考資料

(1)https://en.wikipedia.org/wiki/Image_moment

(2)https://blog.csdn.net/chaipp0607/article/details/70256892#commentBox

(3)https://blog.csdn.net/wrj19860202/article/details/6327094#commentBox