1) Detección de manos – Guía Rápida con MediaPipe y Anaconda Python

Soluciones y Servicios de Robótica, Domótica e IoT

1) Detección de manos – Guía Rápida con MediaPipe y Anaconda Python

Acerca del Tutorial

Este vídeo es el primero de varios controles de visión artificial y el entorno virtual que se instala en este video, utilizando Anaconda Python será nuestro entorno inicial de trabajo para posteriores proyectos.

Enlaces:

Comandos para crear el ambiente virtual, instalar open cv y Jupyter


# creo un ambiente virtual
conda create --name vir_env_opencv python=3.9

# activa el ambiente virtual
conda activate vir_env_opencv

#instalo OpenCv
pip install opencv-contrib-python
pip install matplotlib

#verifico la version de OpenCv
python
import cv2
print(cv2.__version__)
4.8.1
exit()

# Instala Jupiter NoteBook
conda install jupyter  

# permite que se seleccione el ambiente virtual creado
pip install ipykernel

#agrego el ambiente virtual a Jupiter
python -m ipykernel install --user --name vir_env_opencv --display-name "vir_env_opencv"

# Volvemos a abrir Jupiter NoteBook
jupyter notebook 

Comandos para instalar MediaPipe y verificar la versión


pip install mediapipe

python -c "import mediapipe as mp; print(mp.__version__)"

Codigo Python – Detección de Manos


import cv2
import mediapipe as mp

# Inicializa MediaPipe Hands
mp_hands = mp.solutions.hands
hands = mp_hands.Hands()

# Inicializa MediaPipe Drawing Utilities para dibujar las manos
mp_drawing = mp.solutions.drawing_utils

# Iniciar captura de video
cap = cv2.VideoCapture(0)

while cap.isOpened():
    success, image = cap.read()
    
    if not success:
        print("Ignorando frame vacío.")
        continue

    # voltea la imagen horizontalmente - Flip 
    # realiza la conversion  BGR  a  RGB
    image = cv2.cvtColor(cv2.flip(image, 1), cv2.COLOR_BGR2RGB)

    # Procesa la imagen y detecta las manos
    results = hands.process(image)

    # Convierte la imagen a BGR para OpenCV
    image = cv2.cvtColor(image, cv2.COLOR_RGB2BGR)

    # Dibuja las manos detectadas
    if results.multi_hand_landmarks:
        for hand_landmarks in results.multi_hand_landmarks:
            mp_drawing.draw_landmarks(
                image, hand_landmarks, mp_hands.HAND_CONNECTIONS)

    # Mostrar la imagen
    cv2.imshow('Detector de Manos', image)
    if cv2.waitKey(5) & 0xFF == 27:
        break

cap.release()
cv2.destroyAllWindows()

Requieres de una Asesoría?

Contactanos

Innova Domotics

Todos los Cursos

Ardiuno e IoT
Ardiuno y Andriod
Ardiuno y Firebase
Visión Artificial y Raspberry
y mucho más ....

Tanto en Telegram como en WhatsApp doy a conocer el nuevo contenido que publico en las cuentas de TikTok y YouTube, todos altamente útiles y relacionados con Robótica, Domótica e IoT. Únete al canal de tu preferencia para mantenerte actualizado.