在做opencv实验的时候,遇到这个问题。
实验代码问题定位到:
Mat tDiag = Mat::diag(t);
cout << tDiag.rows << " <-rows,tDiag,cols->" << tDiag.cols << endl;
cout << "BreakPoint 21" << endl;
cout << U.rows << " <-rows,U,cols->" << U.cols << endl;
Mat Vt = V.t();
cout << Vt.rows << " <-rows,Vt,cols->" << Vt.cols << endl;
Mat X = U * tDiag * Vt;
实验报错如下:
原因是在进行矩阵相乘的时候,矩阵的维度不符合标准。
上述代码中U.cols应该和Vt.rows相等才能进行矩阵乘法。
参考:https://stackoverflow.com/questions/25377628/assertion-failed-a-size-width-len-in-cvgemm