ホームページ >バックエンド開発 >Python チュートリアル >「エラー: (-215) !empty() 関数 detectMultiScale: 顔検出が失敗するのはなぜですか?どうすれば修正できますか?」
エラー処理: 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 サイトの他の関連記事を参照してください。