first commit
This commit is contained in:
54
main.py
Normal file
54
main.py
Normal file
@@ -0,0 +1,54 @@
|
||||
import cv2
|
||||
import numpy as np
|
||||
from rtmlib import Body, draw_skeleton
|
||||
|
||||
def detect_body_keypoints_image(image_path, output_path=None):
|
||||
# 初始化模型
|
||||
device = 'cuda' if cv2.cuda.getCudaEnabledDeviceCount() > 0 else 'cpu'
|
||||
backend = 'onnxruntime'
|
||||
openpose_skeleton = True # True为OpenPose风格,False为MMPose风格
|
||||
|
||||
# 创建Body实例,使用平衡模式
|
||||
body = Body(
|
||||
mode='balanced',
|
||||
to_openpose=openpose_skeleton,
|
||||
backend=backend,
|
||||
device=device
|
||||
)
|
||||
|
||||
# 读取图片
|
||||
image = cv2.imread(image_path)
|
||||
if image is None:
|
||||
print(f"无法读取图片: {image_path}")
|
||||
return
|
||||
|
||||
# 检测身体关键点
|
||||
keypoints, scores = body(image)
|
||||
|
||||
print(keypoints)
|
||||
|
||||
# 绘制关键点
|
||||
result_image = draw_skeleton(
|
||||
image.copy(),
|
||||
keypoints,
|
||||
scores,
|
||||
openpose_skeleton=openpose_skeleton,
|
||||
kpt_thr=0.43
|
||||
)
|
||||
|
||||
# 保存或显示结果
|
||||
if output_path:
|
||||
cv2.imwrite(output_path, result_image)
|
||||
print(f"已保存结果到: {output_path}")
|
||||
|
||||
# 显示结果
|
||||
# cv2.imshow('Body Keypoints Detection', result_image)
|
||||
# cv2.waitKey(0)
|
||||
# cv2.destroyAllWindows()
|
||||
|
||||
if __name__ == "__main__":
|
||||
# 替换为您的图片路径
|
||||
image_path = "example.png"
|
||||
output_path = "body_result.jpg"
|
||||
detect_body_keypoints_image(image_path, output_path)
|
||||
|
||||
Reference in New Issue
Block a user