• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

(Python)从零开始,简单快速学机器仿人视觉Opencv—第十八节:轮廓的性质

人工智能 Eragonl 1620次浏览 0个评论

1.1长宽比

边界矩形的宽高比  

x,y,w,h=cv2.boundingRect(cnt)
aspect_ratio = float(w)/h

 

2.Extent

轮廓面积与边界矩形面积的比  

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

 

3.Solidity

轮廓面积与凸包面积的比  

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

 

4.与轮廓面积相等的圆形的直径

 

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

 

5.方向

对象的方向,下面的方法还会返回长轴和短轴的长度  

(x,y),(MA,ma),angle=cv2.fitEllipse(cnt)

 

6.掩模和像素点

有时我们需要构成对象的所有像素点  

mask=np.zeros(imgray.shate,np.uint8)
#这里一定要使用参数-1,绘制填充的轮廓
cv2.drawContours(mask,[cnt],0,255,-1)
pixelpoints=np.transpose(np.nonzero(mask))

 

7.最大值和最小值及它们的位置

可以使用掩模图像得到这些参数  

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

 

8.平均颜色及平均灰度

同样使用相同的掩模来求得  

mean_val=cv2.mean(im,mask=mask)

 

9.极点

一个对象最上,最下,最左,和最右的点  

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

 

总结

(本系列每周不定期更新,谢谢大家支持!)


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明(Python)从零开始,简单快速学机器仿人视觉Opencv—第十八节:轮廓的性质
喜欢 (0)

您必须 登录 才能发表评论!

加载中……