Genos

Genos was an academic project developed using C++ and OpenCV to detect gestures and hand movement through the webcam and perform accessibility related operations. The program included mute, increase/decrease volume, scroll through a document or close the current application. To achieve the intended solution I’ve used OpenCV that has the required image processing techniques.

Background Subtraction

/img/genos/bs.png

Figure 1: Background Subtraction with random noise

This technique was used to extract the background. Initially, when the user starts the application, the camera collects some samples without the hand to build the background model. The background is subtracted from the image with the hand (foreground).

Convex Hull and Convex Defects

/img/genos/convex.png

Figure 2: Convex Hull and Convex Defects

The image data from the background subtraction process is used to compute the hand convex hull (green line) and convex defects (blue circles). This data is used to determine how many fingers are up.

Color Segmentation

/img/genos/cs.png

Figure 3: Color Segmentation (green)

For hand movement, the program uses Color Segmentation to filter image data different from the expected (green color). Movement is detected when the center of the figure moves between frames.

See also