opencv 輪廓屬性

2021-07-07 08:54:22 字數 1817 閱讀 7496

1. aspect ratio寬與高之比 

cv2

.boundingrect

(cnt

)

2. extent 目標面積 佔 邊界矩形框 的比例
area = cv2.contourarea(cnt)

x,y,w,h = cv2.boundingrect(cnt)

rect_area = w*h

extent = float(area)/rect_area

3. solidity 目標面積 佔 邊界凸形邊界 的比例

area

=cv2

.contourarea

(cnt

)hull

=cv2

.convexhull

(cnt

)hull_area

=cv2

.contourarea

(hull

)solidity

=float

(area)/

hull_area

4. equivalent diameter 與目標面積相等的圓的直徑

area = cv2.contourarea(cnt)

equi_diameter = np.sqrt(4*area/np.pi)

5. orientation 得到目標的方向,順帶還得到最大軸和最小軸

(x,y),(ma,ma),angle = cv2.fitellipse(cnt)

6. mask and pixel points 獲得該目標所有點的座標

mask = np.zeros(imgray.shape,np.uint8)

cv2.drawcontours(mask,[cnt],0,255,-1)

pixelpoints = np.transpose(np.nonzero(mask))

#pixelpoints = cv2.findnonzero(mask)

7. maximum value, minimum value and their locations

8. mean color or mean intensity

9. extreme points

topmost, bottommost, rightmost and leftmost points of the object.

以上筆記自:

另外幾個操作:筆記自

1.判斷乙個點是否在乙個形狀內部,以及到這個形狀的最短距離

dist = cv2.pointpolygontest(cnt,(50,50),true)

2.判斷兩個形狀的相似性(沒理解錯的話,用的七階矩)

總結:

2. extent 目標面積 佔 邊界矩形框 的比例 因為面積這個東西不受郵箱,配件這些細節影響。所以這個引數可否可以作為識別的乙個粗的特徵?

3. solidity 目標面積 佔 邊界凸形邊界 的比例

因為面積這個東西不受郵箱,配件這些細節影響。所以這個引數可否可以作為識別的乙個粗的特徵?

遺留問題:

5.中提取方向和軸用的什麼方法?

opencv之輪廓特徵屬性及應用

1 最小外接矩形 輪廓最小外接矩形 minarearect rotatedrect minarearect inputarray points points 輸入的二維點集,可以填mat 型別或std vector 返回值 rotatedrect類矩形物件,外接旋轉矩形主要成員有center,siz...

opencv 輪廓描述

上午主要學習了鏈碼的有關知識,鏈碼是一種表示方法,是用於表示有順序連線的具有指定長度了方向的直線段組成的邊界線,典型的情況下,這種表示方法基於4或8連線,經常選用更大間隔的網格對邊界進行重取樣,邊界的鏈碼取決於初始點,然而,此編碼可以通過簡單的過程實現初始點的歸一化,將鏈碼看成是方向編號的迴圈序列,...

opencv 輪廓應用

typedef struct cvseq cvseq define cv contour fields cv sequence fields cvrect rect int color int reserved 3 typedef struct cvcontour cvcontour 則 cvcon...