это моя попытка определить цвет кожи с помощью opencv2 после прочтения этого крутого учебник.
- смирись с хааром
- использовать двумерную гистограмму ROI лица (оттенок и насыщенность) для моделирования цвета кожи,
calcHist
- используйте эту модель для оценки нового изображения с помощью
calcBackProject
- применить фильтры
dilate
,erode
,blur
к маске результата.
в лучшем случае это:
но нет фона и света (только рассеянный солнечный свет в комнате)
в других случаях я получаю действительно худший результат, много шума на фоне, пальцы рук черные или зашумлены и т.д. и когда я пытаюсь получить маску 0-1 для маски только для кожи ... окончательный результат не так хорош.
возможно, я могу применить другие фильтры, такие как порог, или другой метод (какие-то другие методы кластеризации или методы заполнения? Я искал floodfill
, но у меня нет отправной точки) или объединить несколько гистограмм (например, гистограмму rgb).. но как?
все виды мозгового штурма приветствуются.