Matlab/如何寻找旋转中心和旋转坐标

目的是寻找旋转中心和旋转角度,但是旋转前和旋转后的图形在同一张图片上,如何区分旋转前后的图形的坐标。

function re = getCurve(img)

[m,n]=size(img);

oy=m/2;
ox=n/2;

%求中心點到圖像四個角的距離
up_left=sqrt((oy-0)^2+(ox-0)^2);
up_right=sqrt((oy-0)^2+(ox-n)^2);
down_left=sqrt((oy-m)^2+(ox-0)^2);
down_right=sqrt((oy-m)^2+(ox-n)^2);

num=3600;
%求中心點距離四角距離的最大值,作為變換后圖像的高。
%這個最大值也是極坐標變換的極徑
radius=round(max([up_left up_right down_left down_right]));
re = zeros(num,1);

for i=0:1:radius          %縱坐標代表極徑,不同情況不一樣
    for j=1:num       %橫坐標代表極角,為3600
        %oy,ox作為極坐標變換中心坐標,需要作為偏移量相加
        ind = j/10;
        h=round(oy+i*sin(ind*pi/180));
        w=round(ox+i*cos(ind*pi/180));
        
        if h>0 && w> 0&& h<=m && w<=n       %超出原圖像的像素忽略
            re(j)= re(j) +double(img(h,w));
        end
    end
end
re = re/sum(re);
end

参考一下:https://zh.codeprj.com/blog/b5066a1.html