OpenCV HoughLines

时间:2018-12-17 21:02:50

标签: python opencv

目前,我正在从事一个业余时间项目,该项目包括将视频供稿解析为HTML模板。为了区分DOM的类型,我在矩形中使用4条不同角度的线(请忽略三角形和圆形),但是要计算它们的角度,我必须首先找到这些线。 OpenCV的HoughLinesP派上了用场,但无论出于什么原因,它只能找到几行。

这是一些示例图像,在左侧是源图像(在其上画有找到的线,显示为绿色),在左侧是经过处理的图像。首先,将源转换为灰度,然后在其上运行Canny。 (我也尝试过使其模糊)

Sample images

我认为仅检测到少量行。这使我质疑阈值参数。当前,它们是:

gray = cv2.cvtColor(src, cv2.COLOR_BGR2GRAY)
canny = cv2.Canny(gray, 50, 150, apertureSize=3)

然后进行线路检测:

rho = 1.5
theta = pi / 180.
threshold = 60
min_line_length = 100
max_line_gap = 10
lines = cv2.HoughLinesP(lineimage, rho, theta, threshold, min_line_length, max_line_gap)

请注意,我只在具有父级的组件上运行边缘/线检测,这就是为什么在最外层的组件上没有检测到线的原因。

我做错什么了吗?我的参数离电网了吗?如果有任何改进建议,我将不胜感激!

提前谢谢!

0 个答案:

没有答案