We recorded a video which includes a hand in front of a black background and fingers are opening one by one on that video. We use this video as an input to the simulink blocks diagram that we built up to count open fingers. Firtsly we convert the RGB(red-green-blue) video into the gray scale using Color Space Conversion block. Autotreshold is convert the intensity image to binary image. We need to do that because to do other implementation we have to work on binary image, so we can find the hand (see figures’ part3). To eleminate the noise on binary image we use a median filter. The Median Filter block replaces the central value of an M-by-N neighborhood with its median value. If the neighborhood has a center element, the block places the median value there. The filtered binary image go into open, bottom-hat and close blocks. These blocks are used for morphological operations on binary or intensity image. The Opening block performs an erosion operation followed by a dilation operation using a predefined neighborhood or structuring element. We used the Bottom-hat block to perform bottom-hat filtering. Bottom-hat filtering is the equivalent of subtracting the input image from the result of performing a morphological closing operation on the input image. The Closing block performs a dilation operation followed by an erosion operation using a predefined neighborhood or structuring element(see figure1 for output of closing). After these morphological operations we again apply median filter to eleminate the morphological operations’ noise. The Label block labels the objects in a binary image, BW, where the background is represented by pixels equal to 0 (black) and objects are represented by pixels equal to 1 (white). At the Label port, the block outputs a label matrix that is the same size as the input matrix. At the Count port, the block outputs a scalar value that represents the number of labeled objects. If we do not use filtering again before the Label block, it will count the number of noises also as you will see in the figures below.

Figure 1: Labeled image without filtering
The following autotreshold block makes the labels visible(see figures’ part2). We use the Blob Analysis block to calculate statistics for labeled regions in a binary image. The Bbox output is 4-by-N matrix of bounding box coordinates, where N is the number of blobs. We use that coordinates on Draw Shape block. Draw Shape block draws rectangles in our application. It has two input which are Image and Pts. Image input gets the image that we draw rectangles on and Pts input gets the coordinates of the rectangles. The Insert Text block writes the number of finger that is being counted on the display(see figures’ part1).
RESULTS





SIMULINK SCHEMATIC
sir , the simulink schematic you have posted is not clear .Can u please post a better schematic or mail it to the following address dsp.thelord@gmail.com .
YanıtlaSilWe really need it for our project ..thanks in advance.
Hello,
YanıtlaSilI was wondering if you could talk a moment about the auto threshold block. The current method I am using for creating a black/white image of a hand works, but is very slow and I would like to try the auto threshold block in hopes that it would be faster. Could you tell me what settings you set the Auto Threshold block at in order to get a black/white skin image?
Great project by the way! You may reach me at nexusx6+sim at gmail dot com.
hello,
YanıtlaSilits not properly visible.what is the functionality of inclate the wheel?
Hello if any one has properly visible image of this project please try to share to 5lightsfive@gmail.com
YanıtlaSilcan you please send the simulink block diagram to nbvmahesh67@gmail.com
YanıtlaSilunable to find isolate the wheel block in the above picture
YanıtlaSil