我的任务是找到直线(startX,startY,endX,endY)和矩形(4行)的坐标。这里是输入文件:
我使用下一个代码:
img = cv2.imread(image_src)
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
ret, thresh1 = cv2.threshold(gray,127,255,cv2.THRESH_BINARY)
edges = cv2.Canny(thresh1,50,150,apertureSize = 3)
minLineLength = 100
maxLineGap = 10
lines = cv2.HoughLinesP(edges,1,np.pi/180,10,minLineLength,maxLineGap)
print(len(lines))
for line in lines:
cv2.line(img,(line[0][0],line[0][1]),(line[0][2],line[0][3]),(0,0,255),6)
从上一张图片你可以看到大量的小红线。
问题:
上面重写的代码,速度快了30%,更短,而且更容易理解:
计算距离的部分可以改为
但在最后你会得到稍微不同的线条。
我终于完成了管道:
请查找代码和结果:
还有572行。在我的“合并线段”之后,我们只有89行
相关问题 更多 >
编程相关推荐