Не могу подгрузить файл из raw folder через context.getResources().openRawResource(R.raw.haarcascade_frontalface_alt)

Добавил файл haarcascade_frontalface_alt.xml в raw folder и пытаюсь подгрузить его с помощью такого кода: InputStream inputStream = context.getResources().openRawResource(R.raw.haarcascade_frontalface_alt); Однако название файла подсвечивается красным и ничего не подгружается, подсказки просят создать новый ресурсный файл в другой папке, но это тоже не работает 1. Возможно, кто-то знает, что делаю не так? И как еще можно подгрузить этот файл Всем спасибо за помощь!


Ответы (1 шт):

Автор решения: Tamada

Я у себя в проекте использую следующий код:

private static void initializeCascadeClassifier(Activity activity) {
        System.loadLibrary("opencv_java4");

        try {
            InputStream is = activity.getResources().openRawResource(R.raw.haarcascade_frontalface_alt);
            File cascadeDir = activity.getDir("cascade", MODE_PRIVATE);
            File mCascadeFile = new File(cascadeDir, "haarcascade_frontalface_alt.xml");
            FileOutputStream os = new FileOutputStream(mCascadeFile);

            byte[] buffer = new byte[4096];
            int bytesRead;
            while ((bytesRead = is.read(buffer)) != -1) {
                os.write(buffer, 0, bytesRead);
            }
            is.close();
            os.close();

            cascadeClassifier = new CascadeClassifier(mCascadeFile.getAbsolutePath());
            if (cascadeClassifier.empty()) {
                Log.e(TAG, "Failed to load cascade classifier");
                cascadeClassifier = null;
            } else
                Log.i(TAG, "Loaded cascade classifier from " + mCascadeFile.getAbsolutePath());

            cascadeDir.delete();

        } catch (IOException e) {
            e.printStackTrace();
            Log.e(TAG, "Failed to load cascade. Exception thrown: " + e);
        }
    }

UPD. Чуть-чуть поздно, согласен

→ Ссылка