Лаборатория HSV — подобрать цвет и маску · Теория: HSV и ползунки

← Все задачи с изображениями ·

HSV: красный через два диапазона

Условие

Выделите красно-оранжевые участки мяча. Красный находится по обе стороны границы шкалы H: одной маски недостаточно. Прочитайте input.png и преобразуйте BGR в HSV (OpenCV: H от 0 до 179, S и V от 0 до 255). Диапазоны: H=0…15, S=120…255, V=60…255; H=170…179, S=120…255, V=60…255. Все границы включительны. Объедините два диапазона логическим ИЛИ. Сохраните одноканальную маску uint8: подходящий пиксель — 255, остальные — 0 в output.png без изменения размеров. Проверка сравнивает пиксели на трёх версиях фотографии. На своём изображении можно экспериментировать отдельно.

Прочитайте входной файл через cv2.imread('input.png') и сохраните результат командой cv2.imwrite('output.png', result). Используйте также numpy и PIL. Результат появится ниже; cv2.imshow() в этой среде не используется.

Код Python

import cv2
import numpy as np

image = cv2.imread('input.png')

# Выделите нужные пиксели и сохраните output.png

Запуск использует выбранное изображение. Проверка решения всегда выполняется на учебных тестах.

Входное изображение

Файл используется для запуска, но не заменяет учебные тесты.

Входное изображение для обработки

Результат обработки

Запустите код, чтобы увидеть результат.

Вывод программы


    
    
    

Нужна подсказка?

Подсказка 1

Постройте две маски через inRange: одну для начала шкалы оттенка, другую для её конца.

Подсказка 2

Объедините маски операцией cv2.bitwise_or. Не складывайте uint8-маски: при пересечении диапазонов возможно переполнение.