2014-10-29 74 views
1

詞袋我試圖創建一個包使用ORB作爲我detectorextractorBruteForcematcher字的程序。C++成簇陣列大小問題

一切正常。

但我擔心的是,當我嘗試羣集我的描述符的陣列,它

[32 x several thousand odd]

縮小到

[32 x 1]

我也真的不明白的地方32來自兩方面,目前只有14個圖像的節目。

代碼:

cout << " -- All Other Images Features Array Size: " << allImgFeaturesUnclustered.size(); 

BOWKMeansTrainer allImgBowTrainer(dictionarySize, termCrit, retries, flags); 
Mat allImgDictionary = allImgBowTrainer.cluster(allImgFeaturesUnclustered); 
BOWImgDescriptorExtractor allImgBowImgDesExtr(extractor,matcher); 
allImgBowImgDesExtr.setVocabulary(allImgDictionary); 

cout << " -- All Images Dictionary Size: " << allImgDictionary.size(); 

在頂線,一旦任由其全部原始大小,陣列出來爲[32 x 6969]用於關閉所有影像的描述符。

在底線,他們已經聚集後,數組出來爲[32 x 1]

我做這個只是一個圖片,它仍然從[32 x 458][32 x 1]

這是正確的?過去2-3周,我一直在教自己C++和OpenCV,所以我很抱歉,如果這是正常的。

回答

1

就你而言,似乎32是ORBdictionary size的特徵尺寸。因此,如果您的功能大小爲64,字典大小爲16,那麼您會看到[64 x 458][16 x 1]。請致電this

+0

謝謝你的鏈接,非常有幫助。 – MLMLTL 2014-10-30 14:39:24