目录
轮廓属性
在这里,我们将学习提取对象的一些常用属性,例如实体,等效直径,蒙版图像,平均强度等。
长宽比
它是对象边界矩形长度与宽度的比值
#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])