Я пишу код для сопоставления некоторых шаблонов с использованием 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 (), чтобы получить размер второго столбца (который даст 7). Проблема, с которой я сейчас столкнулся, состоит в том, что оба они дают «3» в обоих случаях, что, очевидно, неправильно.
Может кто-нибудь помочь мне, как я могу получить правильный размер следующего столбца?
Я сохранил свои обнаружения в моем vvABC, теперь я хочу сопоставить их по одному.
Кажется, вы сделали ошибку здесь:
for (uint iCaTemplate = iCa + 1; iCaTemplate < vvABC[iCa].size(); ++iCaTemplate) {
iCa
индекс на «первом уровне» вектора (размером 2 в вашем примере выше), то есть столбцы, и вы используете его для прохождения элементов «второго уровня» вектора, то есть строк.
Большое спасибо, ребята, особенно. JGab, после нескольких отладочных выходов, я наконец обнаружил, что мой вектор векторов не заполнялся так, как я думал … еще раз спасибо и мои извинения за запоздалый ответ.