gpt4 book ai didi

opencv - OpenCV中两个矩阵的广义特征值

转载 作者:行者123 更新时间:2023-12-02 17:15:46 26 4
gpt4 key购买 nike

您好,我正在从事一个涉及人脸识别的项目,该项目正在使用线性判别分析(LDA)。 LDA要求找到类散点矩阵之间以及类散点矩阵之间的广义特征 vector ,这就是我的印象。我在DevC++中使用opencv进行编码。基本上问题看起来像

A*v=lambda*B*v

其中A和B是应找到广义特征 vector 的矩阵
lambda是特征值,v是 vector

在搜索了这个问题后,许多人建议去计算B的逆,然后乘以A * v
(inv(B)*A)*v=lambda*v 

然后计算inv(B)* A的特征 vector 。

这似乎是一个很好的解决方案,但在我的情况下,散射矩阵B几乎是奇异的。我发现它的行列式在10 ^ -36的量级中,所以我找不到它的逆值并继续上述解决方案。因此,有人可以建议我摆脱该问题的一种方法,除了说单独为广义特征值问题编码。

最佳答案

我在https://github.com/bytefish/opencv/tree/master/lda的github存储库中提供了Fisherfaces实现。这包括针对一般矩阵的特征值求解器的实现,请参见:https://github.com/bytefish/opencv/blob/master/lda/include/decomposition.hpp(我已经移植了伟大的JAMA solver),这正是您所需要的。

如果您对代码有疑问,请在http://www.bytefish.de/blog/fisherfaces_in_opencv的项目页面上给我留言。

关于opencv - OpenCV中两个矩阵的广义特征值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9059849/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com