#include <cv.h>
#include <cxcore.h>
#include <highgui.h>
#include <iostream>
#include <iomanip>
#include <algorithm>
using namespace std;
using namespace cv;
int main()
{
char * ImageName = "hand.jpg";
//椭圆皮肤模型
Mat skinCrCbHist = Mat::zeros(Size(256,256),CV_8UC1);
ellipse(skinCrCbHist,Point(113,155.6),Size(23.4,15.2),43.0,0.0,360.0,
Scalar(255,255,255),-1);
IplImage * inputimage = cvLoadImage(ImageName,CV_LOAD_IMAGE_COLOR);
if(!inputimage)
return -1;
CvSize imgSize = cvSize(inputimage->width,inputimage->height);
Mat output = Mat::zeros(cvSize(inputimage->width,inputimage->height),CV_8UC1);
IplImage *imgY = cvCreateImage(imgSize,IPL_DEPTH_8U,1);
IplImage *imgCr = cvCreateImage(imgSize,IPL_DEPTH_8U,1);
IplImage *imgCb = cvCreateImage(imgSize,IPL_DEPTH_8U,1);
IplImage * imgYCrCb = cvCreateImage(imgSize,inputimage->depth,inputimage->nChannels);
cvCvtColor(inputimage,imgYCrCb,CV_BGR2YCrCb);
cvSplit(imgYCrCb,imgY,imgCr,imgCb,0);//获得图像的每个分量
CvScalar ycrcb;
for(int i =0;i<imgYCrCb->width;i++)
for(int j=0;j<imgYCrCb->height;j++)