exc_bad_access при использовании Mat в OpenCV, хотя, похоже, мои индексы верны

Я разрабатываю некоторый алгоритм на Mac, используя Xcode 5 и OpenCV. Я делаю это как C ++.

Я определяю матрицу:

Mat src;
int cols = 560;
int rows = 260;
src.create( cols, rows, DataType<double>::type);

В коде у меня цикл выглядит так:

for (int i=0; i<src.rows; i++) {
const double* srcIterator = src.ptr<double>(i);
for (int j=0; j<src.cols; j++) {
double temp = srcIterator[j];
temp++;
}
}

Я прочитал функцию, которая имеет этот цикл для каждого кадра, который я прочитал. В большинстве случаев он работает правильно (работает в бесконечном цикле и всегда в порядке).

В некоторых прогонах я получаю ошибку exc_bad_access. Когда это случилось, это случилось для первого кадра.
Ошибка в строке: double temp = srcIterator [j];

Когда это произошло, j значительно ниже 560 и всегда выше 500, но каждый раз имеет значение защиты.

Я думал, может быть, я смешиваю столбцы и строки, но если бы это было правильно, я получил бы эту ошибку, когда j было 260 (размер строк).

Пожалуйста, кто-нибудь догадывается, что это может быть?

1

Решение

От доктор, вы, кажется, инвертировали параметры строк и столбцов в вызове cv::Mat::create(),
Это также объясняет, что вы получаете недопустимый доступ, когда пытаетесь читать с большими значениями для i и j.

2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector