Skin Detection Algorithm
An image is scanned n stored in 80×80 pixel array, A (say).
This array is then passed through a RGB threshold function to get three intensity images in Red , Green n Blue.
Rij = Arij - Tr
Gij = Agij - Tg
Bij = Abij - Tb
Here Rij, Gij and Bij are the red, green and blue pixel intensity values at image co-ordinates (i,j)
Arij, Agij and Abij are the red green and blue pixel intensities of the raw image
Tr, Tg and Tb are threshold values for Red Blue n Green respectively.
If the resulting values of Rij, Gij or Bij are less than zero then they are set to zero.
Now a new image S is calculated from the three images calculated.
Sij = 2Rij - (Gij + Bij)
Here Sij represents the likelihood of a skin tone colour at coordinates (i,j).
Now a new image I is calculated based upon the skin tone likelihood and the original raw image. If the algo finds a skin tone then it copies the raw image pixel intensity
value to the new image.
If ( Sij>0 and Prij + Pgij + Pbij < Tw ){
Iij = (Prij + Pgij + Pbij) / 3
}
Here Tw is a threshold value used to eliminate bright white colours(gamma) from the image.
So now we have an image I in which on Skin recognised parts are visible … Not bad start at all .. Let go further …
Leave a Reply