Test1 / app.py
AmirKaseb's picture
Update app.py
b13445f verified
import cv2
import mediapipe as mp
import gradio as gr
mp_drawing = mp.solutions.drawing_utils
mp_pose = mp.solutions.pose
def detect_pose(frame):
with mp_pose.Pose(min_detection_confidence=0.5, min_tracking_confidence=0.5) as pose:
results = pose.process(frame)
if results.pose_landmarks:
mp_drawing.draw_landmarks(frame, results.pose_landmarks, mp_pose.POSE_CONNECTIONS,
landmark_drawing_spec=mp_drawing.DrawingSpec(color=(0, 0, 255), thickness=2, circle_radius=4),
connection_drawing_spec=mp_drawing.DrawingSpec(color=(0, 255, 0), thickness=2))
return frame
def process_video(frame):
frame = detect_pose(frame)
return frame
def video_stream():
cap = cv2.VideoCapture(0)
while True:
ret, frame = cap.read()
if not ret:
break
frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
frame = process_video(frame)
frame = cv2.cvtColor(frame, cv2.COLOR_RGB2BGR)
yield frame
iface = gr.Interface(
fn=lambda x: x,
inputs=gr.Video(source="webcam", type="numpy"),
outputs="video",
live=True,
title="Live Pose Detection"
)
iface.launch()