opencv 无法在VSCode中运行代码,但可以在其外部运行

ni65a41a  于 2022-11-15  发布在  Vscode
关注(0)|答案(2)|浏览(538)
import cv2

data_cara = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')

"""imagem = cv2.imread('cara.jpg')"""
camera = cv2.VideoCapture(0)

while True:
    leitura_frame_sucesso, frame = camera.read()
    frame = cv2.flip(frame, 1)

    imagem_cinza = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

    coordenadas_cara = data_cara.detectMultiScale(imagem_cinza)

    for (x, y, w, h) in coordenadas_cara:
        cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 0), 4)

    cv2.imshow('Detetor de Face', frame)
    tecla = cv2.waitKey(1)

    if tecla == 81 or tecla == 113 or tecla == 27:
        break

camera.release()

这是我的代码,我可以在vscode外运行它,但不能通过vscode运行,这是我遇到的错误:

[ERROR:0@0.011] global D:\a\opencv-python\opencv-python\opencv\modules\core\src\persistence.cpp (505) cv::FileStorage::Impl::open Can't open file: 'haarcascade_frontalface_default.xml' in read mode
Traceback (most recent call last):
  File "c:\Users\zyzzc\Desktop\Programação\Python\Detetor de cara\Detetor_Cara.py", line 14, in <module>
    coordenadas_cara = data_cara.detectMultiScale(imagem_cinza)
cv2.error: OpenCV(4.6.0) D:\a\opencv-python\opencv-python\opencv\modules\objdetect\src\cascadedetect.cpp:1689: error: (-215:Assertion failed) !empty() in function 'cv::CascadeClassifier::detectMultiScale'
r6vfmomb

r6vfmomb1#

解决这个问题最简单的方法是使用完整路径作为文件名:

data_cara = cv2.CascadeClassifier('c:\\Users\\zyzzc\\Desktop\\Programação\\Python\\Detetor de cara\\haarcascade_frontalface_default.xml')
afdcj2ne

afdcj2ne2#

您可以使用以下方法来创建一个新的分类器:
如果您未加入指涉档案的路径,则依预设,该档案位于vscode工作区中,因此请确定工作区中存在该档案

相关问题