Как вычислить SVD с помощью Cimg (или, может быть, openCV или собственной библиотеки)? - PullRequest
1 голос
/ 18 января 2011

Может ли кто-нибудь дать мне краткое руководство о том, как использовать Cimg для вычисления SVD для трехмерного массива? Я просто хочу получить декомпозицию массива, чтобы сжать его небольшим для ускорения дальнейшего процесса. Какое значение я должен ввести, где и как получить выход? Я искал вокруг и до сих пор не могу понять, как это работает. и не совсем понимаю, как работает SVD. Знаю только, что его можно использовать для распаковки матрицы.

В то же время я обнаружил, что OpenCV и библиотека Eigen также могут справиться с этой задачей, дайте мне знать их шаги, если намного проще

(Альтернативой для меня вместо SVD является PCA, который я нашел в качестве источника / библиотеки, но также не знаю, как использовать ..)

Спасибо!

1 Ответ

0 голосов
/ 06 ноября 2011

См. http://cimg.sourceforge.net/reference/structcimg__library_1_1CImg.html#a9a79f3a0849388b3ec13bd140b67a12e

CImg<float> A(3,3); // A = U'*S*V
A.rand(0,1);
CImgList<float> USV = A.get_SVD(); //USV[0] = U and so forth
...