Преобразование изображения в двоичный файл не показывает белые линии футбольного поля - PullRequest
0 голосов
/ 29 сентября 2019

Я вдохновлен следующим blogpost , однако я борюсь с шагом 2/3. Я хочу создать двоичное изображение из серого изображения, основываясь на пороговых значениях и в конечном итоге отображая все белые линии на изображении. Мой желаемый результат выглядит следующим образом:

enter image description here

Во-первых, я хочу изолировать футбольное поле с помощью цветовых порогов и морфологии.

def isolate_field(img):
   hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)

   # find green pitch
   light_green = np.array([40, 40, 40])
   dark_green = np.array([70, 255, 255])
   mask = cv2.inRange(hsv, light_green, dark_green)

   # removing small noises
   kernel = np.ones((5, 5), np.uint8)
   opening = cv2.morphologyEx(mask, cv2.MORPH_OPEN, kernel)

   # apply mask over original frame
   return cv2.bitwise_and(frame, frame, mask=opening)

Это дает следующий вывод:

enter image description here

Пока я доволен результатами, но из-за большоготень Я борюсь с обработкой изображения, когда я grayscale изображение. В результате бинарный порог основан на солнечной части в верхнем левом углу, а не на белых линиях вокруг футбольного поля.

enter image description here

Следуя методике, изложенной в руководствах , я получаю следующий вывод для простой пороговой настройки: enter image description here

и адаптивный порог:

enter image description here

и, наконец, пороговое значение Оцу:

enter image description here

Как я могу сделать так, чтобы белые линии стали более заметными? Я думал об обрезке кадра, поэтому я вижу только поле и затем использую маску на основе белого цвета. К сожалению, это не сработало.

Помощь очень ценится,

1 Ответ

0 голосов
/ 30 сентября 2019

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

enter image description here

Результат inRange - это двоичное изображение, которое вы хотите. Я ожидаю, что вы можете добиться лучших результатов с оригинальным изображением. Я использовал этот скрипт на изображении, что облегчает поиск хороших значений HSV.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...