如何使用OpenCV从图像中检测矩形或五边形?我有名片的照片,我必须检测它们。我试过HoughLinesP()
函数,但它只是查找线条。OpenCV - 矩形或五边形的检测
我必须检测图片上方的形状并扩展图像以显示矩形的相交点。
如何使用OpenCV从图像中检测矩形或五边形?我有名片的照片,我必须检测它们。我试过HoughLinesP()
函数,但它只是查找线条。OpenCV - 矩形或五边形的检测
我必须检测图片上方的形状并扩展图像以显示矩形的相交点。
你可以按照下面的步骤:
查找使用findContours
图像中的轮廓。
执行approxPoly
以获取图像中存在的所有轮廓的多边形形状。
检查逼近轮廓尺寸(边数在多边形):
如果边的数目为4 =>矩形
如果边的数目为5 =>五角
的代码是蟒蛇,但应该很容易转换为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"
关于如何检测图像中的矩形的很好的例子。检查这link
_“和它的发现只是线”_这是线的Hough变换的目的。请显示一些图像和一些代码,并查看[问] – Miki