Для определения тона кожи лица (или любого изображения!) Я настоятельно рекомендую использовать цветовое пространство HSV (или более сложное цветовое пространство, такое как LAB), а не цветовое пространство RGB по умолчанию, поскольку значения RGB будут различатьсямного зависит от сильного или тусклого освещения, теней и т. д. Принимая во внимание, что HSV намного лучше справляется с различиями в освещении, и он дает вам простое в использовании значение цвета.
HSV означает значение Hue-Saturation-Value, где Hueэто цвет.Например: оттенок 0 - красный, а оттенок 50 - зеленый.Насыщенность - это серый цвет, поэтому значение насыщенности около 0 означает, что оно выглядит тусклым или серым, в то время как значение насыщенности 200 может быть очень сильным цветом (например, красный, если оттенок равен 0).Значение - это яркость пикселя, поэтому 0 - это черный, а 255. - это белый.
Так что, используете ли вы гистограмму или нет, решать вам, но в любом случае сначала нужно преобразовать изображение в HSV, а затемможно найти наиболее распространенное значение оттенка, используя гистограмму или просто поиск.Значением оттенка будет желаемый оттенок или цвет кожи.И если вы хотите сделать его немного более продвинутым, вы можете принять во внимание значения насыщенности и значения яркости, чтобы решить, является ли он на самом деле черным, белым или серым, а не цветным.
У меня естьнемного больше информации о преобразовании OpenCV RGB в HSV на моей странице учебника HSV по адресу:
http://www.shervinemami.co.cc/colorConversion.html