首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用cv2.minAreaRect(cnt)在多轮廓图像上获取唯一的最小面积矩形?

cv2.minAreaRect(cnt)是OpenCV库中的一个函数,用于在多轮廓图像上获取唯一的最小面积矩形。下面是使用cv2.minAreaRect(cnt)的步骤:

  1. 导入必要的库和模块:
代码语言:txt
复制
import cv2
import numpy as np
  1. 读取图像并进行预处理:
代码语言:txt
复制
image = cv2.imread('image.jpg')
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
ret, thresh = cv2.threshold(gray, 127, 255, 0)
  1. 查找轮廓:
代码语言:txt
复制
contours, hierarchy = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
  1. 遍历轮廓并获取最小面积矩形:
代码语言:txt
复制
for cnt in contours:
    rect = cv2.minAreaRect(cnt)
    box = cv2.boxPoints(rect)
    box = np.int0(box)
    cv2.drawContours(image, [box], 0, (0, 255, 0), 2)

在上述代码中,cv2.minAreaRect(cnt)函数接受一个轮廓作为参数,并返回一个包含最小面积矩形信息的元组。然后,使用cv2.boxPoints()函数将矩形转换为四个顶点坐标,并使用cv2.drawContours()函数将矩形绘制在原始图像上。

cv2.minAreaRect(cnt)的优势在于它可以准确地计算出包围轮廓的最小面积矩形,无论轮廓的形状如何。这在许多计算机视觉和图像处理任务中非常有用,例如目标检测、形状识别和图像分割等。

cv2.minAreaRect(cnt)的应用场景包括但不限于:

  • 目标检测:通过获取目标的最小面积矩形,可以更准确地定位和识别目标物体。
  • 图像分割:通过获取物体的最小面积矩形,可以将图像中的物体与背景分离开来。
  • 形状识别:通过比较物体的最小面积矩形与预定义形状的特征,可以实现形状识别和分类。

腾讯云相关产品中,与图像处理和计算机视觉相关的产品包括腾讯云图像处理(Image Processing)和腾讯云智能图像(Intelligent Image)等。您可以访问以下链接获取更多关于这些产品的详细信息:

请注意,以上答案仅供参考,具体的实现方法和推荐的产品可能因实际需求和环境而有所不同。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

图像处理智能化探索:文字区块识别

我们观察到这类图片共同点就是——文字,我们要做工作也就是识别图像文字占地面积。...况且我们需求只是过滤“文字图片”,而不是“识别出文字内容”,使用OCR也就有种杀鸡用牛刀感觉了。不过OCR流程中,也有值得我们提取出来加以利用环节,那便是图像预处理部分。...利用OpenCVminAreaRect方法,我们可以得到一块区域像素点集中包含最小面积矩形。其中文字区块包含矩形通常连成一片,相较其他轮廓更细长。...# 得到最小矩形区域,转换为顶点坐标形式(矩形可能会有角度) rect = cv2.minAreaRect(cnt) box = cv2.cv.BoxPoints(rect)...) # 筛掉面积过小区块 if area < 1000: continue # 得到最小矩形区域,转换为顶点坐标形式(矩形可能会有角度) rect

4.3K30
  • cv2.drawContours

    1.1什么是轮廓 轮廓可以简单认为成连续点(连着边界)连在一起曲线,具有相同颜色或者灰度。轮廓形状分析和物体检测和识别中很有用。为了准确,要使用二值化图像。...查找轮廓函数会修改原始图像。如果之后想继续使用原始图像,应该将原始图像储存到其他变量中。OpenCV中,查找轮廓就像在黑色背景中超白色物体。你应该记住,要找物体应该是白色而背景应该是黑色。...如何在一个二值图像中查找轮廓。 函数cv2.findContours()有三个参数,第一个是输入图像,第二个是轮廓检索模式,第三个是轮廓近似方法。...k=cv2.isContourConvex(cnt)2.7边界矩形 直边界矩形,一个直矩形,没有旋转。不会考虑对象是否旋转。所以边界矩形面积不是最小。...(img,(x,y),(x+w,y+h),(0,255,0),2)旋转边界矩形,这个边界矩形面积最小,因为它考虑了对象旋转。

    3.2K10

    实战 | OpenCV如何将不同轮廓合并成一个轮廓(附源码)

    导读 本文主要介绍如何用OpenCV将不同轮廓合并成一个轮廓实现方法和代码演示。...背景介绍 图像处理应用场景中常常会遇到一种情况,本来是一个整体目标,因为不同亮度或其他原因导致它分割成多个部分,这种情况在用OpenCV处理时候会被当成多个轮廓(如下图所示),那么遇到这种情况...,我们如何把不同轮廓合并成一个轮廓,然后做后续处理呢?...实现方法与步骤 这里我们不用上面的绘画图,而是使用下面这张图做演示: 我们目的:将上图中文字轮廓看成一个整体,然后求其最小外接矩形,获得角度,将文字旋转水平,后续可以做简单文字识别。...= cv2.drawContours(split_res,[box],0,(0,0,255),2) merge_list.append(cnt) 【4】轮廓合并成一个绘制最小外接矩形 contours_merge

    6.8K31

    opencv 7 -- 边界矩形

    有两类边界矩形 一、直边界矩形—boundingRect() 一个直矩形(就是没有旋转矩形)。它不会考虑对象是否旋转。 所以边界矩形面积不是最小。...可以使用函数 cv2.boundingRect() 查找得到 (x,y)为矩形左上角坐标,(w,h)是矩形宽和高 x,y,w,h = cv2.boundingRect(cnt) cv2.boundingRect...()接收参数一般是轮廓cnt这个参数,如果自己构造,至少需要四个点 可以使用bumpy 构造一个轮廓cnt = np.array([[x1,y1],[x2,y2],[x3,y3],[x4...,y4]]) # 必须是array数组形式 二、旋转边界矩形 这个边界矩形面积最小,因为它考虑了对象旋转。...x, y, w, h = cv2.boundingRect(contours[i]) # 计算最小外界矩形 min_rect = cv2.minAreaRect

    1.8K20

    Python实现图片查找轮廓、多边形拟合、最小外接矩形代码

    1、概述 经常用到轮廓查找和多边形拟合等opencv操作,因此记录以备后续使用。本文代码中阈值条件对图片没有实际意义,仅仅是为了测试。 原图为: ?...(contours[i]) # 计算面积 rect = cv2.minAreaRect(contours[i]) box = np.int0(cv2.boxPoints(rect)) # 计算最小外接矩形顶点...轮廓基础上画出筛选后轮廓(绿色部分,没有实际意义): ? 补充知识:OpenCV python 轮廓(连通域)最小外接圆形 原图:[cc.jpg] ?...findContours(img_bin, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE) # 4.获取最小外接圆...以上这篇Python实现图片查找轮廓、多边形拟合、最小外接矩形代码就是小编分享给大家全部内容了,希望能给大家一个参考。

    4.7K30

    对象发现

    对象发现 不知道什么原因博客园markdown编辑器无法上传图片。需要看源码和图片复原实验可以去我github 近段时间,做了一些关于对象发现工作。...包含了几乎所有的图片处理方法,例如常见找边界、膨胀、腐蚀、画矩形、画圆等。本次实践过程我使用到了三种方法,用来识别图像液滴。...定义筛选函数 def ContourFilter(contours,min_area,max_area,rate): """ contours 轮廓位置坐标数组 min_area 轮廓围成区域最小面积...max_area 轮廓围成区域最大面积 轮廓先要满足min_area 和 max_area 条件,然后需要满足包含轮廓最小矩形长宽比小于rate """ con = []; for...用常规方法发现对象,很大程度上依赖cv2.Canny 方法,及以来cv2 库中寻找边界方法。如果,边界能被精确识别,那么对象发现将会是零误差。因为我们后续操作都是建立边界轮廓

    47720

    基于OpenCV车辆变道检测

    本期教程我们将和小伙伴们一起研究如何使用计算机视觉和图像处理技术来检测汽车在行驶中时汽车是否改变车道!...捕获输入后,使用循环提取帧,并使用汽车haar级联文件检测到坐标,我们循环中汽车周围绘制一个矩形,以在对捕获帧执行其他操作时获得一致性。...腐蚀算子在内核区域具有局部最小作用。腐蚀用于减少图像斑点噪声,斑点会从图像对象边界腐蚀掉。膨胀具有局部最大值运算符作用。...等高线可以是点,边,多边形等,因此绘制等高线时,我们进行多边形近似,以找到边长度和区域面积。...使用Greenline测量角度,并在框架中汽车上绘制矩形 ? 弹出警报(作者提供图片) ? 输出 06. 总结 本教程中,使用车道变更检测方法探索了智能汽车导航小型演示。

    1.3K10

    基于OpenCV车辆变道检测

    本期教程我们将和小伙伴们一起研究如何使用计算机视觉和图像处理技术来检测汽车在行驶中时汽车是否改变车道!...捕获输入后,使用循环提取帧,并使用汽车haar级联文件检测到坐标,我们循环中汽车周围绘制一个矩形,以在对捕获帧执行其他操作时获得一致性。...腐蚀算子在内核区域具有局部最小作用。腐蚀用于减少图像斑点噪声,斑点会从图像对象边界腐蚀掉。膨胀具有局部最大值运算符作用。...等高线可以是点,边,多边形等,因此绘制等高线时,我们进行多边形近似,以找到边长度和区域面积。...使用Greenline测量角度,并在框架中汽车上绘制矩形 ? 弹出警报(作者提供图片) ? 输出 06. 总结 本教程中,使用车道变更检测方法探索了智能汽车导航小型演示。

    1.2K10

    OpenCV系列之轮廓特征 | 二十二

    作者:磐怼怼 转载自:深度学习与计算机视觉 未经允许不得二次转载 目标 本文中,我们将学习 如何找到轮廓不同特征,例如面积,周长,质心,边界框等。 您将看到大量与轮廓有关功能。 1....为了理解这一点,假设您试图图像中找到一个正方形,但是由于图像某些问题,您没有得到一个完美的正方形,而是一个“坏形状”(如下图所示)。现在,您可以使用此功能来近似形状。...为了理解它,我们将拍摄上面的矩形图像。首先,我发现它轮廓cnt。...旋转矩形 这里,边界矩形是用最小面积绘制,所以它也考虑了旋转。使用函数是cv.minAreaRect()。...绿色矩形显示正常边界矩形。红色矩形是旋转后矩形。 ? 8. 最小闭合圈 接下来,使用函数cv.minEnclosingCircle()查找对象圆周。它是一个以最小面积完全覆盖物体圆。

    88820

    基于Opencv抠图

    step3:去除图像噪声。首先使用低通滤泼器平滑图像(9 x 9内核),这将有助于平滑图像高频噪声。低通滤波器目标是降低图像变化率。如将每个像素替换为该像素周围像素均值。...我们把list排序,点最多那个轮廓就是我们要找昆虫轮廓。 OpenCV中通过cv2.drawContours图像绘制轮廓。...第一个参数是指明在哪幅图像绘制轮廓 第二个参数是轮廓本身,Python中是一个list第三个参数指定绘制轮廓list中哪条轮廓,如果是-1,则绘制其中所有轮廓 第四个参数是轮廓线条颜色第五个参数是轮廓线条粗细...cv2.minAreaRect()函数: 主要求得包含点集最小面积矩形,这个矩形是可以有偏转角度,可以与图像边界不平行。...box里保存是绿色矩形区域四个顶点坐标。我将按下图红色矩形所示裁剪昆虫图像。找出四个顶点x,y坐标的最大最小值。新图像高=maxY-minY,宽=maxX-minX。?

    5.5K20

    opencv(4.5.3)-python(十九)--轮廓线特征

    为了理解它,我们将采取上面的矩形图像。首先,我发现它轮廓cnt。现在我用returnPoints = True找到了它凸面,我得到了以下值。...k = cv.isContourConvex(cnt) 7. 边界矩形 有两种类型边界矩形。 7.a. 直线边界矩形 这是一个直线矩形,它不考虑物体旋转。因此,边界矩形面积不会是最小。...旋转矩形 这里,边界矩形是以最小面积绘制,所以它也考虑了旋转。使用函数是cv.minAreaRect()。...(img,[box],0,(0,0,255),2) 两个矩形都显示一张图片。...绿色矩形显示是正常边界矩形。红色矩形是旋转后矩形。 8. 最小包围圈 接下来,我们使用cv.minEnclosingCircle()函数找到一个物体圆。它是一个以最小面积完全覆盖物体圆。

    92720

    应用实例 | 手把手教你用OpenCV实现餐盘水果识别计价程序(附代码)

    导读 本文主要介绍使用Python-OpenCV实现餐盘水果识别与计价应用。 测试图像与说明 使用图像如下,拍摄环境有待改善(存在光照不均和拍摄角度影响): ? ? ? ? ? ?...区别颜色使用HSV阈值范围筛选即可,圆形与方形通过轮廓面积轮廓最小外接圆面积比值来筛选,圆形rate>=0.9,方形<0.9; (2)水果共三种:苹果、香蕉、橙子,通过颜色可以区分苹果和橙子,通过轮廓最小外接矩形宽高比可以区分香蕉和橙子...; (3)计价:盘子和水果数量乘以对应单价即可; (4)设计UI,计价时显示收款码。...in contours: rect = cv2.minAreaRect(cnt) box = cv2.boxPoints(rect) box = np.int0(box)...,训练和识别时间尽量短,能够及时更新使用

    2K21

    OpenCV 轮廓 —— 轮廓分析

    当分析一张图像时候,针对轮廓,我们也许有很多事情要做。毕竟,所有轮廓都是或即将是我们想要进行识别或操作。另外相关还有多种对轮廓处理,如描述轮廓,简化或拟合轮廓,匹配轮廓到模板,等等。...然后原来轮廓寻找一个离线段距离最远点, 将该点加入逼近后轮廓中。 算法反复迭代,不断将最远点添加到结果中,直到所有点到多边形最短距离小于 parameter 参数指定精度(图F)。...当然,长度和面积只是轮廓简单特性。描述轮廓一种最简易方法是为它加上一个外包围框。最简单途径是直接计算外包围矩形。这正是 cv2.boundingRect 函数做。...该句型为正方向矩形(不能旋转) 计算点集或灰度图像非零像素右上边界矩形。...而函数cv2.minAreaRect可以返回一个包围轮廓最小矩形,这个矩形很可能是倾斜。 查找包含输入 2D 点集最小区域旋转矩形

    3.3K20

    OpenCV 轮廓检测

    计算机视觉中,轮廓检测是另一个比较重要任务。它包含操作有计算矩形边界、圆形边界、多边形边界等等。 我们以下面的黑猫图为例来讲解如何利用OpenCV进行轮廓检测。 ?...我们可以看到,原图底部灰色文字转二值图时候被过滤掉了,不参与轮廓检测。...之后,我们可以循环求得图形各部分矩形轮廓线: for c in contours: #对于每一个轮廓 #无倾斜 边界矩形框 x, y, w, h = cv2.boundingRect...我们可以循环求得图形各部分最小矩形轮廓线: W,H = img0.shape[0], img0.shape[1] for c in contours: #对于每一个轮廓 # 可倾斜最小边界矩形框...我们可以循环求得图形各部分最小闭圆轮廓线: W,H = img0.shape[0], img0.shape[1] for c in contours: #对于每一个轮廓 #最小边界圆

    1.9K20

    全志H616核桃派上实现USB摄像头OpenCV颜色检测

    在给核桃派开发板用OpenCV读取图像并显示到pyqt5窗口上并加入颜色检测功能,尝试将图像中所有蓝色东西都用一个框标记出来。...颜色检测核心api 按照惯例,先要介绍一下opencv中常用hsv像素格式。颜色还是那个颜色,只是描述颜色用参数变了。h代表色调,s代表饱和度,v代表明度,比使用rgb格式更方便计算与思考。...将hsv值该范围内像素点全部变为白色,不在则为黑色。....RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE) minAreaRect,传入一个轮廓,计算最小外接矩形 # 画最小外接矩形 for cts in contours :...rect = cv2.minAreaRect(cts) drawContours, 绘制轮廓 box = np.int0(cv2.boxPoints(rect)) cv2.drawContours

    17710
    领券