HoughLinesP将非常相似的行合并为一个

时间:2017-07-04 14:40:47

标签: opencv opencv3.0 houghlinesp

我的图像是一张简单的图片,我想提取线条的终点。但是,还有其他线条重叠,因此,我的线条有“间隙”。在他们中。 Binary Image of 10 lines

我正在尝试使用HoughLinesP来提取这十行的参数化,虽然视觉效果合理,但仍然给出了43条单独的行。 HoughLinesP representation

我已经尝试平滑线条,线条的骨架表示,重新绘制每条线之后的线条,我现在正在使用countours。我已经调整了我的参数(行长,最大间隙,阈值等等),我无法将其减少到十行。在我当前的代码中,我从自身中减去第一个图像以创建一个新的黑色空间来绘制我的HoughLines,可能不是最有效的,但它有效。这是我的代码:

    import numpy as np
    import cv2

    img = cv2.imread('masked.png')

    gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
    edges = cv2.Canny(gray,50,150,apertureSize = 3)

    minLineLength = 100

    img2 = cv2.subtract(img, img)

    lines = cv2.HoughLinesP(gray,1,np.pi/180,10,minLineLength,maxLineGap=100)

    print(len(lines))

    for n in range(len(lines)):
        for x1,y1,x2,y2 in lines[n]:
            cv2.line(img2,(x1,y1),(x2,y2),(0,255,0),1,4)

    cv2.imshow('result.png', img2)

    cv2.waitKey(0)
    cv2.destroyAllWindows()

是否有另一种方法可以让我填补这些空白并拉出十个线方程?我现在正在使用Python,OpenCV和Numpy。

0 个答案:

没有答案