Есть проект, над которым я работаю, для которого требуется обнаружение белого цвета, после некоторых исследований я решил использовать скрытое изображение RGB для изображения HSL и удерживать яркость, чтобы получить белый цвет, я работаю с openCV, поэтому интересно, есть ли способ сделать это. введите здесь описание изображения
Как вы удерживаете легкость с помощью HSL на OpenCV?
comment
в opencv это HLS, и обычно изображения загружаются как BGR в OpenCV. взгляните на cvtColor.
- person api55   schedule 10.01.2018
comment
Да, мне удалось преобразовать BGR в HLS, но я застрял в том, как отфильтровать пиксель со слишком низким атрибутом яркости, чтобы изображение осталось с оттенком белого цвета.
- person Minh Cht   schedule 10.01.2018
comment
используйте разделение для разделения каналов (или с помощью нарезки numpy), затем используйте порог в L (второй канал), и вы получите с ним маску, а затем примените маску к исходному изображению. Если вы разместите пример изображения, я могу попытаться дать полный ответ
- person api55   schedule 10.01.2018
Ответы (1)
Вы можете сделать это, выполнив 4 простых шага:
Конвертировать HLS
img = cv2.imread("HLS.png")
imgHLS = cv2.cvtColor(img, cv2.COLOR_BGR2HLS)
Получить L-канал
Lchannel = imgHLS[:,:,1]
Создайте маску
#change 250 to lower numbers to include more values as "white"
mask = cv2.inRange(Lchannel, 250, 255)
Применить маску к исходному изображению
res = cv2.bitwise_and(img,img, mask= mask)
Это также зависит от того, что для вас белое, и вы можете изменить значения :) Я использовал inRange в канале L, но вы можете сохранить один шаг и сделать
mask = cv2.inRange(imgHLS, np.array([0,250,0]), np.array([255,255,255]))
вместо строк:
Lchannel = imgHLS[:,:,1]
mask = cv2.inRange(Lchannel, 250, 255)
Это короче, но сначала я сделал это другим способом, чтобы сделать его более явным и показать, что я делаю.
Изображение:
Результат:
Результат выглядит почти как маска (почти бинарная), но в зависимости от вашей нижней границы (я выбрал 250) вы можете получить даже почти белые цвета.
person
api55
schedule
10.01.2018