Skin color detection problem
이전 댓글 표시
I have following code of skin detection but I am not understanding it completely. Is it HSV or Ycbcr or combined. Can anybody please tell me which type of this code is. And please explain me following code in brief.
I=imread('filename');
I=double(I);
[hue,s,v]=rgb2hsv(I);
cb = 0.148* I(:,:,1) - 0.291* I(:,:,2) + 0.439 * I(:,:,3) + 128;
cr = 0.439 * I(:,:,1) - 0.368 * I(:,:,2) -0.071 * I(:,:,3) + 128;
[w h]=size(I(:,:,1));
for i=1:w
for j=1:h
if 140<=cr(i,j) && cr(i,j)<=165 && 140<=cb(i,j) && cb(i,j)<=195 && 0.01<=hue(i,j) && hue(i,j)<=0.1
segment(i,j)=1;
else
segment(i,j)=0;
end
end
end
% imshow(segment);
im(:,:,1)=I(:,:,1).*segment;
im(:,:,2)=I(:,:,2).*segment;
im(:,:,3)=I(:,:,3).*segment;
figure,imshow(uint8(im));
Thanks in Advance.
댓글 수: 7
Yash
2012년 7월 9일
upload an image and check step by step u will get to knwo ti very easily
matlab_image
2012년 7월 10일
Karbala'a Unvi. Science
2013년 10월 14일
Dear Sir, I hope that you help me in skin detection by using the RGB image directly not transfer it in to the Cb Cr color model
Suresh Matyal
2014년 7월 11일
you have execute the all lines one by one in command prompt, I hope you definitely understand complete code well
zonaira afzal
2017년 11월 16일
I don't want to black the other area i want it to be same as in the original picture. what i should do? i want to dress up the a person, and don't want the dress to be apply on the hands feet, neck and head.. Kindly help me in this regard...
Ravindra Singh Pawar
2018년 9월 25일
Will you provide your reasearch paper please
Image Analyst
2018년 9월 25일
I seriously doubt whether that ad hoc code was the subject of any research paper. For papers on image processing, see http://www.visionbib.com/bibliography/contents.html - it has almost all of them.
채택된 답변
추가 답변 (1개)
Karbala'a Unvi. Science
2013년 10월 14일
0 개 추천
Dear Sir, I hope that you help me in skin detection by using the RGB image directly not transfer it in to the Cb Cr color model
댓글 수: 1
Image Analyst
2013년 10월 14일
Skin color cannot be segmented in RGB color space by simple thresholding. That's because the gamut in 3D color space is not a simple box shape that can be carved out by thresholding. At least not for skin in general, though you may be able to do it for one person's skin, but not for skin of multiple different people of different skin colors. If you were to do it in RGB space you'd have to employ a complicated ad hoc scheme like tree bagging or something. That's much more complicated than going to a different color space though it would probably do a better job than simple thresholding in YCbCr space because it can follow the curves of the boomerang-shaped gamut better. Of course using tree bagger would work in any space due to the nature of it, but it depends on a complete training set where you teach it with all skin colors you ever expect to encounter. I know it's very confusing but I hope that explains it better.
카테고리
도움말 센터 및 File Exchange에서 Image Segmentation에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!