圖像得矩

圖像的矩

零階矩: M00
這裏的圖像是單通道圖像, 表示圖像在  點上的灰度值。 
我們可以發現,當圖像爲二值圖時, 就是這個圖像上白色區域的總和,因此, 可以用來求二值圖像(輪廓,連通域)的面積。


一階矩: M01 / M10
當圖像爲二值圖時, 只有 0(黑),1(白)兩個值。 就是圖像上所以白色區域 x 座標值的累加。因此,一階矩可以用來求二值圖像的重心


二階矩  M20 / M02 / M11
二階矩可以用來求物體形狀的方向。 
 

幾何矩公式

在這裏插入圖片描述

P(x,y) 表示 x,y 處的灰度值 x,y 表示圖像二維中的座標(i=0,j=0時表示零階矩, i=1,j=0或i=0,j=1表示 1階矩.......以此類推)

目前 opencv 支持求 0-3階矩

利用矩求圖像的重心,方向

Mat image = imread(imagename, 0);//讀入灰度圖
Mat binary;
//二值,橢圓是黑色的,所以反色下
threshold(image, binary, 200, 255, CV_THRESH_BINARY_INV);
Moments m = moments(binary, true);//moments()函數計算出三階及一下的矩
Point2d center(m.m10 / m.m00, m.m01 / m.m00);//此爲重心
//計算方向
double a = m.m20 / m.m00 - center.x*center.x;
double b = m.m11 / m.m00 - center.x*center.y;
double c = m.m02 / m.m00 - center.y*center.y;
double theta = fastAtan2(2*b,(a - c))/2;//此爲形狀的方向
//其中:fastAtan2()爲OpenCV的函數,輸入向量,返回一個0-360的角度。

 

矩的計算及特性

 

opencv Momets 數據結構

class Moments
{
public:
    Moments();
    Moments(double m00, double m10, double m01, double m20, double m11,
            double m02, double m30, double m21, double m12, double m03 );
    Moments( const CvMoments& moments );
    operator CvMoments() const;

    // spatial moments空間矩
    double  m00, m10, m01, m20, m11, m02, m30, m21, m12, m03;
    // central moments中心矩
    double  mu20, mu11, mu02, mu30, mu21, mu12, mu03;
    // central normalized moments歸一化的中心矩
    double  nu20, nu11, nu02, nu30, nu21, nu12, nu03;
}

 

2.1空間矩 (0-3階)

空間矩的實質爲面積或者質量。可以通過一階矩計算質心/重心。


2.2中心矩(0-3階)

中心矩體現的是圖像強度的最大和最小方向(中心矩可以構建圖像的協方差矩陣),其只具有平移不變性,所以用中心矩做匹配效果不會很好。

2.3歸一化的中心矩 (0-3階)

歸一化後具有了 平移 和尺度不變性。

 

2.4 Hu矩Hu矩由於具有尺度、旋轉、平移不變性,可以用來做匹配。

 opencv hu_moments() 獲取 圖像的 Hu 矩

 

 小結

 

  •         圖像的矩通常描述了該圖像形狀的全局特徵,並被廣泛的應用在各種圖像處理、計算機視覺和機器人技術領域的目標識別與方位估計中。一階矩與形狀有關,二階矩顯示曲線圍繞直線平均值的擴展程度,三階矩則是關於平均值的對稱性的測量。不變矩是圖像的統計特性,滿足平移、伸縮、旋轉均不變的不變性。
  •         如果把圖像看成是一塊質量密度不均勻的薄板,其圖像的灰度分佈函數f(x,y)就是薄板的密度分佈函數,則其各階矩有着不同的含義,如零階矩表示它的總質量;一階矩表示它的質心;二階矩又叫慣性矩,表示圖像的大小和方向。事實上,如果僅考慮階次爲2的矩集,則原始圖像等同於一個具有確定的大小、方向和離心率,以圖像質心爲中心且具有恆定輻射率的橢圓。
  •         由三階矩以下矩構成的七個矩不變量具有平移、旋轉和尺度不變性等等。當密度分佈函數發生改變時,圖像的實質沒有改變,仍然可以看做一個薄板,只是密度分佈有所改變。雖然此時各階矩的值可能發生變化,但由各階矩計算出的不變矩仍具有平移、旋轉和尺度不變性。通過這個思想,可對圖像進行簡化處理,保留最能反映目標特性的信息,再用簡化後的圖像計算不變矩特徵,可減少計算量。
  •         研究表明,只有基於二階矩的不變矩對二維物體的描述纔是真正的與旋轉、平移和尺度無關的。較高階的矩對於成像過程中的誤差,微小的變形等因素非常敏感,所以相應的不變矩基本上不能用於有效的物體識別。即使是基於二階矩的不變矩也只能用來識別外形相差特別大的物理,否則他們的不變矩會因爲很相似而不能識別
     

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章