这可能看起来像是一个愚蠢的问题,但是我在乘法之后无法处理矩阵的输出大小..根据基本知识,如果矩阵A具有m * n,矩阵B具有J * k,那么它们的乘积将为尺寸m * k
所以根据下面的代码:
CvMat *meh, *meh2;
meh = cvCreateMat(2, 9, CV_32FC1);
meh2 = cvCreateMat(2, 2, CV_32FC1);
cvMulTransposed(meh, meh2, 1);
cvSave( "meh.txt", meh2 );
%YAML:1.0
meh: !!opencv-matrix
rows: 2
cols: 2
dt: f
data: [ -431602080., -431602080., -431602080., -431602080. ]
最佳答案
这是函数的声明:
void cvMulTransposed(const CvArr* src, CvArr* dst, int order, const CvArr* delta=NULL, double scale=1.0)
dst = scale* transpose[(src-delta)] * (src-delta)
dst = scale* (src-delta) * transpose[(src-delta)]
(9,2) x (2,9) = (9,9)
transpose not transpose result
https://stackoverflow.com/questions/6765732/