资源经验分享(Python)从零开始,简单快速学机器仿人视觉Opencv---第十八节:轮廓的性质

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

2019-11-12 | |  104 |   0

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

原文来自:CSDN      原文链接:https://blog.csdn.net/qq_19408097/article/details/102994455


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

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


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

免责声明:本文来自互联网新闻客户端自媒体,不代表本网的观点和立场。

合作及投稿邮箱:E-mail:editor@tusaishared.com

上一篇:TensorFlow的运行机制

下一篇:cut 与qcut

用户评价
全部评价

热门资源

  • Python 爬虫(二)...

    所谓爬虫就是模拟客户端发送网络请求,获取网络响...

  • TensorFlow从1到2...

    原文第四篇中,我们介绍了官方的入门案例MNIST,功...

  • TensorFlow从1到2...

    “回归”这个词,既是Regression算法的名称,也代表...

  • 机器学习中的熵、...

    熵 (entropy) 这一词最初来源于热力学。1948年,克...

  • TensorFlow2.0(10...

    前面的博客中我们说过,在加载数据和预处理数据时...