2014-02-27 65 views
0

我是新來打開簡歷,所以目前正在掙扎。我已經使用以下定義提取了HOG特徵:HOG描述符矢量佈局以及如何將它們保存到文本文件

HOGDescriptor hog(Size(16,16), Size(16,16), Size(16,16), Size(8,8), 9); 

它返回36維特徵向量/像素。現在我想將所有這36個值連續分開並保存在文本文件中。我不知道該怎麼做。請引導我。

在此先感謝。

回答

0

在計算出特徵之後,即descriptors,cv::HOGDescriptor::compute,這是一個vector<float>,因此只需像正常vector<float>那樣訪問它即可。

如果你想將它們分成36 -by- 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]; 
      ... 
     } 
    } 
} 
+0

非常感謝您的回答。我需要得到前36個值,然後是下36個等等......是他們在開放式CV中的任何東西,如描述符(1:36)(如在Matlab中)? – user3319734

+0

@ user3319734我找到了一種方法來做到這一點,看看[這裏](http://stackoverflow.com/a/421615/2589776)。或者簡單地使用'for'循環。 – herohuyongtao

+0

你能爲此寫一個for循環嗎? – user3319734