HSV: Луна на вечернем небе
Вы решили задачу. Теперь можно сравнить подходы.
Отделите светлые малонасыщенные участки Луны от неба. Здесь важнее насыщенность S и яркость V, чем оттенок H.
Авторский разбор для локальной версии на основе условия задачи. Это не выгрузка чужих посылок и не официальное решение исходного сайта.
Ваше принятое решение
Рекомендуемое решение: Цветовая маска HSV
Преобразуем BGR в HSV, проверяем включительные границы каналов и сохраняем маску 0/255.
import cv2
import numpy as np
image = cv2.imread('input.png')
hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
mask0 = cv2.inRange(hsv, (0, 0, 120), (179, 90, 255))
mask = mask0
result = mask
cv2.imwrite('output.png', result)
Время: O(H × W). Память: O(H × W).
На что обратить внимание
- Не путайте RGB с BGR: cv2.imread возвращает BGR.
- У OpenCV оттенок H заканчивается на 179, не на 255.
- Цветовая маска выделяет пиксели, а не распознаёт предметы.
Рекомендация учитывает сложность и читаемость для этой задачи. Единственного самого быстрого решения для всех размеров входа и всех компьютеров может не быть.