您能否向我解释一下OpenCV C++中有多少种方法可以解决线性方程组?如果已经存在已编写的工具或函数,我可以列出最有效的方法吗? 我的系统必须解决有关数字图像处理的方程。
您能否向我解释一下OpenCV C++中有多少种方法可以解决线性方程组?如果已经存在已编写的工具或函数,我可以列出最有效的方法吗? 我的系统必须解决有关数字图像处理的方程。
A*x = B
,则您的解决方案是 x=A^(-1)*B
。
OpenCV允许您使用三种不同的 invert()
方法参数选择:
使用选择最佳主元素的高斯消元法。
奇异值分解(SVD)方法。
Cholesky分解;矩阵必须是对称的和正定的。
solve()
方法,具有附加方法:
http://docs.opencv.org/modules/core/doc/operations_on_arrays.html#solve
编辑2:
这里有一个所有三种方法的简短性能比较:
Fastest method in inverse of matrix
Ax=b
,你应该总是使用solve()
,而不是求逆矩阵(为了稳定性、准确性和性能)。 - Ela782