3

初心者の質問で申し訳ありませんが、答えが見つかりません。顔と目をリアルタイムで検出しようとしています。顔検出のみまたは目の検出のみを使用する場合、コード(android openCVで実行)は正常に動作しますが、添付のコードのように両方を組み合わせると、実行時にプログラムがクラッシュします。これら 2 つのカスケード (顔の周りに四角形を表示するものと、目の周りに別の四角形を表示するもの) を組み合わせる方法がわかりません。どんな助けでも大歓迎です!

    InputStream is3 = context.getResources().openRawResource(R.raw.lbpcascade_frontalface);
        File cascadeDir = context.getDir("cascade", Context.MODE_PRIVATE);
        File cascadeFile = new File(cascadeDir, "lbpcascade_frontalface.xml");
        File cascadeFileEye = new File(cascadeDir, "eyes_detect.xml");
        FileOutputStream os = new FileOutputStream(cascadeFile);

        byte[] buffer = new byte[4096];
        int bytesRead;

        while ((bytesRead = is3.read(buffer)) != -1) {
            os.write(buffer, 0, bytesRead);
            }

        is3.close();
        os.close();
        FileOutputStream os1 = new FileOutputStream(cascadeFileEye);


        byte[] bufferEye = new byte[4096];
        int bytesReadEye;

        while ((bytesReadEye = is3.read(bufferEye)) != -1) {
            os1.write(bufferEye, 0, bytesReadEye);
            }

        is4.close();
        os1.close();

        mCascade = new CascadeClassifier(cascadeFile.getAbsolutePath());
        mCascadeEye = new CascadeClassifier(cascadeFileEye.getAbsolutePath());
        if (mCascade.empty()) {
            //Log.e(TAG, "Failed to load cascade classifier");
            mCascade = null;
            }  

        if (mCascadeEye.empty()) {
            //Log.e(TAG, "Failed to load cascade classifier");
            mCascadeEye = null;
            }  

        cascadeFile.delete();
        cascadeDir.delete();
4

2 に答える 2

0

これは、opencv ホームページからの対応するチュートリアルです。

http://docs.opencv.org/doc/tutorials/objdetect/cascade_classifier/cascade_classifier.html#cascade-classifier

于 2012-12-06T01:52:30.747 に答える
0

行方不明になっていませんか

InputStream is3 = context.getResources().openRawResource(R.raw.eyes_detect);

Raw フォルダーにも eyes_detect.xml ファイルが必要です。

haarcascade_eye_tree_eyeglasses.xml を使用し、検出された顔のトリミングされた領域のみを渡して目の位置を取得しました。

于 2013-05-22T07:21:42.953 に答える