gpt4 book ai didi

android - 无法加载 CascadeClassifier

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:46:00 24 4
gpt4 key购买 nike

我尝试在Android应用中加载级联分类器,但以下条件总是返回true,因此代码无法成功执行:

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 文件存储在 raw 文件夹中,我已经成功地使用 python 脚本对其进行了测试 - 它成功检测到对象。

如果this答案成立,那么我不知道上面的代码有什么问题,因为经过训练的级联已经过测试并且输入流似乎指向正确的位置(自动完成列表 R.raw.cascade)。

如果有人帮助解决问题,我将不胜感激。

最佳答案

通过在实例化 CascadeClassifier 后添加以下行解决了问题:

cascadeClassifier.load(mCascadeFile.getAbsolutePath());

工作代码如下:

InputStream is = getResources().openRawResource(R.raw.object_detector);
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);
Log.d(TAG, "buffer: " + buffer.toString());
}
is.close();
os.close();
// Load the cascade classifier
cascadeClassifier = new CascadeClassifier(mCascadeFile.getAbsolutePath());
cascadeClassifier.load(mCascadeFile.getAbsolutePath());
if (cascadeClassifier.empty()) {
Log.e(TAG, "Failed to load cascade classifier");
cascadeClassifier = null;
}

关于android - 无法加载 CascadeClassifier,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35866754/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com