Skin Color Validation - Harium/keel GitHub Wiki
For years I was looking for a good algorithm to identify color pixels.
First Attempt - Waterdrop
I started trying with waterdrop-like methods where you manually select the pixel and update the filter to find for the selected color.
Second Attempt - Looking for Blood
Thinking about the human skin I remembered something: all humans have blood. That was a good step forward. I made some tests to find pixels where red was bigger than blue or green pixels or has just a little difference. It works very well but wasn't perfect.
Third Attempt - Skin Graphic
I tried something desperate. I took 50 photos of people in webcam and using the waterdrop method, I selected many points some was skin and some don't.
To represent RGB values in a 2-dimensional Graphic I use 2 axis, R and B+(G-B). For my surprise, it has a kind of a pattern. Take a look:
Legend:
Red - it is not a skin color.
Blue - it is a sking color and the blue value is higher than green's.
Green - it is a sking color and the green value is higher than blue's.
See the code at: SkinColorStrategy