当前位置:   article > 正文

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

python opencv识别多边形

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

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

步骤

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

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

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

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

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

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

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

  • 如果近似轮廓 approx 中的顶点点数总数为5或更多,则在图像上绘制近似轮廓并将其设置为多边形。

  • 显示带有绘制轮廓和近似轮廓的图像。

让我们看下面的例子以获得更好的理解。

例子

在这个Python程序中,我们检测输入图像中的多边形。我们还绘制检测到的多边形的轮廓。

  1. # 导入所需库
  2. import cv2
  3. # 读取输入图片
  4. img = cv2.imread('polygons.png')
  5. # 将图片转换为灰度图像
  6. gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
  7. # 应用阈值来将灰度图像转换为二值图像
  8. ret,thresh = cv2.threshold(gray,50,255,0)
  9. # 查找轮廓
  10. contours,hierarchy = cv2.findContours(thresh, cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
  11. print("检测到的轮廓数量:",len(contours))
  12. for cnt in contours:
  13. approx = cv2.approxPolyDP(cnt, 0.01*cv2.arcLength(cnt, True), True)
  14. (x,y)=cnt[0,0]
  15. if len(approx) >= 5:
  16. img = cv2.drawContours(img, [approx], -1, (0,255,255), 3)
  17. cv2.putText(img, '多边形', (x, y),
  18. cv2.FONT_HERSHEY_SIMPLEX, 0.6, (255, 255, 0), 2)
  19. cv2.imshow("多边形", img)
  20. cv2.waitKey(0)
  21. cv2.destroyAllWindows()

我们将使用以下图片作为 输入文件 此程序 −

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

当您运行上述Python程序时,它将产生以下输出窗口−

检测到的轮廓数量: 3

我们得到以下 输出 窗口 −

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

为帮助更多对人工智能感兴趣的小伙伴们能够有效的系统性的学习以及论文的研究,小编特意制作整理了一份人工智能学习资料给大家,整理了很久,非常全面。

大致内容包括一些人工智能基础入门视频和文档+AI常用框架实战视频、计算机视觉、机器学习、图像识别、NLP、OpenCV、YOLO、pytorch、深度学习与神经网络等学习资料、课件源码、国内外知名精华资源、以及AI热门论文等全套学习资料。


需要以上这些文中提到的资料,请点击此处→【人工智能全套完整VIP资料】即可免费获取。

看完三件事❤️

  • 如果你觉得这篇内容对你还蛮有帮助,我想邀请你帮我三个小忙:
  • 点赞,转发,有你们的『点赞和评论』,才是我创造的动力。
  • 关注作者公众号 『 AI技术星球 』,不定期分享原创知识。
  • 关注后回复【007】扫码即可获取学习资料包。
  • 同时可以期待后续文章ing
    声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/264034
推荐阅读
相关标签