2013-10-11 84 views
0

我正在寫一個代碼來做一些模板匹配使用cv :: matchTemplate,但我遇到了一些問題,我創建了矢量(vov)的二維矢量稱爲vvABC。目前,我的vov有10個元素,可以根據我在運行代碼時通過的值進行更改。C++ vector向量大小的下一列

我的問題是從我的vov中的一列移動到下一個,所以我可以計算大小。從我的VOV是如何工作的,如果我有我的元素存儲在我的VOV的理解:

C_A C_B 
0 0 
1 1 
2 2 
     3 
     4 
     5 
     6 

計算第一列的大小,我應該簡單地做一些事情,如: vvABC [0] .size( )來獲得第一列的大小(在這種情況下會給出3)和vvABC [1] .size()來獲得第二列的大小(這將給出7)。我現在面臨的問題是他們兩個都給出了'3',這顯然是錯誤的。

有人可以請我幫助我如何才能獲得下一列的正確大小?

我將我的檢測結果存儲在我的vvABC中,現在我想一次匹配一個檢測結果。

+1

很好的解釋,但是如果你展示一些代碼 - 特別是你如何創建和填充vvABC,你可能會得到更好的答案。 –

+0

@Markku:我已經發布了代碼...有評論,我希望這很容易理解... –

回答

0

好像你做這裏的錯誤:

for (uint iCaTemplate = iCa + 1; iCaTemplate < vvABC[iCa].size(); ++iCaTemplate) { 

iCa是(在你上面的例子大小爲2 )載體的「第一級」的指數,即列,並使用它通過矢量的「第二級」元素,即行。

+0

@ JGab好吧,它的工作原理是:[columns] [rows]?那麼,我該如何去下一個專欄,以便獲得它的大小?因爲我需要遍歷所有檢測結果 –

+0

@ JGab ...但是,如果它是vv [columns] [row],那麼它應該仍然可以工作,因爲vv [0] [0]將成爲第0列中的第一個元素。那麼vv [1] [0]將成爲第1列的第一個元素...假設編號從0開始。所以vvABC [iCaTemplate] .size()應該返回第一列的大小嗎?這是我的想法,但事實並非如此......你是否知道如何獲得第一列元素的大小?這就是我需要讓代碼正常工作的全部內容。 –

+0

它的工作原理是無關緊要的,無論你喜歡它(行,communs還是相反),你都可以想到它。是的,你是正確的vvABC [iCaTemplate] .size()將返回第一列的大小IF iCaTemplate == 0。我指出的是,你在我高調列出的聲明中混合了列和行索引。 – jgyou

0

非常感謝各位傢伙, JGab,經過幾次調試後,我終於發現我的矢量矢量沒有按照我的想法填滿......再次感謝我,並對遲到的迴應表示歉意。

+0

沒問題,很高興你能找到錯誤! – jgyou