pythonを使った画像上の顔検出
以下のコードで画像の顔認識をおこないたいのですが、エラーが出てしまいます。
(カスケードの参照元:https://github.com/opencv/opencv/tree/master/data/haarcascades )
import cv2
def main():
# 入力画像の読み込み
img = cv2.imread("JPG画像")
# カスケード型識別器の読み込み
cascade = cv2.CascadeClassifier("haarcascade_frontalface_default.xml")
# グレースケール変換
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 顔領域の探索
face = cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=3, minSize=(30, 30))
# 顔領域を赤色の矩形で囲む
for (x, y, w, h) in face:
cv2.rectangle(img, (x, y), (x + w, y+h), (0,0,200), 3)
# 結果を出力
cv2.imshow("result.jpg",img)
if __name__ == '__main__':
main()
エラー内容は以下の通りです。
error: OpenCV(3.4.1) D:\Build\OpenCV\opencv-3.4.1\modules\objdetect\src\cascadedetect.cpp:1698: error: (-215) !empty() in function cv::CascadeClassifier::detectMultiScale
このエラーの出る原因がわかりません。どなたか解決策を教えてください。