当前位置: 代码迷 >> 综合 >> 肤色检测(Skin-Detection)
  详细解决方案

肤色检测(Skin-Detection)

热度:87   发布时间:2024-01-12 09:56:32.0

为了满足图像处理的要求,博主写个一个简单的肤色检测算法代码,原理和方法见下面代码:

 

//Author: samylee
//Contact email: ahuljx@126.com
#include "stdlib.h"
#include "stdio.h"
#include "cv.h"
#include "highgui.h"using namespace cv;void SkinRGB(Mat rgb)
{imshow("org", rgb);Size size;size.width = rgb.cols;size.height = rgb.rows;Mat dst = Mat::ones(size, CV_8UC3);for (int row = 0; row < size.height; row++){for (int col = 0; col < size.width; col++){int B = rgb.at<Vec3b>(row, col)[0];int G = rgb.at<Vec3b>(row, col)[1];int R = rgb.at<Vec3b>(row, col)[2];principleif ((R > 95 &&G > 40 &&B > 20 &&R - B > 15 &&R - G > 15)||(R > 200 &&G > 210 &&B > 170 &&abs(R - B) <= 15 &&R > B &&G > B)){dst.at<Vec3b>(row, col)[0] = B;dst.at<Vec3b>(row, col)[1] = G;dst.at<Vec3b>(row, col)[2] = R;}principle}}imshow("result", dst);cv::waitKey(0);
}int main()
{Mat img = imread("test2.jpg");SkinRGB(img);return 0;
}

 

 

 

 

 

效果图如下

原始图:

处理图:

 

 

任何问题请加唯一QQ2258205918(名称samylee)!

唯一VX:samylee_csdn

 

  相关解决方案