3
我试图加载级联分类中的Android应用程序,但下面的条件总是返回true,因此代码不能执行成功:无法加载CascadeClassifier
cascadeClassifier.empty()
的代码如下:
try
{
InputStream is = getResources().openRawResource(R.raw.cascade);
File cascadeDir = getDir("cascade", Context.MODE_PRIVATE);
mCascadeFile = new File(cascadeDir, "cascade.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();
// Load the cascade classifier
cascadeClassifier = new CascadeClassifier(mCascadeFile.getAbsolutePath());
if (cascadeClassifier.empty()) {
Log.e(TAG, "Failed to load cascade classifier");
cascadeClassifier = null;
}
}
catch (Exception e)
{
Log.e("OpenCVActivity", "Error loading cascade", e);
}
cascade.xml文件存储在原始文件夹中,我已用python脚本成功测试过它 - 它成功检测到对象。
如果this答案成立,那么我不知道上面的代码中可能会出现什么问题,因为训练过的级联已经过测试,输入流似乎指向正确的位置(自动完成列表R.raw。级联)。
如果有人帮助解决问题,我将非常感激。
你能输出mCascadeFile.getAbsolutePath()来测试它是否是你期望它是什么? – Micka