1. 程式人生 > >【OpenCV Python】核心操作--輪廓特徵

【OpenCV Python】核心操作--輪廓特徵

    2.求面積和重心

如上面所示,利用矩可以求出圖形的面積和重心

opencv提供cv2.moments(輪廓)來求出圖形的矩,這個函式只要提供Contours引數就可以。

例子:

M= cv2.moments(contours[0]) #求矩

cx = int(M['m10']/M['m00']) # 求x座標

cy = int(M['m01']/M['m00']) # 求y座標

img=cv2.circle(img ,(cx,cy),2,(0,0,255),4) #畫出重心

螢幕剪輯的捕獲時間:2018/4/15 21:19

對於面積,本來圖形的矩裡面M00就是表示面積,但opencv同時也提供cv2.ContourArea(輪廓)

來計算面積,兩者並沒有什麼區別

例子:

area = cv2.contourArea(contours[0])

print  "area = %f"%area

print   "M00 = %f"%M["m00"]

螢幕剪輯的捕獲時間:2018/4/15 21:25

注:cv2.moments這個函式返回的結果是一個字典型別的資料,零階矩的鍵值是m00,一階矩的鍵值分別是m10和m01

OpenCV還有很多的輪廓特徵函式,比如求周長,凸包,圖形擬合等,具體的可以查詢文件,此處不做贅述