我正在使用带有这些参数的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
答案 0 :(得分:0)
请向我们展示完整的代码,因为我们不知道您怎么知道找不到任何行。你打印出可变线的大小了吗?在c ++中它将是:
cout << lines.size() << endl;
或者您是否尝试使用颜色值Scalar(255,0,0)将线条直接绘制到灰色图像?
答案 1 :(得分:0)
我发现了我的问题,我将彩色图像乘以255而不是灰色合并图像。我用颜色一个做了,因为它不能以其他方式显示,因为显示的加里一个我没想到做同样的事情。