резкий удар и порог - PullRequest
       49

резкий удар и порог

0 голосов
/ 13 мая 2019

Я использую opencv Houghlinesp для обнаружения линий на парковке.Вот исходное изображение

Когда я сделал грубое преобразование-p для обнаружения линий, я получил окончательное изображение, подобное этому.

Оно обнаружило пустые места.Любые идеи, как эти шумные линии на верхней части автомобилей могут быть удалены?Или любое направление на альтернативные алгоритмы или подходы высоко ценится.

img = cv.imread('Parking-Lot.jpg')
threshold=100
minLineLength = 60
rho=2
maxLineGap=20
theta = np.pi/180
edges = cv.Canny(img, 100, 200)
lines = cv.HoughLinesP(edges, rho, theta, threshold, np.array([]), minLineLength =minLineLength , maxLineGap=maxLineGap)
 for i in range(len(lines)):
    for line in lines[i]:
        cv.line(img, (line[0],line[1]), (line[2],line[3]), (0,255,0), 2)
cv2.imwrite("lines.jpg", img)

1 Ответ

0 голосов
/ 13 мая 2019

Вы можете удалить большую часть шума, установив порог вашего изображения, прежде чем применять функцию определения края.Таким образом, вы удалите (большинство) автомобилей и сохраните интересующие вас пустые линии:

import cv2

img = cv2.imread('Parking-Lot.jpg')
threshold=100
minLineLength = 60
rho=2
maxLineGap=20
theta = np.pi/180

# here you convert the image to grayscale and then threshhold to binary
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
ret,thresh = cv2.threshold(gray,180,255,cv2.THRESH_BINARY)

# continue with the threshholded image instead
edges = cv2.Canny(thresh, 100, 200)
lines = cv2.HoughLinesP(edges, rho, theta, threshold, np.array([]), minLineLength =minLineLength , maxLineGap=maxLineGap)
for i in range(len(lines)):
  for line in lines[i]:
     cv2.line(img, (line[0],line[1]), (line[2],line[3]), (0,255,0), 2)
cv2.imwrite("lines.jpg", img)

Это даст вам более чистый результат:

enter image description here

Не стесняйтесь экспериментировать с пороговыми параметрами;вам нужно будет найти порог, который исключает большинство автомобилей, сохраняя при этом все линии, которые вы хотите обнаружить.

...