圖像矩乍看比較難理解,看了很多資料,大概明白了一些,但還是無法在腦海里形成一個模型概念,於是從源碼中尋找它的應用.
今天就通過公式和程序抓取數據,來進一步理解圖像矩
先看一個圖片
這是程序運行結果, 途中的氣球輪廓 被標了出來,
接下來說一下程序運行步驟 幾個概念,這個三個值是 moments 方法里邊求出的 必有的三個項
先通過獲取輪廓,把輪廓值存入數組,然后對數組里邊的每個值求 幾何矩 ,中心距,中心歸一化矩 ,所謂矩在很早以前 有移動的move at 含義,不要被漢字解釋混淆, 再要理解,矩是通過上邊的公式求出來的.可以多參考別的,
這個在封裝的方法里邊很容易就計算出, . 每個輪廓上 的某個值,包括了 這三項,而這三項,也是有不同部分組成,下邊圖是通過數據抓圖得到的.通過圖可以在腦海里對moment 求值有個進一步的認識
看到了嗎, moo m01 ...的值都求出來了
那么圖像中心點 center(x0,y0)就求出來了
看到了嗎x0 y0 就是圖像中心
最終結果的中心點就是通過這個公式算出來的,在程序里邊是這樣的
ccs[i] = Point(static_cast<float>(contours_moments[i].m10 / contours_moments[i].m00), static_cast<float>(contours_moments[i].m01 / contours_moments[i].m00));
未完待續