顔(または任意の画像!)の肌の色を検出するには、デフォルトのRGB色空間ではなく、HSV色空間(またはLABなどのより複雑な色空間)を使用することを強くお勧めします。RGB値は強いまたは薄暗い照明や影など。HSVは照明の違いを処理するのにはるかに優れており、使いやすい色値を提供します。
HSVは、色相-彩度-値を意味します。ここで、色相は色です。例:色相0は赤で、色相50は緑の場合があります。彩度は灰色であるため、0に近い彩度値は鈍いまたは灰色に見えることを意味しますが、彩度値200は非常に強い色になる可能性があります(たとえば、色相が0の場合は赤)。また、値はピクセルの明るさであるため、0は黒、255は白です。
したがって、ヒストグラムを使用するかどうかはあなた次第ですが、どちらの方法でも、最初に画像をHSVに変換してから、ヒストグラムまたは単純な検索を使用して最も一般的な色相値を探すことができます。色相の値は、必要な肌の色または色になります。また、もう少し高度なものにしたい場合は、彩度と明るさの値を考慮して、色ではなく実際に黒か白か灰色かを判断できます。
HSVチュートリアルページのOpenCVRGBからHSVへの変換情報がさらにあります。
http://www.shervinemami.co.cc/colorConversion.html