2014-01-24 116 views
3

您能否向我解釋opencv C++中有多少種方法可以解決線性方程組問題?如果已經有已經存在的工具或功能,我可以列出最高效的? 我的系統必須解決有關數字圖像處理的公式opencv,C++線性方程組

回答

8

如果您的系統A*x = B您的解決方案是x=A^(-1)*B。 OpenCV的允許您使用三種不同的方法invert()參數選擇:

  1. 高斯消去與所選擇的最佳樞轉元件。

  2. 奇異值分解(SVD)方法。

  3. 喬列斯基分解;該矩陣必須是對稱的和正定的。

的詳細信息的位置: http://docs.opencv.org/modules/core/doc/operations_on_arrays.html#invert

編輯:除了 有一個solve()方法用另外的方法:

http://docs.opencv.org/modules/core/doc/operations_on_arrays.html#solve

編輯2: 有一個短的表演所有三種方法NCE比較:

Fastest method in inverse of matrix

+1

這可能是OpenCV的文檔中的錯誤,我會在回答改變它,我將添加對性能有一定的參考。 – Micka

+1

如果你想解決'Ax = b',你應該總是使用'solve()',而不是反轉你的矩陣(爲了穩定性,準確性和性能)。 – Ela782