Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 具有不同解决方案的SVD,如WolframAlpha_Java_Opencv - Fatal编程技术网

Java 具有不同解决方案的SVD,如WolframAlpha

Java 具有不同解决方案的SVD,如WolframAlpha,java,opencv,Java,Opencv,我发现Java中SVDecomp函数的结果与WolframAlpha的结果非常不同 OpenCV和WolframAlpha的输入矩阵完全相同 {{0.2229632566816983, 18.15370964847313, 4.87085706173828}, {-14.31728552253419, 2.642676839378287, -33.69501515553716}, {-2.982323803144884, 33.70091859922499, 0.8997452211463326

我发现Java中SVDecomp函数的结果与WolframAlpha的结果非常不同

OpenCV和WolframAlpha的输入矩阵完全相同

{{0.2229632566816983, 18.15370964847313, 4.87085706173828},
{-14.31728552253419, 2.642676839378287, -33.69501515553716},
{-2.982323803144884, 33.70091859922499, 0.8997452211463326}}
以下是WolframAlpha的结果:

U = (-0.441818862735368 | 0.214800119324567 | -0.871009185525260
-0.245069575462508 | -0.962880608842737 | -0.113145200062862
-0.862981457340684 | 0.163468167704881 | 0.478059789601005)
W = (38.5925763913943 | 0 | 0
0 | 36.8337256561100 | 0
0 | 0 | 3.76859638821616×10^-10)
V = (0.155053443270976 | 0.362336795687042 | 0.919059560758203
-0.978207790691182 | 0.186347267503429 | 0.0915653543928191
0.138086740713550 | 0.913228745925823 | -0.383334461865688)
以下是OpenCV在使用SCDecomp时产生的结果:

 U: [0.4418188627353685, 0.2148001193245664, -0.8710091855252606;
0.2450695754625076, -0.9628806088427376, -0.113145200062862;
 0.8629814573406845, 0.1634681677048805, 0.4780597896010051]
 W: [38.59257639139431; 36.83372565611004; 3.768597946996713e-10]
 VT:[-0.155053443270976, 0.3623367956870423, 0.9190595607582029;
 0.9782077906911818, 0.1863472675034285, 0.09156535439281914;
-0.1380867407135498, 0.9132287459258235, -0.3833344618656882]
值得一提的是:OpenCV中的W不是一个矩阵,而且值的符号有时是不同的

这是虫子吗?这是我的源代码

Core.SVDecomp(E, w, u, vt);

我不认为结果有什么不同:

  • 两个U矩阵都包含相同的向量,第一个向量(每个矩阵的第一列)是另一个向量的对立面(这里没有问题,只是符号更改)

  • W是相同的,但在第一种情况下返回对角线矩阵,在第二种情况下返回向量(仅返回主对角线)

  • V矩阵与U矩阵的情况相同(第一个向量是相反的)

所以结果是一样的