前提・実現したいこと
顔写真を認識させたいです。
発生している問題・エラーメッセージ
faces = face_cascade.detectMultiScale(gray, 1.3, 5) cv2.error: OpenCV(4.5.3) /private/var/folders/24/8k48jl6d249_n_qfxwsl6xvm0000gn/T/pip-req-build-r0utbq5z/opencv/modules/objdetect/src/cascadedetect.cpp:1689: error: (-215:Assertion failed) !empty() in function 'detectMultiScale'
該当のソースコード
python
1import numpy as np 2import cv2 3 4face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml') 5eye_cascade = cv2.CascadeClassifier('haarcascade_eye.xml') 6print(face_cascade) 7img = cv2.imread('/Users/.../sample2.jpg') 8gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 9 10faces = face_cascade.detectMultiScale(gray, 1.3, 5) 11for (x,y,w,h) in faces: 12 img = cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2) 13 roi_gray = gray[y:y+h, x:x+w] 14 roi_color = img[y:y+h, x:x+w] 15 eyes = eye_cascade.detectMultiScale(roi_gray) 16 for (ex,ey,ew,eh) in eyes: 17 cv2.rectangle(roi_color,(ex,ey),(ex+ew,ey+eh),(0,255,0),2) 18 19cv2.imshow('img',img) 20cv2.waitKey(0) 21cv2.destroyAllWindows()
試したこと
以下を試しました。(カスケードの定義ファイルは存在を確認している?)
参考https://teratail.com/questions/149285
import os assert os.path.isfile(face_cascade_path) assert os.path.isfile(eye_cascade_path)
するとこのようなエラーが出てしまいます。
assert os.path.isfile(face_cascade_path) NameError: name 'face_cascade_path' is not defined
補足情報(FW/ツールのバージョンなど)
python.3.8.5 64-bit conda
参考
https://stackoverflow.com/questions/30508922/error-215-empty-in-function-detectmultiscale
回答1件
あなたの回答
tips
プレビュー