FileNotFoundError:使用mediapipe进行手动检测时,路径不存在



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

**File "D:HandTrackinghandtracking.py", line 9, in <module>
hands = mpHands.Hands()**
**File "C:UsersΘανάσηςAppDataLocalProgramsPythonPython39libsite-packagesmediapipepythonsolutionshands.py", line 109, in __init__
super().__init__(**
**File "C:UsersΘανάσηςAppDataLocalProgramsPythonPython39libsite-packagesmediapipepythonsolution_base.py", line 237, in __init__
validated_graph.initialize(
FileNotFoundError: The path does not exist.**
**[ WARN:0] global C:UsersrunneradminAppDataLocalTemppip-req-build-1i5nllzaopencvmodulesvideoiosrccap_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()

当项目路径中存在非unicode字符时,会发生此错误。它不仅与用户名相关,而且与路径名中包含的所有字符相关。例如,如果您的项目路径名中有字符,如" ", "", "ğ", "ı", "ö"等,您将出现此错误。

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

这对我来说真的很有效…

我用这里解决了这个问题。我认为问题出在路径名的路径编码上。

所以主要的想法是将用户文件夹名称改为英文

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

  1. 使用其他管理员帐号登录

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

  1. 进入C:users文件夹,将原用户名的子文件夹重命名为新用户名
  2. 进入注册表,将注册表值ProfileImagePath修改为新的路径名称。HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionProfileList

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

  1. 退出并使用更改了用户名的用户重新登录,用户应使用新路径名的前一个配置文件

这对我来说也很有效。

"当项目路径中有非unicode字符时,会发生此错误。它不仅与用户名相关,而且与路径名中包含的所有字符相关。例如,如果项目的路径名中有字符,如"", "", "", "ğ", "ı", "ö"等,则会出现此错误。"