Opencv Matrix умножение

мне нужно умножить матрицу и ее транспонирования, но я получаю следующую ошибку:

«Ошибка OpenCV: утверждение не выполнено (type == B.type () && (тип == CV_32FC1 || тип ==
CV_64FC1 || тип == CV_32FC2 || введите == CV_64FC2)) в неизвестной функции, файл ..
…. \ src \ opencv \ modules \ core \ src \ matmul.cpp, строка 711 «

вот код:

int dA[] = {
1,     2,     3,
4,     5,     6,
6,     5,     4,
};
Mat A = Mat(3,3, CV_32S, dA );
Mat C = A.t()* A;

2

Решение

OpenCV поддерживает только умножение матриц для матриц вещественных или комплексных типов с плавающей запятой.

Вы создаете матрицу целого типа со знаком.

Поддерживаемые типы:

CV_32FC1 //real float
CV_32FC2 //complex float
CV_64FC1 //real double
CV_64FC2 //complex double

Следующий подобный код будет работать:

float dA[] = {
1,     2,     3,
4,     5,     6,
6,     5,     4,
};
Mat A = Mat(3,3, CV_32F, dA );
Mat C = A.t()* A;
7

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

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

По вопросам рекламы [email protected]