opencv python 輪廓屬性

2021-10-05 07:45:51 字數 2940 閱讀 6455

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

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

它是輪廓區域與邊界矩形區域的比。

e xt

ent=

obje

ctar

eabo

undi

ngre

ctan

glea

reaextent= \frac

extent

=bou

ndin

grec

tang

lear

eaob

ject

area

area = cv.contourarea(cnt)

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

rect_area = w*h

extent =

float

(area)

/rect_area

solidity是輪廓區域與其凸包區域的比率。

s ol

idit

y=co

ntou

rare

acon

vexh

ulla

reasolidity= \frac

solidi

ty=c

onve

xhul

lare

acon

tour

area

area = cv.contourarea(cnt)

hull = cv.convexhull(cnt)

hull_area = cv.contourarea(hull)

solidity =

float

(area)

/hull_area

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

e qu

ival

entd

iame

ter=

4×co

ntou

rare

aπequivalent\ diameter=\sqrt}

equiva

lent

diam

eter

=π4×

cont

oura

rea​

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])

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

opencv python 輪廓的層次結構

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

OpenCV Python 輪廓屬性 二十三

在這裡,我們將學習提取一些常用的物體屬性,如堅實度,等效直徑,掩模影象,平均強度等。更多的功能可以在matlab regionprops文件中找到。注 質心 面積 周長等也屬於這一類,但我們在上一章已經見過 它是物件邊界矩形的寬度與高度的比值。aspect ratio frac x,y,w,h cv...

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

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