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

opencv: 绘制矩形轮廓框,并记录轮廓框坐标

步骤简述 使用OpenCV绘制矩形轮廓框,一般包括如下步骤: 转换为灰度图; 进行阈值处理; 进行中值滤波; 在原始图像上绘制矩形框。...附图解析 原始图像: 第一步,转换为灰度图: 第二步,经过阈值处理: 第三步,中值滤波后: 最后一步,在原始图像上绘制矩形框: 生成的记录文件(矩形轮廓框四个端点的平面坐标.../origin.jpg') # 文档路径,用于记录轮廓框坐标 txt_file = open('....threshold(src=pic, thresh=200, maxval=255, type=1) # 中值滤波,去除椒盐噪声 pic = cv2.medianBlur(pic, 5) # 边缘检测,得到的轮廓列表..._1, contours, _2 = cv2.findContours(pic, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) # 根据轮廓列表,循环在原始图像上绘制矩形边界

3.5K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    C++ OpenCV轮廓周围矩形和圆形绘制

    前面我们学习了轮廓提取,正常我们在提到到轮廓截取出来时一般需要是矩形的图像,这次我们就来学习一下轮廓周围绘制矩形等。...,bool closed) InputArray curve:一般是由图像的轮廓点组成的点集 OutputArray approxCurve:表示输出的多边形点集 double epsilon:主要表示输出的精度...,就是另个轮廓点之间最大距离数,5,6,7,,8,,,,, bool closed:表示输出的多边形是否封闭 ---- 矩形 boundingRect,得到轮廓周围最小矩形 Rect boundingRect...) points 二维点集,点的序列或向量 RotatedRect的参数:包含中心点坐标,以及矩形的长度和宽度还有矩形的偏转角度 ---- 代码演示 新建一个项目opencv-0025,配置属性(VS2017...操作步骤 将源图像变为二值图像 发现轮廓,找到图像轮廓 通过API找到轮廓点上的最小包含矩形,圆,椭圆 绘制图像 ? ? ? 多边形拟合 ? 可旋转的最小矩形 ? 最小矩形 ? 最小包围圆形 ?

    2.5K20

    最大的矩形

    问题描述 试题编号: 201312-3 试题名称: 最大的矩形 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述   在横轴上放了n个相邻的矩形,每个矩形的宽度是...1,而第i(1 ≤ i ≤ n)个矩形的高度是hi。...这n个矩形构成了一个直方图。   请找出能放在给定直方图里面积最大的矩形,它的边要与坐标轴平行。对于上面给出的例子,最大矩形如下图所示的阴影部分,面积是10。...输入格式   第一行包含一个整数n,即矩形的数量(1 ≤ n ≤ 1000)。   第二行包含n 个整数h1, h2, … , hn,相邻的数之间由空格分隔。(1 ≤ hi ≤ 10000)。...hi是第i个矩形的高度。 输出格式   输出一行,包含一个整数,即给定直方图内的最大矩形的面积。

    48120

    Excel公式技巧:查找最接近的数值

    图1 下面,要在单元格区域A1:D15中查找与单元格F1中的数值最接近的数。...1.查找小于但最接近指定数值的数 可以使用下面的公式得到小于但最接近指定数值的数: =SMALL(A1:D15,COUNTIF(A1:D15,"<"&F1)) 公式中,COUNTIF函数返回单元格区域中小于指定值的数值的个数...,将其作为参数传递给SMALL函数,得到小于指定值但最接近指定值的数。...2.查找大于但最接近指定数值的数 如果要查找大于但最接近指定数值的数,可以使用类似的公式,但使用LARGE函数。...公式为: =LARGE(A1:D15,COUNTIF(A1:D15,">"&F1)) 公式中,COUNTIF函数返回单元格区域中大于指定值的数值的个数,将其作为参数传递给LARGE函数,得到大于指定但最接近指定值的数

    4.1K20

    OpenCV 删除轮廓的方法(一)

    一种比较方便的删除轮廓的处理方式,是我刚刚学习到的一个方法,在这之前,如果我想删除一个不需要的轮廓,用的方法是将该轮廓填充为背景色,之前的博客提到过,在countours容器中,如果把轮廓填充为背景色,...所以之前总是要填充之后从新copyto一下,然后重新找一遍轮廓,达到删除轮廓的效果。这种方式实在是low。...[contours_all.size() - 1]); contours_all.pop_back(); swap用于数据交换,将找到的轮廓放在容器的最后面,和j交换的轮廓是就是原来最后面那个,因为...contours_all.size()是轮廓的总个数,轮廓个数标号从0开始,所以contours_all.size()-1就是最后面那个轮廓,将两者交互之后,用pop_back()函数删除最后面那个数据...,完成删除指定轮廓的功能。

    43820

    包含多个矩形的Pblock

    嵌套的两个pblock,它们的一些属性是不相同的。最典型的是PARENT不同,如下图所示。顶层的pblock其PARENT值为ROOT,而子层的pblock其PARENT是顶层的pblock。 ?...pblock是否可以包含多个矩形 Vivado还支持创建多个矩形构成一个pblock,从而使得该pblock形状不是矩形。这在某些场合是非常有用的。相应的操作非常简单。...首先,对指定的cell创建一个pblock;其次,在Device View中选中该pblock,点击右键,选择Add Pblock Rectangle,如下图所示。此时会创建一个新的矩形。...这两个矩形共同构成一个新的pblock。可以反复选中pblock,点击右键添加多个矩形pblock,从而形成多个矩形pblock共同构成一个非矩形的pblock。 ?...对于多个矩形构成一个pblock的情形,这些矩形之间会以虚线形式连接,表面它们隶属于同一个pblock。如下图所示。从Tcl命令角度讲,无非是增加了几行resize_pblock命令而已。 ? ?

    1.4K10

    最接近原点的K个点

    最接近原点的K个点 我们有一个由平面上的点组成的列表points。需要从中找出K个距离原点(0, 0)最近的点。 (这里,平面上两点之间的距离是欧几里德距离。) 你可以按任何顺序返回答案。...除了点坐标的顺序之外,答案确保是唯一的。...示例 输入:points = [[1,3],[-2,2]], K = 1 输出:[[-2,2]] 解释: (1, 3) 和原点之间的距离为 sqrt(10), (-2, 2) 和原点之间的距离为 sqrt...个最大最小值的情况下使用大小顶堆效率会更高。...首先定义n为点的数量,当K取值大于等于点的数量直接将原数组返回即可,之后定义排序,将a点与b点的欧几里得距离的平方计算出并根据此值进行比较,排序结束后直接使用数组的slice方法对数组进行切片取出前K个值即可

    68020

    最接近的三数之和(leetcode16)

    给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。...示例: 输入:nums = [-1,2,1,-4], target = 1 输出:2 解释:与 target 最接近的和是 2 (-1 + 2 + 1 = 2) 。...解析: 题目要求找到与目标值 target 最接近的三元组,这里的「最接近」即为差值的绝对值最小。...可以先考虑对整个数组进行升序排序,这样一来: 假设数组的长度为 n,我们先枚举 a,它在数组中的位置为 i; 为了防止重复枚举,我们在位置 [i+1, n) 的范围内枚举 b 和 c。...在每一步枚举的过程中,我们用 a+b+c 来更新答案, 并且:如果 a+b+c≥target,那么就将pc向左移动一个位置; 如果a+b+c<target,那么就将 pb向右移动一个位置。

    77800
    领券