首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >opencv中复特征值的特征向量计算

opencv中复特征值的特征向量计算
EN

Stack Overflow用户
提问于 2015-05-13 09:42:11
回答 2查看 1.6K关注 0票数 1

我试图计算opencv中4x4矩阵的特征向量。

为此,我首先根据这个公式计算特征值:

代码语言:javascript
复制
Det( A - lambda * identity matrix ) = 0

来自特征值和特征向量上的wiki

在解决这个问题之后,它给了我4个特征值,它们看起来像这样:

代码语言:javascript
复制
0.37789 + 1.91687i
0.37789 - 1.91687i
0.412312 + 1.87453i
0.412312 - 1.87453i

从这四个特征值中,我取最高值,我想使用这个公式:

代码语言:javascript
复制
( A - lambda * identity matrix ) v = 0

我试图在opencv函数"eigen()“中使用我最初的矩阵A,但这并没有给出我想要的结果。

我也尝试使用RREF (精简行梯队形式),但是我不知道如何使用复杂的特征值。

,所以我的问题是,你如何计算这个特征向量?

我把我的数据插入到沃尔夫拉姆阿尔法,看看我的结果应该是什么。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-19 09:50:29

所以我用特征库中的“特征库”来解决这个问题。

代码语言:javascript
复制
//create a multichannel matrix
Mat a_com = Mat::zeros(4,4,CV_32FC2);
for(int i = 0; i<4; i++)
{
    for(int j = 0; j<4; j++)
    {
        a_com.at<Vec2f>(i,j)[0] = a.at<double>(i,j);
        a_com.at<Vec2f>(i,j)[1] = 0;
    }
}

MatrixXcf eigenA;
cv2eigen(a_com,eigenA); //convert OpenCV to Eigen
ComplexEigenSolver<MatrixXcf> ces;
ces.compute(eigenA);
cout << "The eigenvalues of A are:\n" << ces.eigenvalues() << endl;
cout << "The matrix of eigenvectors, V, is:\n" << ces.eigenvectors() << endl;

这给了我以下输出(这或多或少是我想要的):

代码语言:javascript
复制
The eigenvalues of A are:
(0.3951,-1.89571)
(0.3951,1.89571)
(0.3951,1.89571)
(0.3951,-1.89571)
The matrix of eigenvectors, V, is:
(-0.704546,0)            (-5.65862e-009,-0.704546)     (-0.064798,-0.0225427)      (0.0167534,0.0455606)
(-2.22328e-008,0.707107)   (0.707107,-1.65536e-008)    (0.0206999,-0.00474562)    (-0.0145628,-0.0148895)
(-6.07644e-011,0.0019326) (0.00193259,-4.52426e-011)   (-0.706729,6.83797e-005)    (-0.000121153,0.706757)
(-1.88954e-009,0.0600963)  (0.0600963,-1.40687e-009)      (0.00200449,0.703827)     (-0.70548,-0.00151068)
票数 1
EN

Stack Overflow用户

发布于 2015-05-13 10:47:55

Opencv已经具有计算特征值和特征向量( cv::eigen() )的功能。我建议使用它,而不是自己写算法。

这里有一个很好的博客,它解释了如何在c、c++和python中这样做。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30211091

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档