我在这里可能非常愚蠢,但是我在使用 OpenCV for Android 进行一些基本的 Mat 乘法时遇到了麻烦。
我有两个相同类型的垫子,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'(其中数组具有相同的大小和相同的通道数),也不是 '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);