OpenCV Python 輪廓屬性 二十三

2022-06-14 11:33:08 字數 2134 閱讀 7474

在這裡,我們將學習提取一些常用的物體屬性,如堅實度,等效直徑,掩模影象,平均強度等。更多的功能可以在matlab regionprops文件中找到。

(注:質心、面積、周長等也屬於這一類,但我們在上一章已經見過)

它是物件邊界矩形的寬度與高度的比值。

$$aspect ; ratio = frac$$

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

aspect_ratio = float(w)/h

範圍是輪廓區域與邊界矩形區域的比值。

$$extent = frac$$

area = cv.contourarea(cnt)

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

rect_area = w*h

extent = float(area)/rect_area

堅實度是等高線面積與其凸包面積之比。

$$solidity = frac$$

area = cv.contourarea(cnt)

hull = cv.convexhull(cnt)

hull_area = cv.contourarea(hull)

solidity = float(area)/hull_area

等效直徑是面積與輪廓面積相同的圓的直徑。

$$equivalent ; diameter = sqrt}$$

area = cv.contourarea(cnt)

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

取向是物體指向的角度。以下方法還給出了主軸和副軸的長度。

(x,y),(ma,ma),angle = cv.fitellipse(cnt)
在某些情況下,我們可能需要構成該物件的所有點。可以按照以下步驟完成:

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

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

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

#pixelpoints = cv.findnonzero(mask)

這裡提供了兩個方法,乙個使用numpy函式,另乙個使用opencv函式(最後的注釋行)。結果也是一樣的,只是略有不同。numpy給出的座標是(行、列)格式,而opencv給出的座標是(x,y)格式。所以基本上答案是可以互換的。注意,row = x, column = y

我們可以使用掩碼影象找到這些引數。

min_val, max_val, min_loc, max_loc = cv.minmaxloc(imgray,mask = mask)
在這裡,我們可以找到物件的平均顏色。或者可以是灰度模式下物體的平均強度。我們再次使用相同的掩碼進行此操作。

mean_val = cv.mean(im,mask = mask)
極點是指物件的最頂部,最底部,最右側和最左側的點。

leftmost = tuple(cnt[cnt[:,:,0].argmin()][0])

rightmost = tuple(cnt[cnt[:,:,0].argmax()][0])

topmost = tuple(cnt[cnt[:,:,1].argmin()][0])

bottommost = tuple(cnt[cnt[:,:,1].argmax()][0])

例如,如果我將其應用於印度地圖,則會得到以下結果:

matlab的regionprops doc中仍然有一些特性。試著去實現它們。

歡迎關注磐創部落格資源彙總站:

歡迎關注pytorch官方中文教程站:

opencv中文官方文件:

opencv python 輪廓屬性

它是物件的邊界矩形的寬度與高度的比。a sp ectr atio wid thhe ight aspect ratio frac aspect rati o he ight widt h x,y,w,h cv.boundingrect cnt aspect ratio float w h 它是輪廓區...

opencv python 輪廓的層次結構

contours hierarchy 通常我們使用cv.findcontours 函式來檢測影象中的物件,有時物件位於不同的位置.但在某些情況下,某些形狀在其他形狀內.就像巢狀的數字一樣.在這種情況下,我們將外部乙個稱為父項,將內部項稱為子項.這種關係的表示稱為層次結構.在這張中,從0 5編號,2和...

opencv尋找輪廓 繪製輪廓 輪廓層級原理

void findcontours inputoutputarray image,outputarrayofarrays contours,outputarray hierarchy,int mode,int method,point offset point 引數image inputarray型...