matlab中的手势识别

时间:2013-12-17 20:56:37

标签: matlab matlab-guide gesture-recognition

我在MATLAB中做手势识别。我需要关于手指检测的帮助。我已经使用肤色检测检测到手,但不知道如何找到手指的数量。我已经使用bwboundary在图像中进行边界检测,但它仅在图像没有错误时才有效。也就是说,在皮肤检测代码中标记手区域的轻微干扰将导致许多边界。如果有人引导我朝着正确的方向前进,我将非常感激。

image after skin is detected and marked我使用bwboundary来查找边界。我也使用了imfill,但它对我没什么帮助。

以下是代码

%Read the image, and capture the dimensions
img_orig = imread('hand.jpg');
height = size(img_orig,1);
width = size(img_orig,2);

%Initialize the output images
out = img_orig;
bin = zeros(height,width);

%Convert the image from RGB to YCbCr
img_ycbcr = rgb2ycbcr(img_orig);
Cb = img_ycbcr(:,:,2);
Cr = img_ycbcr(:,:,3);

%Detect Skin
[r,c,v] = find(Cb>=77 & Cb<=127 & Cr>=133 & Cr<=173);
numind = size(r,1);

%Mark Skin Pixels
for i=1:numind
    out(r(i),c(i),:) = [0 0 255];
    bin(r(i),c(i)) = 1;
end
imshow(img_orig);
figure; imshow(out);
figure; imshow(bin);

%now for count of fingers

img2=im2bw(bin,graythresh(bin));
imshow(img2)
img2=~img2;
imshow(img2)
B = bwboundaries(img2);
imshow(img2)
text(10,10,strcat('\color{green}Objects Found:',num2str(length(B))))
hold on

0 个答案:

没有答案