Can I use blob detection to detect my hand?
    9 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
    Anjana Rao
 am 14 Feb. 2014
  
    
    
    
    
    Beantwortet: zhang
 am 25 Apr. 2014
            I want to detect my hand from a video, and I've used the blob detection code from ImageAnalyst's file exchange to try and do it, but it won't work. Can someone tell me where I'm going wrong? Or suggest some other method for hand detection? Here's the code I've used:
clc;
clear all;
close all;
closepreview;
vid = videoinput('winvideo', 1, 'YUY2_640x480'); %specify the video adaptor
src = getselectedsource(vid);
vid.ReturnedColorspace = 'grayscale'; %define the color format to GRAYSCALE
vid.FramesPerTrigger = 5;
preview(vid); %preview the video object
while(1)
preview(vid); %preview the video object
currentimg=getsnapshot(vid); %capture the image of interest
grayImage = currentimg;
% Get the dimensions of the image. numberOfColorBands should be = 1.
[rows columns numberOfColorBands] = size(grayImage);
% Binarize the image.
binaryImage = im2bw(grayImage,0.58);
binaryImage = imfill(binaryImage, 'holes');
binaryImage = bwareaopen(binaryImage, 8000);
[labeledImage numberOfBlobs] = bwlabel(binaryImage, 8);
% Get all the blob properties.
blobMeasurements = regionprops(labeledImage, 'BoundingBox','Area');
allBlobAreas = [blobMeasurements.Area];
% Display the original gray scale image.
imshow(grayImage, []);
% Loop through all blobs, putting up Bounding Box.
hold on; % Prevent boxes from blowing away the image and prior boxes.
for k = 1 : numberOfBlobs
boundingBox = blobMeasurements(k).BoundingBox;   % Get box.
x1 = boundingBox(1);
y1 = boundingBox(2);
x2 = x1 + boundingBox(3) - 1;
y2 = y1 + boundingBox(4) - 1;
verticesX = [x1 x2 x2 x1 x1];
verticesY = [y1 y1 y2 y2 y1];
plot(verticesX, verticesY);
end
end
Thank you!
0 Kommentare
Akzeptierte Antwort
  Image Analyst
      
      
 am 14 Feb. 2014
        "it won't work" is not very descriptive. Can you attach an image/snapshot that it did not work for. You may need to adjust your threshold.
9 Kommentare
  Image Analyst
      
      
 am 16 Feb. 2014
				No one can say without looking at code. Put a stop in your catch statement and then investigate variables.
Weitere Antworten (1)
Siehe auch
Kategorien
				Mehr zu Image Preview and Device Configuration finden Sie in Help Center und File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!





