Не могу подгрузить файл из 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. Чуть-чуть поздно, согласен