Hand gesture recognition is one of the most viable and popular solution for improving human computer interaction. In the recent years it has become very popular due to its use in gaming devices like Xbox, PS4, and other devices like laptops, smart phones, etc. Hand Detection & gesture recognition has usage in various applications like medicine, accessibility support etc. In this paper, we would like to propose on how to develop a hand gesture recognition simulation using OpenCV and python 2.7.
Histogram based approach is used to separate out the hand from the background image. Background cancellation techniques are used to produce optimum results. The detector hand is then processed and modelled by finding contours and convex hull to recognize finger and palm positions and dimensions. Finally a gesture object is created from the input which is then used to recognise the count of fingers.
CVZONE
This is a Computer vision package that makes its easy to run Image processing and AI functions. At the core it uses OpenCV and Mediapipe libraries.
You can simply use pip to install the latest version of cvzone.
pip install cvzone
Hand Tracking

Basic Code Example
import cvzone
import cv2
cap = cv2.VideoCapture(0)
cap.set(3, 1280)
cap.set(4, 720)
detector = cvzone.HandDetector(detectionCon=0.5, maxHands=1)
while True:
    # Get image frame
    success, img = cap.read()
    # Find the hand and its landmarks
    img = detector.findHands(img)
    lmList, bbox = detector.findPosition(img)
    
    # Display
    cv2.imshow("Image", img)
    cv2.waitKey(1)
Finding How many finger are up
if lmList:
        # Find how many fingers are up
        fingers = detector.fingersUp()
        totalFingers = fingers.count(1)
        cv2.putText(img, f'Fingers:{totalFingers}', (bbox[0] + 200, bbox[1] - 30),
                    cv2.FONT_HERSHEY_PLAIN, 2, (0, 255, 0), 2)
Finding distace between two fingers
                 
if lmList:
        # Find Distance Between Two Fingers
        distance, img, info = detector.findDistance(8, 12, img)
        cv2.putText(img, f'Dist:{int(distance)}', (bbox[0] + 400, bbox[1] - 30),
                    cv2.FONT_HERSHEY_PLAIN, 2, (0, 255, 0), 2)
Find Hand Type – i.e. Left or Right


if lmList:
        # Find Hand Type
        myHandType = detector.handType()
        cv2.putText(img, f'Hand:{myHandType}', (bbox[0], bbox[1] - 30),
                    cv2.FONT_HERSHEY_PLAIN, 2, (0, 255, 0), 2)
Gesture recognition(Hand Detection ) is an active research field in Human-Computer Interaction technology. It has many applications in virtual environment control and sign language translation, robot control, or music creation. In this machine learning project on Hand Detection, we are going to make a real-time Hand detector using the CVZONE module and OpenCV Python.
Prerequisites for this project:
- Python โ 3.x (we used Python 3.8.8 in this project)
 - OpenCV โ 4.5 Run โpip install opencv-pythonโ to install OpenCV.
 - cvzone-1.5.2 Run “pip install cvzone” to install cvzone
 
To exit the app press q. Happy Coding !!!
TRENDING ARTICLES
- Watersheds Extraction From Satellite Images Using Attention U-Net
 - Mastering Image Classification with SIFT and KNN on CIFAR-10
 - Hyperparameter Optimization Made Easy: Scikit-Learn Pipelines and GridSearchCV
 - How To Install the Anaconda Python on Windows 11 & Ubuntu 20.04 Linux
 - Hand Detection & Gesture Recognition – OpenCV Python
 
