C++ 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&

我是新开简历的,所以目前正在努力。我使用以下定义提取了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<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++的基本内容。从这个开始。