'image'에 해당되는 글 1건

  1. 2025.09.19 point_mediapipe.py
반응형

포즈를 산정하기 위한 절차를 수행한다.

import cv2
import mediapipe as mp
import os

# MediaPipe Pose 모델 초기화
mp_pose = mp.solutions.pose
mp_drawing = mp.solutions.drawing_utils

# 스크립트 경로와 이미지 경로 설정
script_dir = os.path.dirname(os.path.abspath(__file__))
image_path = os.path.join(script_dir, 'image.jpg')

# 이미지 읽기
image = cv2.imread(image_path)

# 이미지 크기 조정 (height를 1080에 맞춤)
aspect_ratio = image.shape[1] / image.shape[0]
new_height = 1080
new_width = int(aspect_ratio * new_height)
resized_image = cv2.resize(image, (new_width, new_height))

# Pose 추정 모델을 사용하여 사람의 관절 추출
with mp_pose.Pose(static_image_mode=True, min_detection_confidence=0.5) as pose:
    # BGR 이미지를 RGB로 변환
    image_rgb = cv2.cvtColor(resized_image, cv2.COLOR_BGR2RGB)
    
    # 관절 위치 추정 수행
    results = pose.process(image_rgb)

    # 관절 포인트와 연결을 이미지에 그리기
    annotated_image = resized_image.copy()
    if results.pose_landmarks:
        mp_drawing.draw_landmarks(
            annotated_image, results.pose_landmarks, mp_pose.POSE_CONNECTIONS,
            mp_drawing.DrawingSpec(color=(0, 255, 0), thickness=2, circle_radius=2),
            mp_drawing.DrawingSpec(color=(0, 0, 255), thickness=2, circle_radius=2)
        )

    # 원본 이미지와 관절 포인트가 표시된 이미지를 나란히 표시
    combined_image = cv2.hconcat([resized_image, annotated_image])

    # 결과 이미지 표시
    cv2.imshow('Original and Pose Estimation', combined_image)
    cv2.waitKey(0)

# 리소스 해제
cv2.destroyAllWindows()

[실행 결과]

$ python point_mediapipe.py

이미지의 관절 위치를 추정

반응형

'라즈베리파이' 카테고리의 다른 글

harris.py  (0) 2025.09.20
laplacian.py  (0) 2025.09.20
mediapip.py  (0) 2025.09.19
sobel.py  (0) 2025.09.19
라즈베리파이 5에서 tensorflow가 설치된 opencv 개발환경 설정  (0) 2025.09.19
Posted by 세상을 살아가는 사람
,