Mam problem z odwróceniem złożonej macierzy. O ile mi wiadomo, złożona macierz jest po prostu macierzą dwukanałową (CV_32FC2/CV_64FC2).Jak wykonać odwrotność na złożonej macierzy w OpenCV?
Powiedzmy mam macierzy 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);
Po pełnić funkcję inwertowany, wciąż otrzymuję ten błąd:
OpenCV Error: Assertion failed (type == CV_32F || type == CV_64F) in invert
Funkcja inwertowanego działa dobrze z szarości załadowaniu obrazu (1 kanał), ale trudno mi zrobić odwrotność na złożonej macierzy, która zawiera część rzeczywistą i urojoną.
Czy ktoś może mi powiedzieć, jak rozwiązać odwrotny problem złożonej macierzy? Najlepiej przy użyciu metody DECOMP_SVD, ponieważ nie mogę uzyskać pożądanego wyniku przy użyciu metody DECOMP_LU lub DECOMP_CHOLESKY, gdy próbowałem z obrazem pojedynczego kanału, prawdopodobnie z powodu materii pojedynczej macierzy. Dzięki.
Thanks kolego, to składa się mój dzień. Działa dla powyższej macierzy. Wypróbowałem program z obrazem i działa on z powodzeniem. Będę potrzebował dalszej analizy obrazu i mogę teraz przejść do następnego etapu przetwarzania. Dzięki jeszcze raz! – user2223228