convertir una imagen de cartesiano a polar

Estoy tratando de convertir una imagen con muchos círculos con el mismo centro, de cartesiano a polar (para que la nueva imagen sea los círculos pero las líneas en lugar de los círculos, vea la imagen a continuación), y eso está funcionando bien usando el siguiente código:

[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;

El problema es que no entiendo por qué funciona. (obviamente no es mi código), quiero decir, cuando uso la función cart2pol ni siquiera uso la imagen, son solo algunos vectores x e y generados a partir de la función meshgrid ... y otro problema es que quiero tener una nueva imagen (no solo para poder dibujarla con la función de ajuste) que es la imagen original, sino por las coordenadas theta y rho (es decir, los mismos píxeles pero reorganizados) ... Ni siquiera estoy seguro de cómo preguntar esto , al final quiero tener una imagen que sea una matriz para poder sumar cada fila y convertir la matriz en un vector de columna ...

Respuestas a la pregunta(1)

Su respuesta a la pregunta