在openCV中执行SparseMat(稀疏矩阵)操作

Boa*_*oaz 9 opencv sparse-matrix

我需要在OpenCV中对稀疏矩阵SparseMat进行矩阵运算(主要是乘法和逆运算).
我注意到你只能迭代并向SparseMat插入值.
我可以使用外部代码吗?(或者我错过了什么?)

Chr*_*ica 6

只是稀疏矩阵不适合反演或矩阵 - 矩阵乘法,所以没有内置函数是非常合理的.它们实际上更多地用于矩阵向量乘法(通常在求解迭代线性系统时).

您可以做的是求解N个线性系统(将单位矩阵的列作为右侧)以获得逆矩阵.但是,无论如何你需要N*N存储用于逆矩阵,因此使用具有通常分解算法的密集矩阵将是更好的方法,因为在进行N次迭代解决方案时性能增益不会那么高.或者像SuperLUTAUCS这样的稀疏直接求解器可能有所帮助,但我怀疑OpenCV是否具有这样的功能.

您还应该考虑是否确实需要逆矩阵.通常只需求解线性系统就可以解决这样的问题,这可以通过例如CG或BiCGStab非常容易和快速地使用稀疏矩阵来完成.