Svd Armadillo给出一些NaN值

时间:2018-07-24 16:03:16

标签: c++ armadillo svd

我发现要在图像上执行Armadillo的{​​{1}}软件包。我首先尝试使用SVD,它非常慢。因此,现在我在写一个使用此新库执行OpenCV的示例,而得到的结果与SVD相同。经过一些研究,它似乎与OpenCV不再使用但仍由OpenCV使用的Lapack有关。因此,在进行Armadillo计算之后,我将重建图像以验证是否可以恢复原始图像。使用SVD没关系,差异接近0,但是我不知道为什么对于犰狳我将OpenCV数字作为奇异值,所以我无法获取图像。

在此先感谢您提供的帮助/建议。

我的C ++代码:

NaN

1 个答案:

答案 0 :(得分:0)

问题是由于计算模式:

  

方法参数是可选的;方法是“ dc”或“ std”

"dc" indicates divide-and-conquer method (default setting)
"std" indicates standard method
the divide-and-conquer method provides slightly different results than the standard method, but is considerably faster for large
     

矩阵

dc模式不能正常工作,但是std模式却可以。可能是dc模式下的Lapack库出现了问题。

相关问题