0

cv::matchTemplate を使用してテンプレート マッチングを行うコードを書いていますが、作成したベクトルの 2 次元ベクトル (vov) で問題が発生しました。これを vvABC と呼びます。現時点では、私の vov には 10 個の要素があり、コードの実行中に渡す値に基づいて変更できます。

私の問題は、サイズを計算できるように、vov のある列から次の列に移動することです。vov がどのように機能するかについての私の理解から、要素が vov に次のように保存されている場合:

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

最初の列のサイズを計算するには、vvABC[0].size() で最初の列のサイズを取得し (この場合は 3 になります)、vvABC[1].size() のようにします。 2 番目の列のサイズを取得します (7 になります)。私が今直面している問題は、どちらの場合も明らかに間違っている「3」を与えることです。

次の列の正しいサイズを取得する方法を教えてください。

検出結果を vvABC に保存しましたが、一度に 1 つずつ照合したいと考えています。

4

2 に答える 2

0

ここで間違いを犯したようです:

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

iCaベクトルの「第1レベル」(上記の例ではサイズ2)、つまり列のインデックスであり、それを使用してベクトルの「第2レベル」の要素、つまり行を通過します。

于 2013-10-11T19:07:59.477 に答える