使用 OpenCV 和 Android NDK 转换数据格式
Converting data formats using OpenCV with Android NDK
我正在尝试查看从opencv函数knn返回的响应。我尝试使用cout函数,就像大多数示例显示的那样,但这在Android NDK中不起作用。
响应应该是 3 个值,[1,2,3],当我做 response.cols 时,答案是 3,所以我知道数据在那里,但我找不到正确的格式来打印或检查数据以查看是否返回了正确的响应。
从 knn->findNearest 返回的值 "response" 的格式为 OutputArray。
我尝试了以下方法,但它们输出奇怪的数据:
int K=3;
Mat response;
Mat dist;
knn->findNearest(testFeature, K, noArray(), response, dist);
int *responseToInt = (int*)response.data;
int nearestNeighbors[3];
for(int i = 0; i < response.cols; i++){
nearestNeighbors[i] = responseToInt[i];
}
输出:
最近邻居[0] = 1077936128
最近邻居[1] = 1077936128
最近邻居 [2] = 1077936128
int K=3;
Mat response;
Mat dist;
knn->findNearest(testFeature, K, noArray(), response, dist);
uchar* responseToChar = response.data;
char nearestNeighbors[3] = "";
for(int i = 0; i < response.cols; i++){
nearestNeighbors[i] = responseToChar[i];
}
输出:
最近邻居[0] = \0
最近邻居[1] = \0
最近邻居[2] = @
您可以在其文档中查看返回的函数。例如,看看 findNearest
邻居响应 – 相应 邻居。它是一个单精度浮点矩阵 * K 大小。
请注意单精度浮点。
这意味着结果是 Mat 数据存储为浮点数,这意味着您可以使用
float* res = (float*)response.data;
相关文章:
- 将数据保存在C++中,从 Python 加载 - 推荐的数据格式
- protobuf与rapidjson数据格式
- 基于向量的数据格式的分割故障误差
- 使用 OpenCV 和 Android NDK 转换数据格式
- 如何转换数据结构以在 c++ 中转换字符*
- 在C++/Visual Studio中,通过给定数据格式(doubles、float、int、1位bools)的UDP发
- LLDB数据格式和C数组
- MathGL BoxPlot的数据格式
- LIBSVM 训练数据格式(svm_node x 值表示 svm_problem)
- C++读取文件并转换数据
- 将记录集中的变量(具有货币值)转换为格式正确的字符串
- 在C++中为C库强制转换数据类型
- 如何将Mat数据(OpenCV,图像的数据格式)转换为unity3d texutre
- 转换日期格式
- Websocket hybi-17新数据格式c++
- 在C++中,关于位移和强制转换数据类型
- 浮点到QString转换的格式
- 最有效的方式转换数据帧到矩阵,反之亦然
- 当编译时数据格式和类型未知时,C++将数据读入内存
- 数据格式通过不同的脚本/语言(perl, python,c++)传递