SVD Bug Continue (Bug #2027)
Description
For floats SVD returns wron results ( as off [[http://code.opencv.org/issues/1448]] )
It seems that this is not totally resolved.
See the file in the attach.
If the matrix is CV_32FC1 sometimes the SVD results are incorrect. In this example the matrix U has some values with the wrong sign, and also it has NaN and inf in some elements. The matrix Vt also has wrong sign in some elements.
If we change all the matrix to CV_64FC1 then the results are accurate.
Opencv - Matrix CV_32FC1
Q= [0.97855008, 1.2548437, 0.1352066; 0.55914873, 0.71705663, 0.078065962; 0, 0, 0] U= [0.86822981, -0.49616224, -inf; 0.49616224, 0.86822981, -nan; 0, 0, -nan] W= [1.839398; 0.00069751492; 1.4012985e-45] Vt= [0.61271936, 0.78572941, 0.084877647; -0.071619853, -0.05175164, 0.9960885; 0.78704864, -0.61640161, 0.024564598]
Matlab/Octave
Q = 0.97855 1.25484 0.13521 0.55915 0.71706 0.07807 0.00000 0.00000 0.00000 U = -0.86823 -0.49616 0.00000 -0.49616 0.86823 0.00000 0.00000 0.00000 1.00000 S = Diagonal Matrix 1.83940 0 0 0 0.00070 0 0 0 0.00000 V = -0.612719 -0.071656 0.787045 -0.785729 -0.051724 -0.616404 -0.084878 0.996087 0.024610
This happens with the most recent build (booth branch 2.4.1 and trunk 2.4.9 )
Os: Ubuntu 11.10
Related issues
related to Bug #1448: It seems a bug in SVD | Done |
Associated revisions
fixed bug in SVD, ticket #2027; fixed building highgui with ffmpeg support on MacOSX
Merge pull request #2027 from AD-530:brief_cl
History
Updated by Vadim Pisarevsky over 12 years ago
thanks! the problem was fixed in r8848
- Status changed from Open to Done
Updated by Andrey Kamaev over 12 years ago
- Target version set to 2.4.2