肤色检测输出结果中有许多瑕疵,待于进一步处理(如:滤波操作.....)。在此贴出几种图像肤色检测相关代码,供大家参考。
第一种:RGB color space
// skin region location using rgb limitation
void ImageSkin::ImageSkinRGB(IplImage* rgb,IplImage* _dst)
{
assert(rgb->nChannels==3&& _dst->nChannels==3);
static const int R=2;
static const int G=1;
static const int B=0;
IplImage* dst=cvCreateImage(cvGetSize(_dst),8,3);
cvZero(dst);
for (int h=0;h<rgb->height;h++) {
unsigned char* prgb=(unsigned char*)rgb->imageData+h*rgb->widthStep;