【问题标题】:Hand Tracking python手部追踪蟒
【发布时间】:2022-05-15 14:05:50
【问题描述】:

根据 youtube 手部跟踪教程编写了此代码:

import cv2
import mediapipe as mp
import time

cap = cv2.VideoCapture(1)

mpHands = mp.solutions.hands
hands = mpHands.Hands()
mpDraw = mp.solutions.drawing_utils

pTime = 0
cTime = 0

while True:
    success, img = cap.read()
    imgRGB = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
    results = hands.process(imgRGB)
    # print(results.multi_hand_landmarks)

    if results.multi_hand_landmarks:
        for handLms in results.multi_hand_landmarks:
            for id, lm in enumerate(handLms.landmark):
                # print(id, lm)
                h, w, c = img.shape
                cx, cy = int(lm.x * w), int(lm.y * h)
                print(id, cx, cy)
                # if id == 4:
                cv2.circle(img, (cx, cy), 15, (255, 0, 255), cv2.FILLED)

            mpDraw.draw_landmarks(img, handLms, mpHands.HAND_CONNECTIONS)

    cTime = time.time()
    fps = 1 / (cTime - pTime)
    pTime = cTime

    cv2.putText(img, str(int(fps)), (10, 70), cv2.FONT_HERSHEY_PLAIN, 3,
                (255, 0, 255), 3)

    cv2.imshow("Image", img)
    cv2.waitKey(1)

当我运行此代码时,我收到以下错误消息:

C:\Users\gouri\PycharmProjects\opencv2\venv\Scripts\python.exe C:/Users/gouri/PycharmProjects/opencv2/main.py
[ WARN:0] global D:\a\opencv-python\opencv-python\opencv\modules\videoio\src\cap_msmf.cpp (438) `anonymous-namespace'::SourceReaderCB::~SourceReaderCB terminating async callback
Traceback (most recent call last):
  File "C:/Users/gouri/PycharmProjects/opencv2/main.py", line 16, in <module>
    imgRGB = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
cv2.error: OpenCV(4.5.4) D:\a\opencv-python\opencv-python\opencv\modules\imgproc\src\color.cpp:182: error: (-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'

INFO: Created TensorFlow Lite XNNPACK delegate for CPU.

是的,我已经正确安装了所有软件包,并且我的 python 版本是最新的。

【问题讨论】:

  • 图片可能加载不正确。在我通常的情况下,是相机连接失败。也许你可以检查一下。
  • 是的,断言错误看起来像您的 img 中没有数据,或者没有数据,只需调试您在 img 变量中得到的内容。

标签: python pycharm


【解决方案1】:

有同样的错误,但找不到任何令人满意的解决方案。 我的回答是,我发现“XNNPACK 最好在 ARM x86 CPU 上运行。”

【讨论】:

  • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-02-26
  • 1970-01-01
  • 2020-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-27
相关资源
最近更新 更多