Я, наверное, здесь невероятно глуп, но у меня проблемы с базовым умножением Mat с использованием OpenCV для Android.
У меня есть два мэта, оба одного типа, CV_64F
mat1
имеет размер: 3 строки, 3 столбца mat2
имеет размер: 3 строки, 1 столбец
Я хочу умножить их, чтобы получить продукт mat3
размером 3 строки, 1 столбец.
Я пробовал использовать:
Mat mat3 = new Mat(3, 1, CvType.CV_64F);
Core.multiply(mat1, mat2, mat3);
Но я получаю сообщение об ошибке:
CvException [org.opencv.core.CvException: /home/andreyk/OpenCV2/trunk/opencv_2.3.1.b2/modules/core/src/arithm.cpp: 1253: error: (-209) Операция не является операцией массива array '(где массивы имеют одинаковый размер и одинаковое количество каналов), ни' array op scalar ', ни' scalar op array 'в функции void cv :: arithm_op (const cv :: _ InputArray &, const cv :: _ InputArray &, const cv :: _ OutputArray &, const cv :: _ InputArray &, int, void (* ) (const uchar, size_t, const uchar *, size_t, uchar *, size_t, cv :: Size, void *) , bool, void *)
Что я делаю не так?
Заранее благодарим за любую помощь.
РЕДАКТИРОВАТЬ:
Если это помогает, матрица 3x3 mat2
является результатом Imgproc.getPerspectiveTransform
, а остальная часть кода выглядит следующим образом:
Mat mat1 = new Mat(3, 1, CvType.CV_64F);
mat1.put(0, 0, 2.0);
mat1.put(1, 0, 0.5);
mat1.put(2, 0, 1.0);
Mat mat3 = new Mat(3, 1, CvType.CV_64F);
Core.multiply(mat2, mat1, mat3);