簡體   English   中英

如何在 VsCode 上的 Python 3.7 和 OpenCV 4.1.1 中解決“導入 cv2,導入錯誤:DLL 加載失敗”?

[英]How can I solve "import cv2, ImportError: DLL load failed " in Python 3.7 and OpenCV 4.1.1 on VsCode?

我有一個腳本可以用我的筆記本電腦的網絡攝像頭檢測人臉。 一開始,我使用帶有 Anaconda 包的 Spyder,它沒有為 OpenCV 拋出任何 ImportError,一切都很好。 然后我想改變 IDE,因為我只想改變並開始使用 VsCode 但獨立於 Anaconda。 在對我的代碼進行一些改進后,它開始為 OpenCV 拋出這個 ImportError,如下所示:

    File "C:/Users/User/Desktop/SeniorProject/EE 492/lbp/FaceDetection.py", line 7, in <module>
    import cv2

    ImportError: DLL load failed: Belirtilen modül bulunamadı.

Belirtilen modül bulunamadı。 最后一行是我的母語,它說找不到指定的模塊。 收到此錯誤消息后,我認為更改 IDE 可能是個好主意,並再次切換到 Spyder(在 Anaconda 上)。 但是我也一直在這個 IDE 上遇到同樣的錯誤。 然后我在互聯網上搜索並嘗試了一切來幫助我解決問題。 嘗試在 anaconda 上卸載 OpenCV,然后重新安裝或嘗試以下命令: conda install opencv-python conda install opencv-contrib-python pip3 install opencv-python pip3 install opencv-contrib-python

我什至試圖復制名為cv2.cp37-win_amd64.pyd的文件並將它們粘貼到 C:\\Python34\\DLLs 和 C:\\Python34\\Lib\\site-packages 文件夾,但沒有發生任何變化。 我什至嘗試過 PyCharm 考慮它可能會有所幫助,但它也沒有幫助。 我不知道如何解決這個問題。 我應該卸載 Anaconda 和 OpenCV 並重新安裝嗎? 或者也許我可以做一些我沒有在互聯網上遇到過的事情。 您的幫助將不勝感激。 不管怎么說,還是要謝謝你! 我在下面留下我的原始代碼:

    import cv2
    import sys
    import numpy as np
    import os
    import scanning as sc


    face_classifier = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')          
    eye_classifier = cv2.CascadeClassifier('haarcascade_eye.xml')
    video_capture = cv2.VideoCapture(0)
    img_counter = 0
    imagePath = r'C:\Users\User\Desktop\SeniorProject\EE 492\lbp\images\testing'
    newPath = r'C:\Users\User\Desktop\SeniorProject\EE 492\lbp\images\testing2'
    location = []

    while True:
       _, frame = video_capture.read()
       im_gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
       k = cv2.waitKey(1) & 0xFF


     #Detect faces, eyes and smiles in input frame
     faces = face_classifier.detectMultiScale(im_gray, scaleFactor = 1.5, minNeighbors = 3, flags = 
        cv2.CASCADE_SCALE_IMAGE, minSize = (30, 30))

     eyes = eye_classifier.detectMultiScale(im_gray, scaleFactor = 1.5, minNeighbors = 3, flags = 
        cv2.CASCADE_SCALE_IMAGE, minSize=(5, 5), maxSize=(10,10))


     # Draw a rectangle around the faces

     for x, y, w, h in faces:
         cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 0), 2)
         location.append([x,y,w,h])

     # Draw a rectangle around the eyes
     for ex, ey, ew, eh in eyes:
         cv2.rectangle(frame, (ex,ey), (ex+ew, ey+eh), (0, 0, 255), 1)


     # Display the resulting frame
     cv2.imshow('Face Detector', frame)

     if k%256 == 27: #ESC pressed
         break
     elif k%256 == 32: #SPACE pressed
         img_counter += 1
         img_name = "FaceDetect_webcam_{}.png".format(img_counter)
         cv2.imwrite(os.path.join(imagePath, img_name), frame)
         print("{} saved!".format(img_name))

   video_capture.release()

首先,我認為您將文件復制到錯誤的目錄,除非您將其重命名Python34可能不是您使用的 3.7 版本。 轉到您的終端並輸入python —version檢查輸出,這是您當前使用的 python 版本。 使用pip install opencv-python並查看之后是否出現錯誤

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM