opencv 3.2圖像矩(Image Moments)


  圖像矩乍看比較難理解,看了很多資料,大概明白了一些,但還是無法在腦海里形成一個模型概念,於是從源碼中尋找它的應用.

今天就通過公式和程序抓取數據,來進一步理解圖像矩

先看一個圖片

這是程序運行結果, 途中的氣球輪廓 被標了出來, 

接下來說一下程序運行步驟 幾個概念,這個三個值是 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));

未完待續

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM