У меня возникают проблемы при вычислении Собственные векторы, значения в OpenCV. Я сделал то же самое в Python (SciPy), но у меня возникли проблемы с портированием моего кода.Вычисление собственных значений, собственных векторов с использованием OpenCV
У меня есть 2 матрицы Sw, Sb, значение которого является:
Sw:[0.0112962962962963, 0.00675925925925926;
0.00675925925925926, 0.007962962962962963]
Sb:[0.0530787037037037, 0.01657407407407407;
0.01657407407407407, 0.004606481481481482]
Для указанного выше значений Sw, Sb, вычисления значений Эйгена собственных векторов в SciPy (Python) с использованием следующих:
from numpy import *
from scipy import linalg as la
evals,evecs = la.eig(Sw,Sb)
приводит к следующему:
evals:
[ 0.17299805+0.j -8.47412141+0.j]
evecs:
[[ 1. -0.31926401]
[-0.54311321 1. ]]
Я пытаюсь порт выше код для OpenCV (C++ API)
Для тех же значений Sw, Sb, вычислений собственных значений и собственных векторов в OpenCV с использованием
cv::eigen(Sb,Sb_Eig_Val,Sb_Eig_Vec);
дает различных значений которых являются:
Sb_Eig_Val
[0.05820394496612978; -0.0005187597809445917]
Sb_Eig_Vec
[0.9553644860284983, 0.2954296850952915;
-0.2954296850952915, 0.9553644860284983]
Я что-то упустил?
Пожалуйста, отредактируйте ваш вопрос, чтобы узнать, что вам действительно интересно знать. – DSM
Этот вопрос может поместиться немного лучше в [scicomp] (http://scicomp.stackexchange.com) –