Базовое матричное умножение в OpenCV для Android

Я, вероятно, невероятно глуп, но у меня возникли проблемы с выполнением некоторого базового умножения 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 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);
7
задан woodstock365 16 April 2012 в 11:35
поделиться