我正在使用查找轮廓方法,然后使用fitline函数近似一条线。
以下是代码:
img = cv2.imread('lines.jpg')
imgray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
ret,dst = cv2.threshold(imgray,127,255,0)
im2,cnts, hierarchy =cv2.findContours(dst,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
rows,cols = img.shape[:2]
[vx,vy,x,y] = cv2.fitLine(cnts[0], cv2.DIST_L2,0,0.01,0.01)
lefty = int((-x*vy/vx) + y)
righty = int(((cols-x)*vy/vx)+y)
cv2.line(img,(cols-1,righty),(0,lefty),(0,255,0),2)
print img.shape[:2]
cv2.imshow('image1',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
我原本希望它能够检测图像中的每一个黑色条纹,但它只检测了最底部的第一行。
cv2.Houghlines
。Scipy也有一个实现。 - chase