Konvertiere ein Bild von kartesisch nach polar

Ich versuche, ein Bild mit vielen Kreisen mit der gleichen Mitte von kartesisch nach polar zu konvertieren (so dass das neue Bild die Kreise, aber Linien anstelle der Kreise sind, siehe Bild unten), und das funktioniert einwandfrei Verwenden Sie den folgenden Code:

[r, c] = size(img);
r=floor(r/2);
c=floor(c/2);
[X, Y] = meshgrid(-c:c-1,-r:r-1);
[theta, rho] = cart2pol(X, Y); 
subplot(221), imshow(img), axis on;
hold on;
subplot(221), plot(xCenter,yCenter, 'r+');
subplot(222), warp(theta, rho, zeros(size(theta)), img);
view(2), axis square;

Das Problem ist, ich verstehe nicht, warum es überhaupt funktioniert? (offensichtlich ist es nicht mein Code), ich meine, wenn ich die Funktion cart2pol benutze, benutze ich nicht einmal das Bild, es sind nur einige Vektoren x und y, die aus der Meshgrid-Funktion generiert wurden. Ein weiteres Problem ist, dass ich es irgendwie haben möchte ein neues Bild (nicht nur um es mit der Wrap-Funktion zeichnen zu können), das das Originalbild ist, sondern durch die Theta-und Rho-Koordinaten (dh die gleichen Pixel, aber neu angeordnet) ... Ich bin nicht einmal sicher, wie ich das fragen soll Am Ende möchte ich ein Bild haben, das eine Matrix ist, so dass ich jede Zeile summieren und die Matrix in einen Spaltenvektor verwandeln kann ...

Antworten auf die Frage(2)

Ihre Antwort auf die Frage