Исключение для функции матрицы OpenCV - PullRequest
0 голосов
/ 27 августа 2010

Я довольно новичок в OpenCV, и я только что закончил свою первую большую программу с ним.На самом деле, я был бы, если бы не случилось неприятного исключения.Вот оно: Ошибка OpenCV: неправильный флаг (поле параметра или структуры) (нераспознанный или неподдерживаемый тип массива) в неизвестной функции, файл ........ \ ocv \ opencv \ src \ cxcore \ cxarr ay.cpp, строка 2476 А вот строка, в которой происходит исключение: cvMatMul (& matIntrinsec, & matExtrinsec, & result);Для темы также может быть важно знать, на что умножаются эти три матрицы: (потому что, может быть, я просто делаю с ними что-то глупое)

В основном для matIntrinsec и matExtrinsec я считываю значения из файла, которыйработает просто отлично, уже проверял.И я помещаю значения в двумерный массив, а затем использую функцию CvMat для построения матрицы

cvInitMatHeader (& matIntrinsec, 3, 3, CV_64FC1, this-> intrinsecos);

cvInitMatHeader (& matExtrinsec, 3, 3, CV_64FC1, this-> extrinsecos);

Что касается параметра "result", то он в основном представляет собой унифицированную переменную CvMat для получения результата умножения:

CvMat result;

Мне очень жаль, если вопрос глупый.Но, пожалуйста, помогите мне!

1 Ответ

0 голосов
/ 30 октября 2010

При использовании OpenCV C API вы должны вручную инициализировать параметры «назначения» для функций. Поскольку вы знаете размер вывода, вы можете легко сделать это с помощью cvCreateMat(). В качестве альтернативы вы можете переключиться на API C ++, в котором функции автоматически назначают матрицы назначения с помощью функции cv::Mat::create().

...