|
Cb =int(-0.16874*double(R) -0.33126*double(G) +0.50000*double(B)); // 푸른색의 강도를 나타냄
Cr =int( 0.50000*double(R) -0.41869*double(G) -0.08131*double(B)); // 붉은색의 강도를 나타냄
Cb = Cb + 127; // 최소값이 -127 때문에 +127을 해준다
Cr = Cr + 127;
// 사람의 눈이 색상보다 밝기에 민감하다는 사실에 착안한 방식
// Y : 휘도 신호, V : 휘도 신호와 청색 성분의 차
Y = 0.3*R + 0.59*G + 0.11*B;// Y >= 80 눈 코 잎 잘 잡힘
V = (R-Y) * 0.877; // V >= 100 눈 코 잎 잘 잡힘
//위의 영상을 나타내주고 아래 화면의 살색 계열의 색상을 픽셀단위로 뿌려주기
// 작업입니다.
if(Y >= 80 && V > 6)
{
if(Cb > 76 && Cb < 128) // 살색을 잡는 Cb 값의 최적의 조건을 검사
{
if(Cr > 132 && Cr < 174) // 살색을 잡는 Cr 값의 최적의 조건을 검사
{
Face->Canvas->Pixels[x][y] = clWhite; // 살색 계열 이라면 cl White 를 통하여 흰색을 나타내줍니다.
}
else Face->Canvas->Pixels[x][y] = clBlack; //나머지색은 모두 블랙처리하여 살색을 제외한 나머지 색상들은 모두 블랙처리합니다.
}
else Face->Canvas->Pixels[x][y] = clBlack; //아래 과정은 위의 과정과 동일합니다.
}
else Face->Canvas->Pixels[x][y] = clBlack;
}
}
이것이 사람의 살색을 인식하는 코드인데
혹시 파란색 을 인식하게할려면 어디를 고쳐야하나요?
|