我试图找出如何使用eigenVV,但到目前为止还没有运气。以下是我的代码,你们中的任何人都可以指出我做错了什么吗?感谢。
CvMat* A2;
A2 = cvCreateMat(3, 3, CV_32FC1);
cvmSet(A2, 0, 0, 1);
cvmSet(A2, 0, 1, 3);
cvmSet(A2, 0, 2, -3);
cvmSet(A2, 1, 0, -3);
cvmSet(A2, 1, 1, 7);
cvmSet(A2, 1, 2, -3);
cvmSet(A2, 2, 0, -6);
cvmSet(A2, 2, 1, 6);
cvmSet(A2, 2, 1, -2);
CvMat* transp_A2;
CvMat* ATA2;
CvMat* eigenVal2;
CvMat* eigenVec2;
transp_A2 = cvCreateMat(3, 3, CV_32FC1);
ATA2 = cvCreateMat(3, 3, CV_32FC1);
eigenVal2 = cvCreateMat(3, 1, CV_32FC1);
eigenVec2 = cvCreateMat(3, 3, CV_32FC1);
cvTranspose(A2, transp_A2);
cvMatMul(transp_A2, A2, ATA2);
cvEigenVV(ATA2, eigenVec2, eigenVal2);
编辑: 这是eigenVec2变量的输出
-0.236854,0.862897,-0.446442,
0.969565,0.239264,-0.0519332,
-0.0620046,0.445154,0.893304,
答案 0 :(得分:0)
我想使用EigenVector EigenValue来创建投影矩阵,并将其与我所拥有的投影矩阵进行比较。当我的答案与我的答案不符时,我认为我的答案是错误的。但我发现结果投影矩阵并不完全相同。它与比例因子不同。所以我使用eigenvv的方式是正确的。