C++ HOG描述符向量布局以及如何将其保存到文本文件
我是新开简历的,所以目前正在努力。我使用以下定义提取了HOG特征:C++ HOG描述符向量布局以及如何将其保存到文本文件,c++,opencv,C++,Opencv,我是新开简历的,所以目前正在努力。我使用以下定义提取了HOG特征: HOGDescriptor hog(Size(16,16), Size(16,16), Size(16,16), Size(8,8), 9); 它返回36维特征向量/像素。现在,我想将所有这36个值分隔成一行,并将其保存在文本文件中。我不知道怎么做。请引导我 提前谢谢 在计算特征(即描述符)之后,它是一个向量,所以只需像正常向量一样访问它即可 如果你想把它们分成36乘36的样式,你可以这样做: for (int i=0; i&
HOGDescriptor hog(Size(16,16), Size(16,16), Size(16,16), Size(8,8), 9);
它返回36维特征向量/像素。现在,我想将所有这36个值分隔成一行,并将其保存在文本文件中。我不知道怎么做。请引导我
提前谢谢 在计算特征(即描述符)之后,它是一个向量,所以只需像正常向量一样访问它即可 如果你想把它们分成36乘36的样式,你可以这样做:
for (int i=0; i<descriptors.size()/36; i++)
{
// ... handle 36 values here
for (int j=0; j<36; j++)
{
if (36*i+j < descriptors.size()) // make sure not out-of-bound
{
float temp = descriptors[36*i+j];
...
}
}
}
非常感谢你的回答。我需要先得到前36个值,然后再得到下36个值,依此类推……它们在开放式CV中有没有像在Matlab中那样的描述符1:36?@user3319734我找到了一种方法,请检查。或者简单地使用一个for-loop。你能为它写一个for-loop吗?那么temp将有36个值吗?@user3319734 temp是一个float。。。你需要学习C++的基本内容。从这个开始。