|
GECKO 1.0
Human-computer interface based on hand gesture recognition
|
Segments the hand silouette from the original image and returns the information in a binary image. More...
#include <HandDetector.h>

Public Member Functions | |
| HandDetector () | |
| Default constructor. | |
| HandDetector (cv::Mat &ROI) | |
| Constructor that takes as argument an image of the hand's skin to obtain the custom HSV range. | |
| ~HandDetector () | |
| void | calibrationLoop (cv::VideoCapture) |
| Allows the user to adjust the HSV range manually to improve the segmentation. | |
| void | defaultValues (cv::VideoCapture cap) |
| Shows an image with information and starts calibrationLoop function. | |
| void | customValues (cv::VideoCapture cap) |
| Obtains the custom HSV skin range. | |
| void | calibrate (cv::Mat &ROI) |
| Changes the HSV range accordingly with the input skin color image. | |
| void | calibrate (cv::Scalar lower_limit=cv::Scalar(0, 58, 89), cv::Scalar upper_limit=cv::Scalar(25, 173, 229)) |
| Sets the HSV skin colors range with the inputs. If there are no inputs, default values are set. | |
| void | getCalibration (cv::Scalar &lower_limit, cv::Scalar &upper_limit) |
| Returns the HSV range. | |
| void | operator() (cv::Mat &src, cv::Mat &dst) |
| Update the segmented hand binary image. | |
| void | filter_hand (cv::Mat &src, cv::Mat &dst) |
| Update the segmented hand image using the new frame of the video input. | |
| std::vector< cv::Rect > & | getLastFacesPos () |
| Returns the last position of the face. | |
| void | drawFaceMarks (const cv::Mat &src, cv::Mat &dst, cv::Scalar color=cv::Scalar(0, 255, 0), int thickness=1) |
| Tracks and covers the faces that appear in the image. | |
| cv::Scalar | getLower () |
| Returns the lower HSV skin values. | |
| cv::Scalar | getUpper () |
| Returns the upper HSV skin values. | |
Private Member Functions | |
| int | average (cv::Mat &ROI) |
| Returns the average of the pixel's values. | |
| int | median (cv::Mat &ROI) |
| Returns the median of the pixel's values. | |
| int | stdDeviation (cv::Mat &ROI) |
| Returns the standard deviation of the pixel's values. | |
| void | threshold (const cv::Mat &src, cv::Mat &dst) |
| Thresholds the input image using the HSV range. | |
| void | filterBlobs (const cv::Mat &src, cv::Mat &dst) |
| Applies Gaussian Blur and thresholding to improve the final binary image. | |
| void | filterContours (std::vector< std::vector< cv::Point > > &contours, std::vector< std::vector< cv::Point > > &filteredContours) |
| void | initBackgroundSubstractor () |
| Sets the parameters of the background subtractor object. | |
| void | backgroundSubstraction (cv::Mat &src, cv::Mat &dst) |
| Substracts the background from the input image. | |
| void | initCascadeClassifier () |
| Initializes the face detector. | |
| void | filterFace (const cv::Mat &src, cv::Mat &dstMask) |
| Removes the face from the src image. | |
Private Attributes | |
| backgroundSubstractor | bg |
| Background Subtractor object that derives from cv::BackgroundSubtractorMOG2. | |
| cv::CascadeClassifier | faceDetector |
| Cascade classifier to detect faces: | |
| std::vector< cv::Rect > | lastFacesPos |
| Position of the last faces found: | |
| double | factorX |
| Resize the rectangles. | |
| double | factorY |
| cv::Scalar | lower_limit |
| Lower limit of the HSV skin range. | |
| cv::Scalar | upper_limit |
| Upper limit of the HSV skin range. | |
| bool | hue_invert |
| Boolean that will be true if color limit is arround 0. | |
| int | hue_sigma_mult |
| Hue sigma multiplier used when calculating the custom HSV skin range. | |
| int | sat_sigma_mult |
| Saturation sigma multiplier used when calculating the custom HSV skin range. | |
| int | val_sigma_mult |
| Value sigma multiplier used when calculating the custom HSV skin range. | |
| cv::Scalar | lower |
| Lower limit of the HSV skin range. | |
| cv::Scalar | upper |
| Upper limit of the HSV skin range. | |
Static Private Attributes | |
| static const int | halfSide = 40 |
| Size of the calibration box used when capturing the custom HSV range. | |
Segments the hand silouette from the original image and returns the information in a binary image.
This class offers different means of calibrating the skin: -Theoretical HSV values -Custom HSV values calculated from a sample of the user's skin color
In order to obtain the segmented hand, the operator () or the function filter_hand may be used
1.7.4