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

如何使用查找轮廓open cv来增加边界框的大小?

使用OpenCV中的轮廓查找函数findContours()可以找到图像中的轮廓。然后,可以使用boundingRect()函数计算轮廓的边界框。要增加边界框的大小,可以通过调整边界框的坐标和尺寸来实现。

以下是一个示例代码,演示如何使用OpenCV的findContours()boundingRect()函数来增加边界框的大小:

代码语言:txt
复制
import cv2

# 读取图像
image = cv2.imread('image.jpg')

# 转换为灰度图像
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# 二值化处理
ret, thresh = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)

# 查找轮廓
contours, hierarchy = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

# 遍历轮廓
for contour in contours:
    # 计算边界框
    x, y, w, h = cv2.boundingRect(contour)
    
    # 增加边界框的大小
    x -= 10
    y -= 10
    w += 20
    h += 20
    
    # 绘制边界框
    cv2.rectangle(image, (x, y), (x + w, y + h), (0, 255, 0), 2)

# 显示结果
cv2.imshow('Result', image)
cv2.waitKey(0)
cv2.destroyAllWindows()

在这个示例中,首先读取图像并将其转换为灰度图像。然后,使用阈值化将图像二值化处理。接下来,使用findContours()函数查找图像中的轮廓。然后,遍历每个轮廓,使用boundingRect()函数计算边界框的坐标和尺寸。最后,通过调整边界框的坐标和尺寸来增加边界框的大小,并使用rectangle()函数绘制边界框。最终,显示带有增加边界框的图像。

对于这个问题,腾讯云没有特定的产品与之相关,因此无法提供相关产品和产品介绍链接地址。

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

相关·内容

OpenCV测量物体的尺寸技能 get~

在中学的时候地理课上,老师教过我们如何根据地图上面测量的距离来计算实际空间上距离。 其原理非常的简单,实际的空间距离=图上距离/地图上的比例尺。...使用这个比率,我们可以计算图片中物体的大小。 利用计算机视觉测量物体的大小 现在我们理解了pixels_per_metric比率的含义,我们可以应用python运行代码来测量图片中的物体大小。...如果轮廓区域足够大,在第9-11行计算图中的选择边界框,特别注意OpenCV2使用的是cv2.cv.BoxPoints函数,OpenCV3使用的是cv2.boxPoints函数。...然后,我们按照左上、右上、右下和左下的顺序排列旋转的边界框坐标。 最后,第16-20行用绿色的线画出物体的轮廓,然后用红色的小圆圈绘制出边界框矩形的顶点。...总结 在本文中,我们学习了如何通过使用python和OpenCV来测量图片中的物体的大小。

2.9K20
  • 手把手教你用Python和OpenCV搭建一个半自动标注工具(详细步骤 + 源码)

    实现步骤 实现原理流程: 说明: 【1】Threshold(二值化)只接受单通道图像,但这里并不是直接使用灰度转换图来处理,而是从灰度图、R、G、B、H、S、V通道图像中找到对比度最高的图像来做二值化...【2】二值化之后并不能保证总是得到我们需要的掩码,有时会有噪声、斑点、边缘的干扰,所以加入了膨胀、腐蚀等形态学处理。 【3】最后通过轮廓分析得到对象的边界框,也就是左上角和右下角坐标。...Thresholded Stags', name_r='Morphological Operations Result', figsize=(20,14)) 【4】轮廓分析以找到边界框...让我们研究一下它们的结构。 I. Pascal VOC 以 XML 格式存储注释 II. YOLO标注结果保存在文本文件中。对于每个边界框,它看起来如下所示。...0.123 0.754 让边界框的左上角和右下角坐标表示为

    84011

    用python和opencv检测图像中的条形码

    通过本篇文章的学习,我们能学到的内容包括: 1、图像处理中常用的一些操作流程,包括滤波、阈值化处理、膨胀、腐蚀和轮廓查找等 2、更重要的一点,希望通过这个案例,能够帮助大家建立分析问题和处理问题的思路...THRESH_BINARY) 我们做的第一件事是使用一个卷积核大小为9x9的均值滤波作用于梯度图片。...) cnts = imutils.grab_contours(cnts) c = sorted(cnts, key = cv2.contourArea, reverse = True)[0] # 计算最大轮廓的旋转边界框...box = np.int0(box) # 在检测到的条形码周围绘制边界框并显示图片 cv2.drawContours(image, [box], -1, (0,255,0), 3) cv2.imshow...然后,我们确定最大轮廓的最小的边界框,并最后显示检测到的条形码。 正如我们下图所示,我们已经成功的检测到条形码 ?

    3.1K40

    【深度学习】实例第二部分:OpenCV

    OpenCV提供了查找图像轮廓的函数cv2.findContours(),该函数能够查找图像内的轮廓信息,而函数cv2.drawContours()能够将轮廓绘制出来。...在实际操作时,可以根据需要,预先使用阈值处理等函数将待查找轮廓的图像处理为二值图像。...检索所有轮廓并将它们组织成两级层次结构,上面的一层为外边界,下面的一层为内孔的边界 cv2.RETR_TREE 建立一个等级树结构的轮廓 method:轮廓的近似方法,主要有如下取值:..._KCOS 使用teh-Chinl chain近似算法的一种风格 注意事项 待处理的源图像必须是灰度二值图 都是从黑色背景中查找白色对象。...() cv2.destroyAllWindows() 执行结果: 绘制矩形包围框 函数cv2.boundingRect()能够绘制轮廓的矩形边界。

    1.8K10

    opencv+Recorder︱OpenCV 中的 Canny 边界检测+轮廓、拉普拉斯变换

    2013年,开始有人使用数据驱动的方法来学习怎样联合颜色、亮度、梯度这些特征来做边缘检测。...N4-Fields: 如何从一张图片里面找边缘?我们会想到计算局部梯度的大小、纹理变化等这些直观的方法。.... ---- 二、OpenCV 中的 Canny 边界检测 在 OpenCV 中只需要一个函数: cv2.Canny(),就可以完成以上几步。让我们看如何使用这个函数。这个函数的第一个参数是输入图像。...• 为了更加准确,要使用二值化图像。在寻找轮廓之前,要进行阈值化处理或者 Canny 边界检测。 • 查找轮廓的函数会修改原始图像。...让我们看看如何在一个二值图像中查找轮廓:函数 cv2.findContours() 有三个参数,第一个是输入图像,第二个是轮廓检索模式,第三个是轮廓近似方法。

    3.1K51

    基于OpenCV的条形码检测

    通过本篇文章的学习,我们能学到的内容包括: 1、图像处理中常用的一些操作流程,包括滤波、阈值化处理、膨胀、腐蚀和轮廓查找等 2、更重要的一点,希望通过这个案例,能够帮助大家建立分析问题和处理问题的思路...THRESH_BINARY) 我们做的第一件事是使用一个卷积核大小为9x9的均值滤波作用于梯度图片。...) cnts = imutils.grab_contours(cnts) c = sorted(cnts, key = cv2.contourArea, reverse = True)[0] # 计算最大轮廓的旋转边界框...box = np.int0(box) # 在检测到的条形码周围绘制边界框并显示图片 cv2.drawContours(image, [box], -1, (0,255,0), 3) cv2.imshow...然后,我们确定最大轮廓的最小的边界框,并最后显示检测到的条形码。 正如我们下图所示,我们已经成功的检测到条形码 ?

    1.2K10

    Python OpenCV 蓝图:1~5

    该算法首先显示如何使用从 Microsoft Kinect 3D Sensor 获取的深度信息对图像的任务相关区域进行分割,以及如何使用形态学操作来清理分割结果。...一旦确定了如何描述我们喜欢的特征,就需要想出一种方法来检查图像是否包含此类特征以及在何处包含这些特征。 特征检测 在图像中查找兴趣区域的过程称为特征检测。...仅保留两种算法在位置和大小上都一致的边界框。 这将消除被两种算法之一误标记为原型对象的离群值。...: return box_all 全部放在一起 下图显示了我们应用的结果: 在整个视频序列中,该算法能够拾取玩家的位置,通过使用均值漂移跟踪成功逐帧跟踪他们,并将所得边界框与显着性探测器返回的边界框进行组合...这意味着,只有均值漂移跟踪和显着图(大致)都同意边界框的位置和大小时,才将边界框保留在列表中。 总结 在本章中,我们探索了一种在视觉场景中标记潜在有趣对象的方法,即使它们的形状和数量未知。

    1.8K10

    OpenCV 轮廓 —— 轮廓查找

    虽然Canny.之类的边缘检测算法可以根据像素间的差异检测出轮廓边界的像素,但是它并没有将轮廓作为一个整体进行处理。下一步是要将这些边缘像素合成轮廓。...本文记录 OpenCV 中的轮廓查找的相关操作。 轮廓查找概述 一个轮廓对应一系列点,这些点以某种方式表示图像中的一条曲线。在不同情况下,这种表示方式也有所不同。有多种方式可以表示一条曲线。...轮廓层次 在了解到底如何提取轮廓之前,有必要花一些时间来理解轮廓到底是什么以及一组轮廓之间如何互相关联。...图中有五块颜色区域(分别标记为A,B,C,D,E), 每块区域的外部边界和内部边界都各自组成轮廓。因此共有9条轮廓。每条轮廓都由一组输出列表表示(右上角图一轮廓参数)。...最后,收集一块连通区域的基本信息(例如一块区域或一个包围框)需要更多、更耗时的函数调用。

    3.2K20

    基于OpenCV的气体泵扫描仪数字识别系统

    数字分割 如何确定图像中的数字有多种方法,但是我提出了使用简单的图像阈值法来尝试查找数字的方法。...红色框显示所有找到的轮廓 轮廓过滤 1.现在我们有了许多轮廓,我们需要找出我们关心的轮廓。浏览了一堆气泵的显示和场景后,使用一套适用于轮廓的快速规则。 2.收集所有我们将分类为潜在小数的正方形轮廓。...由于数字的大小应相同,并且在相同的Y上对齐,因此我们可以丢弃它认为是数字的任何轮廓,但不能像其他轮廓那样将其对齐和调整大小。...蓝色矩形显示我们的数字/十进制,红色被忽略 预测 有两个等高线轮廓,一个带潜在位数,一个带潜在小数位,我们可以使用这些轮廓边界裁剪图像,并将其输入经过训练的系统中以预测其值。...有关此过程的更多信息,请参见“数字培训”部分。 查找小数 在图像中查找小数点是要解决的另一个问题。由于它很小,有时会连接到它旁边的手指,因此使用我们在手指上使用的方法来确定它似乎有问题。

    6810

    基于OpenCV的数字识别系统

    数字分割 如何确定图像中的数字有多种方法,但是我提出了使用简单的图像阈值法来尝试查找数字的方法。...红色框显示所有找到的轮廓 轮廓过滤 1.现在我们有了许多轮廓,我们需要找出我们关心的轮廓。浏览了一堆气泵的显示和场景后,使用一套适用于轮廓的快速规则。 2.收集所有我们将分类为潜在小数的正方形轮廓。...由于数字的大小应相同,并且在相同的Y上对齐,因此我们可以丢弃它认为是数字的任何轮廓,但不能像其他轮廓那样将其对齐和调整大小。...蓝色矩形显示我们的数字/十进制,红色被忽略 预测 有两个等高线轮廓,一个带潜在位数,一个带潜在小数位,我们可以使用这些轮廓边界裁剪图像,并将其输入经过训练的系统中以预测其值。...有关此过程的更多信息,请参见“数字培训”部分。 查找小数 在图像中查找小数点是要解决的另一个问题。由于它很小,有时会连接到它旁边的手指,因此使用我们在手指上使用的方法来确定它似乎有问题。

    6400

    基于OpenCV的数字识别系统

    数字分割 如何确定图像中的数字有多种方法,但是我提出了使用简单的图像阈值法来尝试查找数字的方法。...红色框显示所有找到的轮廓 轮廓过滤 1.现在我们有了许多轮廓,我们需要找出我们关心的轮廓。浏览了一堆气泵的显示和场景后,使用一套适用于轮廓的快速规则。 2.收集所有我们将分类为潜在小数的正方形轮廓。...由于数字的大小应相同,并且在相同的Y上对齐,因此我们可以丢弃它认为是数字的任何轮廓,但不能像其他轮廓那样将其对齐和调整大小。...蓝色矩形显示我们的数字/十进制,红色被忽略 预测 有两个等高线轮廓,一个带潜在位数,一个带潜在小数位,我们可以使用这些轮廓边界裁剪图像,并将其输入经过训练的系统中以预测其值。...有关此过程的更多信息,请参见“数字培训”部分。 查找小数 在图像中查找小数点是要解决的另一个问题。由于它很小,有时会连接到它旁边的手指,因此使用我们在手指上使用的方法来确定它似乎有问题。

    1.3K20

    使用OpenCV测量图像中物体之间的距离

    Python和OpenCV顺时针排序坐标 使用OpenCV测量图像中物体的大小 已经完成了测量物体大小的任务,今天进行最后一部分:计算图片中物体之间的距离。...上篇我们讨论了如何使用参考对象来测量图像中对象的大小。 这个参考对象应该有两个重要的特征,包括: 我们知道这个物体的尺寸(以英寸、毫米等表示)。 它很容易在我们的图像中被识别出来(根据位置或外观)。...给定这样一个参考对象,我们可以使用它来计算图像中对象的大小。 今天,我们将结合本系列前两篇来计算对象之间的距离。 计算物体之间的距离与计算图像中物体的大小算法思路非常相似——都是从参考对象开始的。...第16行和第17行通过取边界框在x和y方向上的平均值来计算旋转后的边界框的中心(x, y)坐标。...我们首先获取(排序后的)最小旋转边界框坐标,并分别计算四个顶点之间的中点(第10-15行)。 然后计算中点之间的欧氏距离,给出我们的“像素/尺寸”比例,来确定一英寸为多少像素宽度。

    5.1K40

    使用OpenCV测量图像中物体的大小

    上篇,我们学习了一项重要的技术:将一组旋转的边界框坐标按左上、右上、右下和左下排列的可靠性如何。 今天我们将利用这一技术来帮助我们计算图像中物体的大小。请务必阅读整篇文章,看看是如何做到的!...通过保证0.25美分是最左边的对象,我们可以从左到右排序我们的对象轮廓,获取美分(它总是排序列表中的第一个轮廓),并使用它来定义pixels_per_metric,我们定义为: pixels_per_metric...使用这个比率,我们可以计算图像中物体的大小。 用计算机视觉测量物体的大小 现在我们了解了“像素/度量”比率,我们可以实现用于测量图像中对象大小的Python驱动程序脚本。...如果轮廓不够大,我们舍弃该区域,认为它是边缘检测过程中遗留下来的噪声(第4和5行)。 如果轮廓区域足够大,我们将计算图像的旋转包围框(第8-10行)。...(tlblX), int(tlblY)), (int(trbrX), int(trbrY)), (255, 0, 255), 2) 第4-10行展开我们的有序边界框,然后计算各顶点之间的中点。

    2.7K20

    使用OpenCV测量图像中物体之间的距离

    Python和OpenCV顺时针排序坐标 使用OpenCV测量图像中物体的大小 已经完成了测量物体大小的任务,今天进行最后一部分:计算图片中物体之间的距离。...上篇我们讨论了如何使用参考对象来测量图像中对象的大小。 这个参考对象应该有两个重要的特征,包括: 我们知道这个物体的尺寸(以英寸、毫米等表示)。 它很容易在我们的图像中被识别出来(根据位置或外观)。...给定这样一个参考对象,我们可以使用它来计算图像中对象的大小。 今天,我们将结合本系列前两篇来计算对象之间的距离。 计算物体之间的距离与计算图像中物体的大小算法思路非常相似——都是从参考对象开始的。...第16行和第17行通过取边界框在x和y方向上的平均值来计算旋转后的边界框的中心(x, y)坐标。...我们首先获取(排序后的)最小旋转边界框坐标,并分别计算四个顶点之间的中点(第10-15行)。 然后计算中点之间的欧氏距离,给出我们的“像素/尺寸”比例,来确定一英寸为多少像素宽度。

    2.1K30

    最优拟合多边形框

    .destroyAllWindows() 算法:最优拟合多边形框是计算包围指定轮廓点集的点集,最优拟合多边形框是边界表达的一种,采用Douglas-Peucker(DP)算法来实现。...DP算法: 先从轮廓中找出两个最远的点,将两点相连,即b-c 在原来的轮廓上查找一个离线段距离最远的点,将该点加入逼近后的新轮廓中,即c-d 重复前面的算法,不断迭代,将最远的点添加进来,直到所有的点到多边形的最短距离小于指定的精度...approxCurve=cv2.approxPolyDP(curve, epsilon, closed) curve表示轮廓 psilon表示精度,原始轮廓的边界点与拟合多边形边界之间的最大距离 closed...表示布尔型值,如果为True,表示封闭的拟合多边形,默认值是False,表示不封闭的拟合多边形 retval=cv2.arcLength(curve, closed) curve表示轮廓 closed表示布尔型值...,如果为True,表示封闭的轮廓,默认值是False,表示不封闭的轮廓 书籍:《九章算术》 网址:https://blog.csdn.net/mars_xiaolei/article/details/100153302

    74431

    用 OpenCV 检测图像中各物体大小

    通过保证1 / 4是最左的物体,我们可以从左到右对物体轮廓进行排序,获取1 / 4(这将始终是排序列表中的第一个轮廓),并使用它来定义我们的 pixels_per_metric ,我们将其定义为:...倘若轮廓区域足够大,我们在第 9-11 行计算图像的旋转边界框,特别注意使用 OpenCV 2.4 的 cv2.cv.BoxPoints 函数和 OpenCV 3 的 cv2.boxPoints 方法。...在第 17 行,我们在左上方、右上角、右下角和左下方的顺序排列我们旋转的边界框坐标,如上周的博客文章所说的那样。...最后,第 18-21 行以绿色绘制物体的轮廓,然后将边界框矩形的顶点绘制成红色的小圆圈。...属性 2:该参照物应该很容易找到,无论是在对象的位置上还是在外观上。 如果可以满足这两个属性,那么可以使用该参照物来校准 pixels_per_metric 变量,然后计算图像中其他物体的大小。

    3.9K10

    借势AI系列:计算机眼中的图像:理解与处理【入门指南指导】

    以下是一些主流的对象检测技术:4.2.1 YOLO(You Only Look Once)YOLO是一种高效的对象检测方法,通过将整个图像划分为网格,并在每个网格中预测边界框和类别。...以下是如何使用YOLO进行对象检测的示例代码:import cv2# 加载YOLO模型net = cv2.dnn.readNet('yolov3.weights', 'yolov3.cfg')layer_names...以下是如何使用SSD进行对象检测的示例代码:import cv2# 加载SSD模型net = cv2.dnn.readNet('deploy.prototxt', 'ssd.caffemodel')layer_names...Image', binary_image)cv2.waitKey(0)cv2.destroyAllWindows()5.2 轮廓检测轮廓检测用于提取图像中的边界信息,常用于对象的形状分析。...# 查找轮廓contours, _ = cv2.findContours(binary_image, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)# 绘制轮廓cv2

    8110

    OpenCV 入门教程:轮廓特征和轮廓匹配

    ❤️ ❤️ ❤️ ❤️ ❤️ 一、轮廓特征 轮廓特征是指从轮廓中提取的描述性信息,用于对轮廓进行定量分析。以下是一些常见的轮廓特征: 1 面积( Area ):表示轮廓包围的区域的面积大小。...2 周长( Perimeter ):表示轮廓的边界长度。 3 边界框( Bounding Box ):表示能够完全包围轮廓的矩形框。...4 最小外接矩形( Minimum Enclosing Rectangle ):表示能够完全包围轮廓的最小矩形框。...,并通过边缘检测和轮廓特征计算轮廓的面积、周长、边界框、最小外接圆等,并在图像上绘制和显示轮廓特征。...总结 通过本文的介绍,你已经了解了使用 OpenCV 进行轮廓特征提取和轮廓匹配的基本步骤。

    4.5K10

    【OpenCV入门之九】轮廓查找和多边形包围轮廓

    Canny一类的边缘检测算法可以根据像素之间的差异,检测出轮廓边界的像素,但它没有将轮廓作为一个整体。所以要将轮廓提起出来,就必须将这些边缘像素组装成轮廓。...不过精准只是因为原图的形状比较简单,如果遇到复杂图片,那情况就不太乐观了。 ? ? 使用多边形把轮廓包围 在实际应用中,常常会有将检测到的轮廓用多边形表示出来的需求。...); /// 多边形逼近轮廓 + 获取矩形和圆形边界框 vector > contours_poly(contours.size()); vector...+ 包围的矩形框 + 圆形框 Mat drawing = Mat::zeros(threshold_output.size(), CV_8UC3); for (int i = 0; i...图像的矩 图像的矩到底是什么? 矩是概率与统计中的一个概念,是随机变量的一种数字特征。 有点抽象,简而言之,矩就是图像的特征信息,比如大小、位置、方向等。

    1.9K20
    领券