java - 读取 opencv_face.LBPHFaceRecognizer.getHistograms() 中的值
问题描述
我正在尝试使用 android 中的 open_cv 库。我以前从未研究过它,所以这可能是一个非常基本的问题。
我的识别器活动中有一个opencv_face.LBPHFaceRecognizer
对象。我的要求是读取以前存储的人脸的直方图值。
opencv_face.LBPHFaceRecognizer mFaceRecognizer = = createLBPHFaceRecognizer(2, 8, 8, 8, 95);
File file = new File(RegisterActivity.getFilePath(mContext));
mFaceRecognizer.load(file.getAbsolutePath());
opencv_core.MatVector vector = mFaceRecognizer.getHistograms();
for (int i = 0; i < vector.size(); i++) {
opencv_core.Mat mat = vector.get(i);
opencv_core.Size size = mat.size();
for (int j = 0; j < size.height();j++)
for (int k = 0; k < size.width(); k++) {
// Here I want to ready the values (which would be same as the values in file am initializing mFaceRecognizer with) of these matrices but I am not able to find any appropriate method to do so.
}
}
请帮助我完成所需的方法,我尝试了很多资源并浏览了文档,但是作为初学者,我认为我遗漏了一些东西。
我无法在 mat 对象中找到任何版本的 .get() 或 .at() 方法。
任何帮助将不胜感激。提前致谢。
解决方案
我能够通过将 opencv_core.Mat 转换为 opencv_core.CvMat 对象来读取这些值。我不知道这个对象被标记为弃用的原因,但这对我来说很好:
double[][] input = new double[(int)vector.size()][vector.get(0).size().width()];
for (int i = 0; i < vector.size(); i++) {
opencv_core.Mat mat = vector.get(i);
(new opencv_core.CvMat(mat)).get(input[i]);
}
此处的输入变量现在具有所有直方图的所需值。
推荐阅读
- python - 我的井字游戏运行良好。但是一旦第一场比赛结束,我就无法在其中设计重播功能?
- mysql - 我应该为 80 列制作一张表吗?
- google-places-api - Google Maps API - 附近搜索请求 - PlaceID
- string - 如何永久保存 ID?(扑)
- python - 从熊猫读取羽毛文件时“不是羽毛文件”
- javascript - 如何从 servlet 将文本响应流式传输到 jsp?
- sql - 不使用 EXISTS 引入子查询时,可以在选择列表中指定一个表达式
- android - 无法在 android 清单上创建接收器/服务。对于 apk 扩展设置
- vb.net - VB逐行读取
- python - 使用 py 安装程序烧瓶桌面的问题