Can I use blob detection to detect my hand?
3 views (last 30 days)
Show older comments
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 Comments
Accepted Answer
Image Analyst
on 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 Comments
Image Analyst
on 16 Feb 2014
No one can say without looking at code. Put a stop in your catch statement and then investigate variables.
More Answers (1)
See Also
Categories
Find more on Image Data Workflows in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!