Лаборатория HSV — подобрать цвет и маску · Теория: HSV и ползунки
Читайте изображения, меняйте цвета, находите границы и проверяйте результат прямо в браузере. В среде выполнения доступны OpenCV, NumPy и Pillow.
Прочитайте input.png через cv2.imread и переведите изображение из BGR в оттенки серого с помощью cv2.COLOR_BGR2GRAY. Сохраните результат в output.png без изменения размеров.
Открыть задачуСоздайте цветной негатив: замените каждое значение каждого канала v на 255 − v. Сохраните размеры и запишите результат в output.png.
Открыть задачуУменьшите ширину и высоту изображения вдвое с округлением вниз. Используйте cv2.resize с интерполяцией cv2.INTER_NEAREST. Запишите результат в output.png.
Открыть задачуПоверните цветное изображение на 90 градусов по часовой стрелке. Используйте cv2.rotate и cv2.ROTATE_90_CLOCKWISE. Сохраните результат в output.png.
Открыть задачуСначала переведите BGR-изображение в оттенки серого через cv2.COLOR_BGR2GRAY. Примените cv2.threshold с порогом 127, максимумом 255 и типом cv2.THRESH_BINARY: значения строго больше 127 становятся 255, остальные — 0. Сохраните output.png.
Открыть задачуПримените к цветному изображению cv2.GaussianBlur с ядром (5, 5), sigmaX=0 и borderType=cv2.BORDER_DEFAULT. Сохраните output.png, сохранив размеры и три канала.
Открыть задачуПереведите BGR-изображение в серое через cv2.COLOR_BGR2GRAY. Найдите границы cv2.Canny с threshold1=100, threshold2=200, apertureSize=3, L2gradient=False. Сохраните одноканальное изображение границ в output.png.
Открыть задачуИспользуйте срез NumPy, чтобы вырезать центральный фрагмент: строки от height // 4 включительно до 3 * height // 4 не включительно, столбцы от width // 4 включительно до 3 * width // 4 не включительно. Сохраните цветной фрагмент в output.png.
Открыть задачуВыделите синие участки колпачка маркера на фотографии стола. Прочитайте input.png и преобразуйте BGR в HSV (OpenCV: H от 0 до 179, S и V от 0 до 255). Диапазоны: H=100…140, S=100…255, V=50…255. Все границы включительны. Сохраните одноканальную маску uint8: подходящий пиксель — 255, остальные — 0 в output.png без изменения размеров. Проверка сравнивает пиксели на трёх версиях фотографии. На своём изображении можно экспериментировать отдельно.
Открыть задачуОтделите светлые малонасыщенные участки Луны от неба. Здесь важнее насыщенность S и яркость V, чем оттенок H. Прочитайте input.png и преобразуйте BGR в HSV (OpenCV: H от 0 до 179, S и V от 0 до 255). Диапазоны: H=0…179, S=0…90, V=120…255. Все границы включительны. Сохраните одноканальную маску uint8: подходящий пиксель — 255, остальные — 0 в output.png без изменения размеров. Проверка сравнивает пиксели на трёх версиях фотографии. На своём изображении можно экспериментировать отдельно.
Открыть задачуВыделите голубые и синие участки неба; белые облака с низкой насыщенностью не должны попасть в эту маску. Прочитайте input.png и преобразуйте BGR в HSV (OpenCV: H от 0 до 179, S и V от 0 до 255). Диапазоны: H=90…130, S=50…255, V=50…255. Все границы включительны. Сохраните одноканальную маску uint8: подходящий пиксель — 255, остальные — 0 в output.png без изменения размеров. Проверка сравнивает пиксели на трёх версиях фотографии. На своём изображении можно экспериментировать отдельно.
Открыть задачуПолучите маску зелёных и жёлто-зелёных участков яблок. Красные бока и тёмный фон останутся чёрными: цветовая маска не обязана выделять яблоко целиком. Прочитайте input.png и преобразуйте BGR в HSV (OpenCV: H от 0 до 179, S и V от 0 до 255). Диапазоны: H=25…85, S=80…255, V=40…255. Все границы включительны. Сохраните одноканальную маску uint8: подходящий пиксель — 255, остальные — 0 в output.png без изменения размеров. Проверка сравнивает пиксели на трёх версиях фотографии. На своём изображении можно экспериментировать отдельно.
Открыть задачуВыделите красно-оранжевые участки мяча. Красный находится по обе стороны границы шкалы 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 без изменения размеров. Проверка сравнивает пиксели на трёх версиях фотографии. На своём изображении можно экспериментировать отдельно.
Открыть задачуСохраните исходные BGR-цвета зелёных участков яблок, а остальные пиксели сделайте чёрными. В этой задаче результат — цветная фотография, а не чёрно-белая маска. Прочитайте input.png и преобразуйте BGR в HSV (OpenCV: H от 0 до 179, S и V от 0 до 255). Диапазоны: H=25…85, S=80…255, V=40…255. Все границы включительны. Сохраните цветной результат в output.png без изменения размеров. Проверка сравнивает пиксели на трёх версиях фотографии. На своём изображении можно экспериментировать отдельно.
Открыть задачу