检测二进制图像上的霍夫线

时间:2016-12-21 15:12:20

标签: opencv

我正在使用带有这些参数的cv2.houghlines来检测线条。对于第一个图像是颜色,我没有问题检测线,但第二个是灰度,它检测没有线。我玩了参数,但没有快乐。

 rho = 1 # distance resolution in pixels of the Hough grid
 theta = np.pi/180 # angular resolution in radians of the Hough grid
 threshold = 28 #28 #200
 min_line_length = 40 #80 #220 #minimum number of pixels making up a line
 max_line_gap = 5


 lines = cv2.HoughLinesP(img, rho, theta, threshold, np.array([]), minLineLength=min_line_len, maxLineGap=max_line_gap)

这就是我所说的

if len(image.shape) >= 3:
    gray = cv2.cvtColor(image, cv2.COLOR_RGB2GRAY)
else:
    gray = image

这些是两张图片:

2 个答案:

答案 0 :(得分:0)

请向我们展示完整的代码,因为我们不知道您怎么知道找不到任何行。你打印出可变线的大小了吗?在c ++中它将是:

cout << lines.size() << endl;

或者您是否尝试使用颜色值Scalar(255,0,0)将线条直接绘制到灰色图像?

答案 1 :(得分:0)

我发现了我的问题,我将彩色图像乘以255而不是灰色合并图像。我用颜色一个做了,因为它不能以其他方式显示,因为显示的加里一个我没想到做同样的事情。