gpt4 book ai didi

python - OpenCV - 检测矩形或五边形

转载 作者:行者123 更新时间:2023-11-28 05:38:28 31 4
gpt4 key购买 nike

如何使用 OpenCV 从图像中检测矩形或五边形?我有很多名片的图片,我必须检测它们的边。名片实际上是矩形的,但有时名片的角被裁剪了。我已经尝试过 HoughLinesP() 函数,但它只是找到线。

我必须检测图片上方的形状,这意味着我需要检测名片边缘,而不管形状是矩形还是五边形,并且只需要从图像中裁剪名片对象。


预期结果:

Expected Result

最佳答案

您可以按照以下步骤操作:

  1. 使用 findContours 查找图像中的轮廓。

  2. 执行 approxPoly 以获得图像中存在的所有轮廓的多边形形状。

  3. 检查近似轮廓大小(多边形的边数):

    如果边数是4 => 矩形

    如果边数是5 =>五边形

代码是用 python 编写的,但应该很容易转换为 C++:

import cv2

gray = cv2.imread('img.png',0)

ret,thresh = cv2.threshold(gray,127,255,1)

contours,h = cv2.findContours(thresh,1,2)

for cnt in contours:
approx = cv2.approxPolyDP(cnt,0.01*cv2.arcLength(cnt,True),True)
if len(approx)==5:
print "pentagon"
elif len(approx)==4:
print "rectangle"

关于python - OpenCV - 检测矩形或五边形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37691479/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com