エラー: (-215) !empty() in Function detectMultiScale
OpenCV の detectMultiScale 関数を使用しようとすると、エラーが発生する可能性があります: (-215) !empty() 関数 detectMultiScale。このエラーは通常、カスケード分類子ファイルが無効または破損しているために発生します。
この問題を解決するには、次の手順を試してください:
分類子ファイルが正しく読み込まれていることを確認してください
CascadeClassifier コンストラクターには、分類子データを含む XML ファイルへの有効なパスが必要です。コード内:
<code class="python">face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml') eye_cascade = cv2.CascadeClassifier('haarcascade_eye.xml')</code>
これらのパスが XML ファイルの正しい場所を指していることを確認してください。場所がわからない場合は、OpenCV GitHub リポジトリまたは他の信頼できるソースから事前トレーニングされた分類子ファイルを取得できます。
OpenCV の Data プロパティを使用します
代わりにOpenCV の data プロパティを使用して、分類子ファイルを自動的に見つけることができます。
<code class="python">face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml') eye_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_eye.xml')</code>
この方法では、分類子ファイルへの絶対パスを指定する必要はありません。
分類子ファイル
haarcascade_frontalface_default.xml および haarcascade_eye.xml ファイルが指定されたディレクトリに存在することを確認します。ファイルが見つからないか破損している場合は、信頼できるソースから再度ダウンロードしてください。
コードがコンパイルされ実行されることを確認します
分類子ファイルの問題を解決したら、コードがエラーなくコンパイルされ、実行されることを確認します。問題が解決しない場合は、入力画像に不正な形式や破損などの問題がないか確認してください。
以上がOpenCV の顔検出を使用すると、関数 detectMultiScale でエラー「-215) !empty()」が発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。