opencv 9 -- 轮廓 特征 三

Posted wust小吴

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了opencv 9 -- 轮廓 特征 三相关的知识,希望对你有一定的参考价值。

1 最小外接圆

函数 cv2.minEnclosingCircle() 可以帮我们找到一个对象的外切圆。
它是所有能够包括对象的圆中面积最小的一个

(x,y),radius = cv2.minEnclosingCircle(cnt)
center = (int(x),int(y))
radius = int(radius)
img = cv2.circle(img,center,radius,(0,255,0),2)

2 椭圆拟合

使用的函数为 cv2.ellipse(),返回值其实就是旋转边界矩形的内切圆(椭圆)

ellipse = cv2.fitEllipse(cnt)
im = cv2.ellipse(im,ellipse,(0,255,0),2)

3 直线拟合

我们可以根据一组点拟合出一条直线,同样我们也可以为图像中的白色点 拟合出一条直线

rows,cols = img.shape[:2]
[vx,vy,x,y] = cv2.fitLine(cnt, cv2.DIST_L2,0,0.01,0.01)
lefty = int((-x*vy/vx) + y)
righty = int(((cols-x)*vy/vx)+y)
img = cv2.line(img,(cols-1,righty),(0,lefty),(0,255,0),2)

以上是关于opencv 9 -- 轮廓 特征 三的主要内容,如果未能解决你的问题,请参考以下文章

如何寻找已知轮廓的最大内接圆

Pytthon,OpenCV轮廓属性轮廓检测及绘制

youcans 的 OpenCV 例程200篇199.轮廓的外接边界框

OpenCV⚠️高手勿入! 半小时学会基本操作 14⚠️ 图像轮廓

opencv学习之路(27)轮廓查找与绘制——外接圆

opencv 9 -- 轮廓 特征 一