Nano Hash - криптовалюты, майнинг, программирование

Преобразование изображения в двоичное не показывает белые линии футбольного поля

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

введите здесь описание изображения

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

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)

Это дает следующий результат:

введите здесь описание изображения

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

введите здесь описание изображения

Следуя методологии из учебников Я получаю следующий вывод для простого порогового значения: введите здесь описание изображения

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

введите здесь описание изображения

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

введите здесь описание изображения

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

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


  • Вы также можете проверить, работает ли cv2.equalizeHist(src) или нет. Судя по моему предыдущему опыту работы с МРТ-изображениями, он отлично работал у меня в таких ярких местах. 29.09.2019
  • Без исходного изображения мы не можем экспериментировать. 29.09.2019

Ответы:


1

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

введите здесь описание изображения

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

30.09.2019
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

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

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

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