如何使用OpenCV Python检测图像中的多边形?

本文为博客 VIP 文章,开通 VIP 后可阅读全文

开通 VIP

我们首先检测图像中的所有对象轮廓以检测多边形。然后遍历所有轮廓。为每个轮廓查找近似的轮廓。如果近似轮廓中的顶点点数为5或更多,则将其绘制为三角形。请参见下面的伪代码。

for cnt in contours:
   approx = cv2.approxPolyDP()
   if len(approx) >= 5:
      cv2.drawContours()
      cv2.putText("Polygon")

步骤

我们可以使用以下步骤来检测图像中的多边形:

  • 导入所需的库。在所有以下示例中,所需的Python库是 OpenCV 。请确保您已安装它。

  • 使用 cv2.imread() 读取输入图像并将其转换为灰度。

  • 在灰度图像上应用二值化 cv2.threshold() 以创建二进制图像。调整第二个参数以获得更好的轮廓检测。

  • 使用 cv2.findContours() 函数在图像中找到轮廓。

  • 从轮廓列表中选择一个轮廓(例如第一个轮廓) cnt 。或者遍历所有检测到的轮廓。

  • 使用 cv2.approxPolyDP() 函数为每个轮廓 cnt 计算近似轮廓点( 

OpenCVOpenCV基础教程(8)—— 几何形状的检测和拟合 8. 几何形状的检测和拟合 8.1 点集的最小外包 8.1.1 最小外包矩形 OpenCV提供如下函数: cv::RotatedRect cv::minAreaRect(cv::InputArray points) points:接收三种点集形式 ​ 第一种:N×2的Mat类型,每一行代表一个点的坐标且数据类型只能是 CV_32S 或者 CV_32F; ​ 第二种:vector<Point>或者vector<Point2f>,即多个点组成的向量; ​ 第三种:N×1的双通道Mat 阅读详情

相关推荐

OpenCv学习笔记3--轮廓检测,多边形 直线 圆检测

opencv系列博客只是为了记录小编对&lt;&lt;opencv3计算机视觉-pyhton语言实现&gt;&gt;的学习笔记,所有代码在我的github主页https://github.com/RenDong3/OpenCV_Notes. 欢迎star,不定时更新... 一 轮廓检测计算机视觉中,轮廓检测是另一个比较重要的任务,不单是用来检测图像或者视频帧中物体的轮廓,而且还有其他操...

小熊猫的博客 9527

Opencv C++图像处理:点多边形测试 + 矩 + 凸包 + 映射 + 反向投影

备注:以下源码均可运行,不同项目涉及的函数均有详细分析说明。

📷 图像处理践行者 | 传统算法 · 深度学习 · 多模态 | 分享实战经验与技术洞见,探索从像素到智能的无限可能。 2325

OpenCV 相交凸多边形的实例编程

OpenCV 是一个强大的计算机视觉库,提供了许多用于处理图像和几何对象的功能。在本文中,我们将使用 OpenCV 来实现检测和计算相交凸多边形的示例程序。在开始编写代码之前,我们需要确保已经安装了 OpenCV 库,并且可以在编程环境中正确地导入它。你可以根据自己的需求对代码进行修改和扩展,以适应特定的应用场景。通过运行上述代码,我们可以看到一个显示了相交凸多边形图像窗口。如果需要处理非凸多边形或复杂的几何形状,可能需要使用其他算法或库。函数显示包含相交部分的图像,并等待用户按下任意键关闭窗口。

PixelInk的博客 134

python -opencv 轮廓检测(多边形,外接矩形,外接圆)

第三步:使用cv2.findContours对二值化图像提取轮廓。第一步:读取图像为灰度图。第三步:将轮廓绘制到图中。第二步:进行二值化处理。

weixin_43327597的博客 1255

OpenCV笔记22:在Python使用OpenCV检测简单几何形状

1、学习目标 在Python使用OpenCV检测简单几何形状 2、使用函数方法 cv2.findContours(), cv2.drawContours() 3、程序 import numpy as np import cv2 img = cv2.imread('shapes.jpg') imgGrey = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) _, th...

weixin_41788560的博客 3141

python opencv三角形检测

#################################################### # 作者:zhigang, #################################################### import cv2 as cv import numpy as np class ShapeAnalysis: def __init__(se...

qq_42444944的博客 1823

python外包凹多边形生成_Python实现图片查找轮廓、多边形拟合、最小外接矩形代码...

1、概述经常用到轮廓查找和多边形拟合等opencv操作,因此记录以备后续使用。本文代码中的阈值条件对图片没有实际意义,仅仅是为了测试。原图为:2、测试代码:import cv2import numpy as npimg = cv2.imread('/home/yasin/coffe.jpg')img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)_, co...

weixin_39676242的博客 1108

识别多边形

if key == 27 or key == ord('q'): # 27是ESC键的ASCII码。cap.set(cv2.CAP_PROP_AUTO_EXPOSURE, 0.25) # 尝试禁用自动曝光。cap.set(cv2.CAP_PROP_EXPOSURE, -3) # 设置曝光值。# 打开普通USB摄像头(通常为0或1,根据实际情况调整)# 尝试设置曝光(根据需要调整,范围通常为-10到10)# 双边滤波(可选,取消注释以启用)# 负值表示自动曝光,正值表示手动曝光。# 设置摄像头分辨率。

2302_80249657的博客 607

cv(py)基于轮廓检测多边形识别

cv(py)基于轮廓检测多边形识别 直接上照片: 直接上代码: import cv2 def sort(i): # 使用周长的倍数作为阈值,阈值越小,图像的轮廓近似与轮廓越近似 shape = "None" peri = cv2.arcLength(i, True) # 周长 approx = cv2.approxPolyDP(i, 0.02 * peri, True) # 获取轮廓 # 在这里0.01会把小的三角形识别为长方

qq_45988809的博客 926

Opencv基础自学二十一(轮廓检测

import cv2 as cv import numpy as np def measure_object(image): gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY)#从BGR颜色空间转换到GRAY灰度空间 ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_BINARY | c...

gamblerofdestinyR14的博客 275

图像拟合四边形 opencv

图像拟合四边形 opencv

jacke121的专栏 192

第十七天 圆形矩形多边形识别

import cv2 as cv import numpy as np def measure_object(image): gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_BINARY | cv.THRESH_OTSU) pr...

qq_32340685的博客 611

Opencv-python

OpenCV-Python常用函数

Highlight_Jin的博客 2211

python探测图像中边框_边缘检测,框出物体的轮廓(使用opencv-python)

边缘检测、边缘探测、轮廓绘制、多边形、区域分割、edge_detection、object_segmentation,使用opencv-python的函数cv2.findContours(),框出物体的轮廓(关键词↑)图片处理效果预览↑(就是封面图片),从左到右依次是:原图阈值图(第一行)、Canny边缘提取(第二行)蓝色矩形、绿色最小矩形、红色最小圆形蓝色等高线轮廓、绿色贴合轮廓、红色包围轮廓核...

weixin_39842682的博客 4231

识别多边形,并按顺序打印角点坐标

print(f"左下角:{sorted_points[3]}\n")# 提取顶点坐标并转换为普通整数元组(确保无numpy类型标识)print(f"左上角:{sorted_points[0]}")print(f"右上角:{sorted_points[1]}")print(f"右下角:{sorted_points[2]}")# 排序为:左上角、右上角、右下角、左下角。print("四个顶点坐标:")# 计算x+y和x-y,区分四个角。# 只处理4个顶点的四边形。# 用于排序四边形顶点的函数。

2302_80249657的博客 609

OpenCV-目标轮廓提取

原理:目标物体的轮廓实质是指一系列像素点构成,这些点构成了一个有序的点集。我们可以通过findContours函数将二值图像的边缘像素点分成多个轮廓,从而逐个提取目标外部轮廓,内部轮廓有待研究。 Python: import cv2 as cv import numpy as np if __name__=="__main__": img=cv.imread("D:/testimage...

weixin_45645281的博客 2401

python opencv 边缘检测_Python使用Opencv实现边缘检测以及轮廓检测的实现

边缘检测Canny边缘检测器是一种被广泛使用的算法,并被认为是边缘检测最优的算法,该方法使用了比高斯差分算法更复杂的技巧,如多向灰度梯度和滞后阈值化。Canny边缘检测器算法基本步骤:平滑图像:通过使用合适的模糊半径执行高斯模糊来减少图像内的噪声。计算图像的梯度:这里计算图像的梯度,并将梯度分类为垂直、水平和斜对角。这一步的输出用于在下一步中计算真正的边缘。非最大值抑制:利用上一步计算出来的梯度方...

weixin_28933179的博客 1171

Python+opencv 对象测量

1、弧长与面积 a、轮廓发现 b、计算每个轮廓的弧长与面积,以像素为单位 2、多边形拟合 a、获取轮廓的多边形拟合效果 b、approxPolyDP(contour,epsilon,close) epsilon越小,折线越逼近真实形状。close决定是否为闭合区域 3、几何矩计算 a、原点矩 b、中心矩 那么图像的重心坐标是, import cv2 as cv i...

Acmer_future_victor的博客 593
上一篇: 如何在OpenCV Python中绘制带箭头的线条?
下一篇: 如何使用OpenCV Python检测车牌?
勤奋的可乐
博客等级 码龄3年 5粉丝 · 73原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值