Я новичок в обоих python
и opencv
и я столкнулся с проблемой при обнаружении линий в следующем изображении, который имеет полосы черных линий, проложенных по земле:Как правильно определить линии с помощью преобразования HoughLines в openCV python?
Я использовал Следующий код:
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
edges = cv2.Canny(gray,50,150,apertureSize = 3)
print img.shape[1]
print img.shape
minLineLength = img.shape[1]-1
maxLineGap = 10
lines = cv2.HoughLinesP(edges,1,np.pi/180,100,minLineLength,maxLineGap)
for x1,y1,x2,y2 in lines[0]:
cv2.line(img,(x1,y1),(x2,y2),(0,255,0),2)
но она не может обнаружить линии точно и только рисует зеленую линию на первой черной полосой от дна, которая даже не покрывает всю линию,
также,
, пожалуйста, предложите способ получения y
сердечники каждой линии.
Эти линии не очень прямые. Я обнаружил, что мой собственный код для преобразования Hough дал мне больше информации, чем использование консервированного решения (поскольку этот вопрос, похоже, касается понимания). См. Простой пример формообразования, например, Hough. здесь: https://nabinsharma.wordpress.com/2012/12/26/linear-hough-transform-using-python/ Если вы визуализируете результат преобразования самостоятельно, вы быстро увидите, играет ли качество входных строк роль (более широкий пик в пространстве преобразования, менее ясный, где лежит максимум). – roadrunner66