在這裡,我們將學習提取一些常用的物體屬性,如堅實度,等效直徑,掩模影象,平均強度等。更多的功能可以在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型...