Can I use blob detection to detect my hand?

3 Ansichten (letzte 30 Tage)
Anjana Rao
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!

Akzeptierte Antwort

Image Analyst
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
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.
Anjana Rao
Anjana Rao am 17 Feb. 2014
Okay! Thank you again!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

zhang
zhang am 25 Apr. 2014
mark

Kategorien

Mehr zu Image Data Workflows 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!

Translated by