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

如何使用OpenCV python绘制平行于最小面积矩形宽度的直线连接相对轮廓点

OpenCV是一个开源的计算机视觉库,提供了丰富的图像处理和计算机视觉算法。使用OpenCV的Python库可以实现绘制平行于最小面积矩形宽度的直线连接相对轮廓点的功能。

下面是使用OpenCV Python绘制平行于最小面积矩形宽度的直线连接相对轮廓点的步骤:

  1. 导入必要的库和模块:
代码语言:txt
复制
import cv2
import numpy as np
  1. 读取图像并进行预处理:
代码语言:txt
复制
image = cv2.imread('image.jpg')
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
blur = cv2.GaussianBlur(gray, (5, 5), 0)
edges = cv2.Canny(blur, 50, 150)
  1. 寻找轮廓:
代码语言:txt
复制
contours, _ = cv2.findContours(edges, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
  1. 遍历每个轮廓,计算最小面积矩形:
代码语言:txt
复制
for contour in contours:
    rect = cv2.minAreaRect(contour)
    box = cv2.boxPoints(rect)
    box = np.int0(box)
  1. 计算最小面积矩形的宽度:
代码语言:txt
复制
width = np.linalg.norm(box[0] - box[1])
  1. 计算平行于最小面积矩形宽度的直线的起点和终点:
代码语言:txt
复制
start_point = (int(box[0][0]), int(box[0][1] - width))
end_point = (int(box[1][0]), int(box[1][1] - width))
  1. 绘制直线:
代码语言:txt
复制
cv2.line(image, start_point, end_point, (0, 255, 0), 2)
  1. 显示结果:
代码语言:txt
复制
cv2.imshow('Result', image)
cv2.waitKey(0)
cv2.destroyAllWindows()

这样就可以使用OpenCV Python绘制平行于最小面积矩形宽度的直线连接相对轮廓点了。

OpenCV在图像处理和计算机视觉领域有广泛的应用,包括图像分割、目标检测、人脸识别、图像匹配等。腾讯云提供了云服务器、云数据库、云存储等多种云计算产品,可以满足各种图像处理和计算机视觉应用的需求。

腾讯云相关产品和产品介绍链接地址:

  • 云服务器(https://cloud.tencent.com/product/cvm)
  • 云数据库(https://cloud.tencent.com/product/cdb)
  • 云存储(https://cloud.tencent.com/product/cos)

注意:以上答案仅供参考,具体的实现方式和产品选择应根据实际需求和情况进行。

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

相关·内容

计算机视觉 OpenCV Android | 基本特征检测 之 轮廓分析

(0)轮廓分析概述及作用 通过将Canny边缘提取或者二值化结果作为输入图像来实现轮廓发现与绘制, 可是这些并不是我们想要最终结果, 我们一般根据获取到轮廓求出它们外接矩形或者最小外接矩形..., 并计算外接矩形横纵比例、轮廓面积、周长等数据, 然后使用这些数据实现特定几何形状轮廓查找与过滤, 为后续处理与分析剔除不正确区域而保留候选对象。...(1)边界框 最常见获取轮廓外接矩形是边界框, 获取每个轮廓边界框, 通过它可以得到与各个轮廓相对高度与宽度, 并能通过它计算出轮廓纵横比。...调用该API会返回一个RotatedRect对象实例, 它是OpenCV关于旋转矩形数据结构, 其包含了旋转角度,矩形宽、高及四个顶点等信息, 通过相关API都可以查询获得, 绘制旋转矩形对象时候..., 首先需要得到四个顶点, 然后通过OpenCV绘制直线API来完成旋转矩形绘制

1.4K20

【从零学习OpenCV 4】轮廓外接多边形

矩形是常见几何形状,矩形处理和分析方法也较为简单,OpenCV 4提供了两个函数求取轮廓外接矩形,分别是求取轮廓最大外接矩形boundingRect()函数和求取轮廓最小外接矩形minAreaRect...最小外接矩形四个边都与轮廓相交,该矩形旋转角度与轮廓形状有关,多数情况下矩形四个边不与图像两个轴平行。...为了了解两个外接矩形函数使用方法,代码清单7-21中给出了提取轮廓外接矩形示例程序。...程序中首先利用Canny算法提取图像边缘,之后通过膨胀算法将邻近边缘连接成一个连通域,然后提取图像轮廓,并提取每一个轮廓最大外接矩形最小外接矩形,最后在图像中绘制矩形轮廓,程序运行结果在图7...图7-20 myRect.cpp程序运行结果 有时候用矩形逼近轮廓会造成较大误差,例如图7-20中对于圆形轮廓逼近矩形围成面积比真实轮廓面积大,如果寻找逼近轮廓多边形,那么多边形围成面积会更加接近真实圆形轮廓面积

3.6K00

cv2.drawContours

第一个参数是原始图像,第二个参数是轮廓,一个python列表,第三个参数是轮廓索引(在绘制独立轮廓是很有用,当设置为-1时绘制所有轮廓)。接下来参数是轮廓颜色和厚度。...k=cv2.isContourConvex(cnt)2.7边界矩形 直边界矩形,一个直矩形,没有旋转。不会考虑对象是否旋转。所以边界矩形面积不是最小。...(img,(x,y),(x+w,y+h),(0,255,0),2)旋转边界矩形,这个边界矩形面积最小,因为它考虑了对象旋转。...其中绿色为直矩形,红色为旋转矩形。?2.8最小外接圆 函数cv2.minEnclosingCircle()可以帮我们找到一个对象外接圆。它是所有能够包括对象圆中面积最小一个。...2.10直线拟合 可以根据一组拟合出一条直线,同样我们也可以为图像中白色拟合出一条直线

3.1K10

OpenCV轮廓绘图与筛选操作总结

(255,0,0)决定了绘制颜色,需要注意地方是,如果Scalar为三个颜色的话,那么目标图像需要是三通道才可以,最后一个参数为线条宽度,如果为CV_FILLED的话则填充轮廓。...轮廓尺寸 尺寸这个词并不准确,其实是轮廓size,也就是把轮廓围起来个数,我们都知道OpenCV一个轮廓其实是合集,所以如果一个轮廓在图像上相对大,那么他个数也就相应会变多...轮廓面积 根据矩定义,函数零阶原点矩为质量,对于轮廓而言即为轮廓面积,所以零阶原点矩数值可以更好表征出轮廓面积。...); 可见,它参数只有二维集做输入,而函数类型为RotatedRect ,RotatedRect 为OpenCV一个常用数据类型——可旋转2D矩形。...轮廓外接矩形 外接矩形和外接椭圆用法差不多: OpenCV利用boundingRect()函数创建轮廓(二维集)外接矩形,该函数定义: CV_EXPORTS_W Rect boundingRect

4.5K61

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

作者:磐怼怼 转载自:深度学习与计算机视觉 未经允许不得二次转载 目标 在本文中,我们将学习 如何找到轮廓不同特征,例如面积,周长,质心,边界框等。 您将看到大量与轮廓有关功能。 1....然后返回凸包坐标。如果为False,则返回与凸包相对轮廓索引。...边界矩形 有两种类型边界矩形。 7.a.直角矩形 它是一个矩形,不考虑物体旋转。所以边界矩形面积不是最小。它是由函数cv.boundingRect()找到。...旋转矩形 这里,边界矩形是用最小面积绘制,所以它也考虑了旋转。使用函数是cv.minAreaRect()。...绿色矩形显示正常边界矩形。红色矩形是旋转后矩形。 ? 8. 最小闭合圈 接下来,使用函数cv.minEnclosingCircle()查找对象圆周。它是一个以最小面积完全覆盖物体圆。

86520

opencv 7 -- 边界矩形

有两类边界矩形 一、直边界矩形—boundingRect() 一个直矩形(就是没有旋转矩形)。它不会考虑对象是否旋转。 所以边界矩形面积不是最小。...()接收参数一般是轮廓, cnt这个参数,如果自己构造,至少需要四个 可以使用bumpy 构造一个轮廓, cnt = np.array([[x1,y1],[x2,y2],[x3,y3],[x4...,y4]]) # 必须是array数组形式 二、旋转边界矩形 这个边界矩形面积最小,因为它考虑了对象旋转。...但是要绘制这个矩形需要矩形 4 个角,可以通过函数 cv2.boxPoints() 获得 box:[ [x0,y0], [x1,y1], [x2,y2], [x3,y3] ] # 拿到每个轮廓坐标...90 最小外接矩形4个顶点顺序、中心坐标、宽度、高度、旋转角度(是度数形式,不是弧度数)对应关系如下: ?

1.7K20

OpenCV | 二值图像分析技巧都在这里

轮廓属性 二值图像分析最常见一个主要方式就是轮廓发现与轮廓分析,其中轮廓发现目的是为轮廓分析做准备,经过轮廓分析我们可以得到轮廓各种有用属性信息、常见的如下: 轮廓面积 轮廓周长 轮廓几何矩 轮廓最小外接矩形...轮廓最大外接矩形 轮廓最小外接圆 轮廓最小外接三角形 轮廓拟合(支持拟合直线、椭圆、圆) 轮廓凸包 轮廓层次信息提取 多边形逼近 计算欧拉数 函数介绍 OpenCV中提供大量轮廓分析函数,通过这些函数我们可以方便快捷得到轮廓各种有用属性信息...,可以实现对二值图像几何形状判别、测量、面积过滤、获取每个对象几何属性包括面积、周长、编码、形状、层次/位置信息、欧拉数、中心位置、倾斜角度。...综合运用代码演示 2020年 以前我分享过一些综合使用例子,列表如下(都看过你就赢了): 二值图像分析案例精选 OpenCV二值图像案例分析精选 | 第二期 OpenCV轮廓层次分析实现欧拉数计算...OpenCV寻找复杂背景下物体轮廓 如何识别出轮廓准确长和宽 OpenCV中几何形状识别与测量 OpenCV中BLOB特征提取与几何形状分类 OpenCV直线拟合检测 OpenCV中实现曲线与圆拟合

1.8K30

OpenCV 轮廓 —— 轮廓分析

本文记录 OpenCV轮廓分析相关操作。 多边形逼近 当我们绘制一个多边形或进行形状分析时,通常需要使用多边形逼近一个轮廓,使顶点数变少。...有多种方法可以实现这个功能,OpenCV实现了其中两种逼近方法。 Douglas-Peucker(DP) 逼近算法 该算法首先从轮廓(图B)中挑出两个最远,将两相连(图C)。...当然,长度和面积只是轮廓简单特性。描述轮廓一种最简易方法是为它加上一个外包围框。最简单途径是直接计算外包围矩形。这正是 cv2.boundingRect 函数做。...而函数cv2.minAreaRect可以返回一个包围轮廓最小矩形,这个矩形很可能是倾斜。 查找包含输入 2D 最小区域旋转矩形。...官方文档 函数通过最小化 \sum_{i} \rho\left(r_{i}\right) 来拟合2D或3D一系列成为一条直线,其中r_i 是第i 个距离直线距离度量, \rho®

3.1K20

【CV 向】如何打造一个“数串串神器“

人们会注意到钢管直线边缘,并尝试通过比较宽度和长度比例来判断是否为钢管。 3、光泽度分析:人们会注意到钢管光泽度。钢管通常具有金属光泽,反射周围环境光线。...它基于图像边缘信息,通过连接边缘构成闭合曲线,从而得到物体轮廓。...轮廓特征提取:对于每个提取轮廓,可以计算一些特征来描述其形状、大小、方向等。常用轮廓特征包括轮廓长度、面积、周长、外接矩形、外接圆等。...轮廓绘制和可视化:可以将提取轮廓绘制在原始图像上,以便进行可视化和结果展示。这可以通过绘制轮廓曲线、外接矩形或其他几何形状来实现。...总结 在本文中,我们介绍了使用OpenCV和深度学习来解决数钢管和数串串问题,使用OpenCVBlob Detection和Hough Circle技术对钢管以及串串进行检测,并使用轮廓分析对钢管进行计数

27620

VC++中使用OpenCV进行形状和轮廓检测

VC++中使用OpenCV进行形状和轮廓检测 在VC++中使用OpenCV进行形状和轮廓检测,轮廓是形状分析以及物体检测和识别的有用工具。...如下面的图像中Shapes.png中有三角形、矩形、正方形、圆形等,我们如何去区分不同形状,并且根据轮廓进行检测呢?...,结果放到vector> contours数组中 3、遍历每一个轮廓多边形,首选计算轮廓面积,过滤那些面积特别小轮廓(比如面积小于1000则不处理,例如上图中那个黑色圆点...判断轮廓多边形形状类型,特别注意矩形和正方形区别,我们根据轮廓宽高比来区分,当轮廓宽高比大于0.95或者小于1.05时我们可以认定轮廓为正方形 4、最后我们在第三步基础上,绘制轮廓或填充轮廓,颜色为粉色...3 HOURS with Python | Including 3xProjects | Computer Vision Learn-OpenCV-in-3-hours

7100

我为什么要写《OpenCV Android 开发实战》这本书

计算机视觉作为人工智能分支学科之一、符合未来科技发展方向,OpenCV是开源可以商业应用最流行计算机视觉框架,包含了3000多个算法实现,其SDK支持Java、C++、Python等编程语言,支持...基于Mat绘制与填充 2.2.2 Bitmap上绘制与填充 2.4 Mat与Bitmap转换与使用 2.5 小结 第3章Mat像素操作...3.1 OpenCV Mat中操作像素方法 3.1.1 Mat类型与get、put方法 3.1.2 如何正确循环操作每个像素 3.2 图像通道与均值方差计算...5.5 霍夫圆检测 5.6 轮廓检测与绘制 5.7.1 - 轮廓检测与绘制轮廓 5.7.2 - 绘制轮廓外接矩形与圆...5.7.3 - 绘制最小外接矩形 5.7 轮廓分析 绘制外接矩形最小外接矩形、横纵比、面积轮廓周长等 5.8 图像直方图 5.8.1 - 计算直方图

1.6K30

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

翻译及二次校对:cvtutorials.com 在这篇文章中,我们将学习 • 找到轮廓不同特征,如面积、周长、中心、边界盒等。 • 你会看到很多与轮廓线有关函数。 1....边界矩形 有两种类型边界矩形。 7.a. 直线边界矩形 这是一个直线矩形,它不考虑物体旋转。因此,边界矩形面积不会是最小。它是由函数cv.boundingRect()找到。...(x,y)为矩形左上角坐标,(w,h)为其宽度和高度。...旋转矩形 这里,边界矩形是以最小面积绘制,所以它也考虑了旋转。使用函数是cv.minAreaRect()。...绿色矩形显示是正常边界矩形。红色矩形是旋转后矩形。 8. 最小包围圈 接下来,我们使用cv.minEnclosingCircle()函数找到一个物体圆。它是一个以最小面积完全覆盖物体圆。

87020

【从零学习OpenCV 4】绘制几何图形

color:圆形颜色。 thickness:轮廓宽度,如果数值为负,则绘制一个实心圆。...1 02 绘制直线 接下来介绍如何在图像中绘制直线OpenCV 4中提供了line()函数用于绘制直线,其函数原型在代码清单3-41中给出。 代码清单3-41 line()函数原型 1....该函数利用两确定一条直线方式在图像中画出一条直线,函数中很多参数含义都与circle()函数一致,这里就不在赘述。对于该函数使用我们将在本节最后代码清单3-47中一起给出。...在OpenCV 4中定义了两种函数原型,分别利用矩形对角线上两个顶点坐标或者利用左上角顶点坐标和矩形长和宽唯一确定一个矩形。在绘制矩形时,同样可以控制边缘线宽度绘制一个实心矩形。...函数通过依次连接多边形顶点来实现多边形绘制,多边形顶点需要按照顺时针或者逆时针顺序依次给出,通过控制边界线宽度可以实现是否绘制实心多边形。

1.3K30

OpenCV4系统化学习路线图与教程

根据自己近十年图像处理OpenCV开发相关工作经验,花了七个月时间,针对OpenCV4、精心选择OpenCV中常用模块与知识,构建了一套系统化课程,这套课程对每个课时代码演示都是基于C++与Python...两种语言,充分考虑了初学者对各种语言上手问题,由浅入深、层次递进讲述OpenCV各个模块关键知识与相关API函数,零基础开始学习OpenCV中最常用八个模块内容 01 图像与视频I/O模块 02...) 30.图像轮廓发现(树形层次、编码方式、最小外接矩形面积与周长) 31.轮廓逼近与编码 32.图像距(几何矩、中心矩、hu矩) 33.轮廓拟合(直线/圆与椭圆) 34.手势凸包检测 35.霍夫变换...-使用SSD对象检测模型实现对象检测 77.深度神经网络-基于SSD实时对象检测 78.深度神经网络-基于残差网络的人脸检测 79.深度神经网络-视频实时人脸检测 80.深度神经网络-如何调用导出tensorflow...为了更好帮助初学者搭建好OpenCV开发环境,良心录制了一系列免费OpenCV环境搭建视频,详细信息见这里: B站OpenCV环境搭建视频 OpenCV4.0+python https://www.bilibili.com

1.9K10

OpenCV4最全系统化学习路线图与教程!

根据自己近十年图像处理OpenCV开发相关工作经验,花了七个月时间,针对OpenCV4、精心选择OpenCV中常用模块与知识,构建了一套系统化课程,这套课程对每个课时代码演示都是基于C++与Python...两种语言,充分考虑了初学者对各种语言上手问题,由浅入深、层次递进讲述OpenCV各个模块关键知识与相关API函数,零基础开始学习OpenCV中最常用八个模块内容 01、图像与视频I/O模块 02...) 30.图像轮廓发现(树形层次、编码方式、最小外接矩形面积与周长) 31.轮廓逼近与编码 32.图像距(几何矩、中心矩、hu矩) 33.轮廓拟合(直线/圆与椭圆) 34.手势凸包检测 35.霍夫变换...-使用SSD对象检测模型实现对象检测 77.深度神经网络-基于SSD实时对象检测 78.深度神经网络-基于残差网络的人脸检测 79.深度神经网络-视频实时人脸检测 80.深度神经网络-如何调用导出tensorflow...为了更好帮助初学者搭建好OpenCV开发环境,良心录制了一系列免费OpenCV环境搭建视频,详细信息见这里: B站OpenCV环境搭建视频 OpenCV4.0+python https://www.bilibili.com

91420

【CV 向】如何打造一个“数串串神器“

人们会注意到钢管直线边缘,并尝试通过比较宽度和长度比例来判断是否为钢管。3、光泽度分析:人们会注意到钢管光泽度。钢管通常具有金属光泽,反射周围环境光线。...它基于图像边缘信息,通过连接边缘构成闭合曲线,从而得到物体轮廓。...轮廓特征提取:对于每个提取轮廓,可以计算一些特征来描述其形状、大小、方向等。常用轮廓特征包括轮廓长度、面积、周长、外接矩形、外接圆等。...轮廓绘制和可视化:可以将提取轮廓绘制在原始图像上,以便进行可视化和结果展示。这可以通过绘制轮廓曲线、外接矩形或其他几何形状来实现。...总结在本文中,我们介绍了使用OpenCV和深度学习来解决数钢管和数串串问题,使用OpenCVBlob Detection和Hough Circle技术对钢管以及串串进行检测,并使用轮廓分析对钢管进行计数

40310

CAD常用基本操作

,可以选择相切相切之后在直线上选择垂足命令绘制(经验,无理论证明) d 如何绘制圆上具有一定角度直线:先在圆心绘制相同角度直线,再偏移半径值 3....矩形命令:rectang(REC) A 指定另一个角:@X,Y(直接输入下一个角相对坐标) B 尺寸(D):依次输入矩形长宽,并需要移动鼠标指定矩形所在象限 C 面积(A):先指定矩形面积,再依次指定长宽...(B):用于绘制任意角度角平分线 D 偏移(O):绘制所选直线平行线,其中通过(T)可绘制所选直线通过某平行线 E 射线可由构造线剪切得到 16 射线命令:ray 17 定数等分命令:divide...,随后再指定另一端点绘制圆弧 e 半宽(H)与宽度(W):指定所绘圆弧线宽(可用于绘制箭头) f 直线(L):退出圆弧绘制,回到直线绘制 g 第二(S):通过指点圆弧上一,之后指定端点三画圆弧...d 宽度(W):为整个多段线指定新宽度 e 编辑顶点(E):其中涉及顶点标记,详细见帮助文档 f 拟合(F):创建圆弧拟合多段线(由圆弧连接每对顶点平滑曲线)。

5.4K50

OpenCV4系统化学习路线图与教程

根据自己近十年图像处理OpenCV开发相关工作经验,花了七个月时间,针对OpenCV4、精心选择OpenCV中常用模块与知识,构建了一套系统化课程,这套课程对每个课时代码演示都是基于C++与Python...两种语言,充分考虑了初学者对各种语言上手问题,由浅入深、层次递进讲述OpenCV各个模块关键知识与相关API函数,零基础开始学习OpenCV中最常用八个模块内容 01 图像与视频I/O模块 02...) 30.图像轮廓发现(树形层次、编码方式、最小外接矩形面积与周长) 31.轮廓逼近与编码 32.图像距(几何矩、中心矩、hu矩) 33.轮廓拟合(直线/圆与椭圆) 34.手势凸包检测 35.霍夫变换...-使用SSD对象检测模型实现对象检测 77.深度神经网络-基于SSD实时对象检测 78.深度神经网络-基于残差网络的人脸检测 79.深度神经网络-视频实时人脸检测 80.深度神经网络-如何调用导出tensorflow...为了更好帮助初学者搭建好OpenCV开发环境,良心录制了一系列免费OpenCV环境搭建视频,详细信息见这里: B站OpenCV环境搭建视频 OpenCV4.0+python https://www.bilibili.com

1.3K50

基于Opencv抠图

第三个参数为轮廓近似方法cv2.CHAIN_APPROX_NONE存储所有的轮廓,相邻两个像素位置差不超过1,即max(abs(x1-x2),abs(y2-y1))==1cv2.CHAIN_APPROX_SIMPLE...我们把list排序,最多那个轮廓就是我们要找昆虫轮廓OpenCV中通过cv2.drawContours在图像上绘制轮廓。...第一个参数是指明在哪幅图像上绘制轮廓 第二个参数是轮廓本身,在Python中是一个list第三个参数指定绘制轮廓list中哪条轮廓,如果是-1,则绘制其中所有轮廓 第四个参数是轮廓线条颜色第五个参数是轮廓线条粗细...cv2.minAreaRect()函数: 主要求得包含最小面积矩形,这个矩形是可以有偏转角度,可以与图像边界不平行。...box里保存是绿色矩形区域四个顶点坐标。我将按下图红色矩形所示裁剪昆虫图像。找出四个顶点x,y坐标的最大最小值。新图像高=maxY-minY,宽=maxX-minX。?

5.4K20
领券