如何在OpenCV Python中找到图像轮廓的边界矩形?

本文介绍了在OpenCV Python中如何找到图像对象的边界矩形,包括直角边界矩形和旋转边界矩形的计算方法,通过示例代码展示了cv2.boundingRect()和cv2.minAreaRect()函数的使用,并提供了输出效果对比。
摘要由CSDN通过智能技术生成

 对象的边界矩形是在图像中围绕对象绘制的矩形。在OpenCV中有两种方法可以找到边界矩形

直边界矩形

它是一个直角矩形,因为它不考虑对象的旋转。可以使用函数 cv2.boundingRect() 计算它。其语法如下

x,y,w,h = cv2.boundingRect(cnt)
img = cv2.rectangle(img,(x,y),(x+w,y+h),(0,255,0),2)

在这里“ cnt ”是 轮廓点 数组。它返回边界矩形的左上坐标(x,y)以及宽度和高度(w,h)。

旋转矩形

它考虑对象的旋转并绘制面积最小的矩形。可以使用函数 cv2.minAreaRect() 找到旋转矩形。它返回左上角坐标(x,y),(宽度,高度),旋转角度。方形的4个角可使用函数 cv2.boxPoints() 获得。

rect = cv2.minAreaRect(cnt)
box = cv2.boxPoints(rect)
box = np.int0(box)
img = cv2.drawContours(img,[box],0,(0,255,255),2)

步骤

您可以使用以下步骤计算给定函数的Jacobian

  • 导入所需的库。所需的
参考资源链接:[Python图像轮廓检测、多边形拟合与最小外接矩形实战](https://wenku.csdn.net/doc/6412b4b2be7fbd1778d407ef?utm_source=wenku_answer2doc_content) 在图像处理,轮廓提取是一个常用技术,它可以识别出图像的物体边界。结合多边形拟合和最小外接矩形的计算,可以进一步分析物体的形状和定位。为了帮助你更好地掌握这些技术,推荐查看《Python图像轮廓检测、多边形拟合与最小外接矩形实战》一文。在这篇文章,你将学习到如何使用PythonOpenCV库来实现这些功能。 首先,使用`cv2.findContours()`函数从预处理的灰度图像提取轮廓,这里通常需要先对图像进行二值化处理。`cv2.RETR_TREE`和`cv2.CHAIN_APPROX_SIMPLE`参数能够帮助我们获取完整的轮廓信息和简化轮廓的表示。 接下来,利用轮廓面积和长宽比等特征进行筛选,这可以帮助我们过滤掉无关的噪声和非目标对象。示例通过设定适当的阈值,如面积和长宽比的大小,来保留有意义的轮廓。 对于多边形拟合,可以使用`cv2.approxPolyDP()`函数将轮廓近似为多边形,进而通过计算弧长来确定拟合的精度。 最后,为了得到每个轮廓的最小外接矩形,使用`cv2.minAreaRect()`函数,它将返回一个包含心点、宽、高和角度的对象。`cv2.boxPoints()`函数则可以将这个矩形转换为四个顶点的坐标,这对于后续的形状分析和目标定位非常有用。 在掌握了这些基本步骤后,你将能够对图像的目标进行有效的识别和分析。为了深入理解图像处理的更多内容,建议继续参阅《Python图像轮廓检测、多边形拟合与最小外接矩形实战》,这将帮助你拓展更多图像处理的知识和技能。 参考资源链接:[Python图像轮廓检测、多边形拟合与最小外接矩形实战](https://wenku.csdn.net/doc/6412b4b2be7fbd1778d407ef?utm_source=wenku_answer2doc_content)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值