複素数行列の逆行列を行うのに問題があります。私の知る限り、複雑なマトリックスは単純に 2 チャンネルのマトリックス (CV_32FC2 / CV_64FC2) です。
行列 C があるとしましょう:
Mat C(2, 2, CV_64FC2);
C.at<Vec2d>(0,0)[0] = 1;
C.at<Vec2d>(0,0)[1] = 1;
C.at<Vec2d>(0,1)[0] = 3;
C.at<Vec2d>(0,1)[1] = 4;
C.at<Vec2d>(1,0)[0] = 2;
C.at<Vec2d>(1,0)[1] = -1;
C.at<Vec2d>(1,1)[0] = 5;
C.at<Vec2d>(1,1)[1] = 2;
Mat InverseMat;
invert(C, InverseMat, DECOMP_SVD);
反転機能を実行した後、次のエラーが発生し続けます。
OpenCV エラー:反転でアサーションが失敗しました (タイプ == CV_32F || タイプ == CV_64F)
反転機能は、グレースケールのロードされた画像 (1 チャネル) でうまく機能しますが、実数部と虚数部を含む複素行列を逆にするのは困難です。
複素行列の逆問題の解き方を教えてください。DECOMP_LU または DECOMP_CHOLESKY メソッドを使用して単一チャネルの画像を試したときに目的の結果が得られないため、DECOMP_SVD メソッドを使用することをお勧めします。これは、おそらく特異行列の問題が原因です。ありがとう。