OpenCV on Android 開發筆記:利用 Contour (輪廓) 取得 Moments 並找出質心
在找質心之前,首先必須先找到目標物的 Contour (輪廓)! "輪廓" 是個非常方便的東西,這個我們之後會在別的章節介紹。
再找到 Contour 後,Contour 會存為一個類別為 MatOfPoint 的物件,而此時就可以利用 Imgproc 中的一個 static 函式: moments 來幫我們找出該 Contour 的 moments。
若想得知質心的X座標: m10 / m00
若想得知質心的Y座標: m01 / m00
Moments momemts = Imgproc.moments(contour, false);其中的 false 筆者並不知道是甚麼意思,只是網路上有人這麼用自己就跟著這麼用了。
(對於 Moments 這個東西,筆者並不太熟,只知道如何應用 OpenCV 中的函式來取得 Moments,並利用他找出質心,而至於為甚麼可以利用 Moments 找出質心,就要請有心想要知道的讀者問問已經知到的讀者,或是自己上網找找看囉!也歡迎各位學會的讀者可以教教我,互相指導。)Imgproc 中的 moments 函式可以幫我們找出並取得該 Contour 的 Moments 物件,而在 Moments 中存放著一些成員變數(屬性),而在求質心的過程中,需要使用的屬性就是以下:
momemts.m00此處之應用為:
momemts.m01
momemts.m10
若想得知質心的X座標: m10 / m00
若想得知質心的Y座標: m01 / m00
Point center = new Point(moments.m10 / moments.m00, moments.m01 / moments.m00);感謝各位讀者!
留言
張貼留言