cv::eigen

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void TestEigen()
{
    cv::Mat m = (cv::Mat_<float>(3, 3) << 1, 2, 3,
        2, 5, 6,
        3, 6, 7);
    cv::Mat eigenvalues;
    cv::Mat eigenvectors;
 
    cv::eigen(m, eigenvalues, eigenvectors);
    std::cout << eigenvalues << std::endl;
    std::cout << eigenvectors << std::endl;
 
    return;
}
 
int main(int argc, char** argv) {
 
    TestEigen();
    cv::waitKey(0);
    return 0;
}

  

 

1
2
3
4
bool cv::eigen  (   InputArray  src,
                    OutputArray     eigenvalues,
                    OutputArray     eigenvectors = noArray()
                    )  

  

解析:

src:输入矩阵,只能是 CV_32FC1 或 CV_64FC1 类型的方阵(即矩阵转置后还是自己)
eigenvalues:输出的特征值组成的向量,数据类型同输入矩阵,排列从大到小
eigenvectors:输出的特征向量组成的矩阵,数据类型同输入矩阵,每一行是一个特征向量,对应相应位置的特征值
备注: 对于非对称矩阵,可以使用 cv::eigenNonSymmetric() 计算特征值和特征向量。

 

posted @   leochan007  阅读(172)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示