c ++ вектор векторов размера следующего столбца

0

Я пишу код для сопоставления шаблонов с использованием cv :: matchTemplate, но я столкнулся с некоторыми проблемами с двумерным вектором векторов (vov), который я создал, который я назвал vvABC. На данный момент мой vov имеет 10 элементов, которые могут меняться в зависимости от значений, которые я передаю при запуске кода.

Моя проблема перемещается из одного столбца в мой 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, теперь я хочу, чтобы они соответствовали им по одному.

Теги:
opencv
vector
template-matching
detection

2 ответа

0

Большое спасибо, ребята, особенно. JGab, после нескольких отладочных выходов, я наконец обнаружил, что мой вектор векторов не заполняется так, как я думал, это... еще раз спасибо и мои извинения за мой запоздалый ответ.

  • 0
    Нет проблем, рад, что вы смогли найти ошибку!
0

Похоже, вы сделали ошибку здесь:

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

iCa - это индекс на "первом уровне" вектора (размером 2 в вашем примере выше), то есть столбцы, и вы используете его для прохождения элементов "второго уровня" вектора, то есть строк.

  • 0
    @ JGab Ладно, так это работает как: [колонки] [строки]? Итак, как мне перейти к следующему столбцу, чтобы я мог получить его размер? Потому что мне нужно перебрать все обнаружения там тоже
  • 0
    @ JGab ... Но если это vv [columns] [строка], то все равно должно работать, потому что vv [0] [0] будет первым элементом в столбце 0. Тогда vv [1] [0] будет первым элемент столбца 1 ... при условии, что нумерация начинается с 0. Итак, vvABC [iCaTemplate] .size () должен вернуть размер первого столбца, верно? Это то, что я подумал, но так и не получилось ... у вас есть представление о том, как я могу получить размер элементов в 1-м столбце? Это все, что мне нужно, чтобы код работал правильно.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню