преобразовать изображение из декартовой в полярную

Я пытаюсь преобразовать изображение с множеством окружностей с одним и тем же центром, из декартовой в полярную (чтобы новое изображение было кругами, но линиями, а не кругами, см. Изображение ниже), и это прекрасно работает, используя следующий код:

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

Проблема в том, что я не понимаю, почему это работает? (очевидно, это не мой код), я имею в виду, когда я использую функцию cart2pol, я даже не использую изображение, это просто некоторые векторы x и y, сгенерированные из функции meshgrid ... и еще одна проблема, я хочу как-то иметь новое изображение (не только для того, чтобы нарисовать его с помощью функции обтекания), которое является исходным изображением, но по координатам тэта и rho (то есть те же пиксели, но переставленные) ... Я даже не уверен, как спросить это в конце я хочу получить изображение, которое представляет собой матрицу, чтобы я мог суммировать каждую строку и превратить матрицу в вектор-столбец ...

Ответы на вопрос(1)

Ваш ответ на вопрос