私はおそらくここで信じられないほど愚かですが、Android用のOpenCVを使用して基本的にMat乗算を行うのに問題があります。
同じタイプのマットを2つ持っていますが、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) The operation is not 'array op array' (配列のサイズとチャネル数は同じ)、'array op scalar'、関数 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);