OpenCV中的轮廓(二)

目录

轮廓属性

长宽比

范围

固实性

等效直径

方向

最大值,最小值及其位置

平均颜色或平均强度

极端点


轮廓属性

在这里,我们将学习提取对象的一些常用属性,例如实体,等效直径,蒙版图像,平均强度等。

长宽比

它是对象边界矩形长度与宽度的比值

#x, y是矩形的左上的坐标,w, h是矩形的长和高
x,y,w,h = cv2.boundingRect(cnt)
aspect_ratio = float(w)/h

范围

范围是轮廓区域与边界矩形区域的比率。

area = cv2.contourArea(cnt)
x,y,w,h = cv2.boundingRect(cnt)
rect_area = w * h
extent = float(area) / rect_area

固实性​​​​​​​

固实性是轮廓面积与其凸包面积的比率。

area = cv2.contourArea(cnt)
hull = cv2.convexHull(cnt)
hull_area = cv2.contourArea(hull)
solidity = float(area) / hull_area

等效直径

等效直径是面积与轮廓面积相同的圆的直径。

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

​​​​​​​方向

方向是物体指向的角度。

#Ma为主轴的长度, ma为副轴的长度
(x,y),(MA,ma),angle = cv2.fitEllipse(cnt)

最大值,最小值及其位置

可以使用遮罩图像找到这些参数

min_val, max_val, min_loc, max_loc = cv.2minMaxLoc(imgray,mask = mask)

平均颜色或平均强度

找到对象的平均颜色。或者可以是灰度模式下物体的平均强度。

mean_val = cv2.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])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值