1

我正在尝试使用 mediapipe 在网络摄像头提要上完成手部检测,但是当我运行代码时出现以下错误:

**File "D:\HandTracking\handtracking.py", line 9, in <module>
    hands = mpHands.Hands()**

  **File "C:\Users\Θανάσης\AppData\Local\Programs\Python\Python39\lib\site-packages\mediapipe\python\solutions\hands.py", line 109, in __init__
    super().__init__(**

  **File "C:\Users\Θανάσης\AppData\Local\Programs\Python\Python39\lib\site-packages\mediapipe\python\solution_base.py", line 237, in __init__
    validated_graph.initialize(
FileNotFoundError: The path does not exist.**

**[ WARN:0] global C:\Users\runneradmin\AppData\Local\Temp\pip-req-build-1i5nllza\opencv\modules\videoio\src\cap_msmf.cpp (438) `anonymous-namespace'::SourceReaderCB::~SourceReaderCB terminating async callback**

代码是:

import cv2 as cv
import mediapipe as mp

capture = cv.VideoCapture(0)
mpHands = mp.solutions.hands
hands = mpHands.Hands()

while True:
    isTrue, frame = capture.read()
    frameRGB = cv.cvtColor(frame, cv.COLOR_BGR2RGB)
    results = hands.process(frameRGB)
    cv.imshow("Frame", frame)

    if cv.waitKey(20) & 0xFF == ord('d'):
        break

capture.release()
cv.destroyAllWindows()
4

3 回答 3

0

当项目路径中存在非 unicode 字符时会出现此错误。它不仅与用户名有关,还与路径名中包含的所有字符有关。例如,如果项目的路径名中有“ç”、“ş”、“ü”、“ğ”、“ı”、“ö”等字符,则会出现此错误。

为了消除此错误,请在没有“非 unicode”字符的文件夹中构建您的项目。

它真的对我有用......

于 2022-01-04T19:18:15.783 回答
0

我通过使用here解决了这个问题。我认为问题是路径名上的路径编码。

所以主要思路是把用户文件夹名改成英文。

Microsoft提供了更改用户文件夹的方法供您参考。

  1. 使用另一个管理帐户登录。

注意:您可能首先需要创建一个新的管理帐户。

  1. 转到 C:\users\ 文件夹,将原始用户名的子文件夹重命名为新用户名。
  2. 转到注册表并将注册表值 ProfileImagePath 修改为新的路径名。HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList<用户 SID>\

注意:替换为您要更改为您的用户帐户的新名称。

  1. 使用更改名称的用户注销并重新登录,该用户应使用具有新路径名的先前配置文件。
于 2021-12-04T04:55:13.363 回答
0

它也对我有用...

“当项目的路径中有非unicode字符时会出现此错误。它不仅与用户名有关,还与路径名中包含的所有字符有关。例如,如果您的项目的路径名中有字符像“ç”,“ş”,“ü”,“ğ”,“ı”,“ö”等你会遇到这个错误。

于 2022-01-07T19:26:25.267 回答