Ask Your Question

Implementation of SVD

asked 2014-06-04 10:53:09 -0500

tskaahyeah gravatar image

updated 2015-08-23 22:30:29 -0500

Good day,

is there an documentation on how the svd decomposition is implemented? I'm not sure if I really need to compute the characteristic polynomial of A^T A then solve for homogeneous equation for a specific matrix. It seems too messy and not optimal.

thanks in advance

edit retag flag offensive close merge delete

2 answers

Sort by ยป oldest newest most voted

answered 2014-06-05 03:33:25 -0500

OpenCV is not specifically designed for SVD operation, so you can't get a fast speed with even a quite small matrix, i.e. 500x500. Surprisingly, the results of OpenCV's SVD are not the identical to that of Matlab on the same input matrix. Hence, if your wish is finding an efficient library to use its SVD function, my suggestion is lapack (the best one), Eigen and Armadillo.

edit flag offensive delete link more



AFAIK you can build openCV with Eigen support resulting in some functions using the optimized version of that library. That should solve the slower implementation of OpenCV itself.

StevenPuttemans gravatar imageStevenPuttemans ( 2014-06-05 04:25:38 -0500 )edit

Yes, thanks @StevenPuttemans, I usually forget that detail.

tuannhtn gravatar imagetuannhtn ( 2014-06-05 04:34:46 -0500 )edit

Good day, thanks for the quick response. Im not actially looking for an svd library. Im actually trying to code an svd algorithm from scratch as an excercise. Any suggestions where i can start?

tskaahyeah gravatar imagetskaahyeah ( 2014-06-05 21:15:27 -0500 )edit

answered 2014-11-18 11:51:11 -0500

Hi all,

does anybody know what algorithm is implemented?

If I'm not mistaken, the actual implementation is in method JacobiSVDImpl_ (modules/core/src/lapack.cpp).

Googling Jacobi & SVD should do the trick, but there is a plethora or results.

I guess the code is based on some paper/book. Any suggestions?

Thank you.

edit flag offensive delete link more

Question Tools


Asked: 2014-06-04 10:53:09 -0500

Seen: 1,222 times

Last updated: Nov 18 '14