前提・実現したいこと
ここに質問の内容を詳しく書いてください。
(例)PythonのopenCVで人の顔を認証するAI機能を作っています。
機能を実装中に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
Traceback (most recent call last): facerect = cascade.detectMultiScale(frame, scaleFactor=1.2, minNeighbors=2, minSize=(10, 10)) cv2.error: OpenCV(4.5.3) /private/var/folders/24/8k48jl6d249_n_qfxwsl6xvm0000gn/T/pip-req-build-vy_omupv/opencv/modules/objdetect/src/cascadedetect.cpp:1689: error: (-215:Assertion failed) !empty() in function 'detectMultiScale'
該当のソースコード
python
1 2import cv2 3from cv2 import CascadeClassifier 4from numpy import double 5 6if __name__ == "__main__": 7 8 9 cap = cv2.VideoCapture(0) 10 11 12 cascade_path = "./cascade/trained_data/cascade.xml" 13 cascade = cv2.CascadeClassifier(cascade_path) 14 15 cv2.CascadeClassifier 16 face_cascade = cv2.CascadeClassifier( 17 "/home/opencv/opencv-3.4.4/data/haarcascades/haarcascade_frontalface_default.xml") 18 19 color = (255, 255, 255) 20 21 while True: 22 23 ret, frame = cap.read() 24 25 frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) 26 27 facerect = cascade.detectMultiScale(frame, scaleFactor=1.2, minNeighbors=2, minSize=(10, 10)) 28 29 if len(facerect) > 0: 30 for rect in facerect: 31 cv2.rectangle(frame, tuple(rect[0:2]), tuple(rect[0:2] + rect[2:4]), color, 2) 32 33 cv2.imshow("frame", frame) 34 35 if cv2.waitKey(1) & 0xFF == ord('q'): 36 break 37 38 cap.release() 39 cv2.destroyAllWindows()
Python openCV
試したこと
いろいろ調べたところ、openCVのバージョンが原因だとわかり、バージョン3のもっとも古いものをインストールして確かめたところ同じエラーが出て解決しませんでした。
追記:以下の情報で
(https://stackoverflow.com/questions/30508922/error-215-empty-in-function-detectmultiscale)
xml拡張子のロケーションを記載する必要があるとわかりました。
補足情報(FW/ツールのバージョンなど)
Python openCV 4.5.3
IntelliJ Idea Pycharm
回答1件
あなたの回答
tips
プレビュー