ホームページ  >  記事  >  バックエンド開発  >  「エラー: (-215) !empty() 関数 detectMultiScale: 顔検出が失敗するのはなぜですか?どうすれば修正できますか?」

「エラー: (-215) !empty() 関数 detectMultiScale: 顔検出が失敗するのはなぜですか?どうすれば修正できますか?」

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-25 10:38:30579ブラウズ

エラー処理: OpenCV での「error: (-215) !empty() in function detectMultiScale」の解決

detectMultiScale() メソッドで画像内の顔を検出すると、「error: (-215) !empty() in function detectMultiScale」というエラーが発生する場合があります。このエラーは通常、顔検出に重要なコンポーネントである顔カスケード分類器が正しく読み込まれていない場合に発生します。

この問題を解決するには、Haar カスケード XML ファイルに指定されたパスが有効であることを確認することが重要です。 。提供されているコード スニペットでは、カスケード分類子はハードコードされたパスを使用して読み込まれていますが、これはシステムにとっては正確ではない可能性があります。代わりに、OpenCV は、これらのファイルを自動的に見つけるための便利なプロパティを提供します。

以下の更新されたコードは、OpenCV のプロパティを使用して問題を修正する方法を示しています。

<code class="python">import cv2

# Use OpenCV's property to locate the Haar cascade XML files
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')
eye_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_eye.xml')

# Proceed with face detection
img = cv2.imread('2015-05-27-191152.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

faces = face_cascade.detectMultiScale(gray, 1.3, 5)
for (x, y, w, h) in faces:
    img = cv2.rectangle(img, (x, y), (x + w, y + h), (255, 0, 0), 2)</code>

OpenCV のプロパティを利用することで、顔カスケード分類器が正しくロードされ、「関数 detectMultiScale のエラー: (-215) !empty()」の問題が解決されたことを確認します。

以上が「エラー: (-215) !empty() 関数 detectMultiScale: 顔検出が失敗するのはなぜですか?どうすれば修正できますか?」の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。