Matlab 如何使用二维图像的imregister和imregtform验证旋转变换?

Matlab 如何使用二维图像的imregister和imregtform验证旋转变换?,matlab,rotation,2d,registration,transformation,Matlab,Rotation,2d,Registration,Transformation,我试图理解imregtform,我旋转了一个图像,然后使用imregtform将其注册,但转换矩阵完全不同。我认为这是因为平移图像周围的边缘,有人知道如何使用imregtform验证旋转结果吗 tformSimilarity.T' = [17.0174 -1.0844 -771.0130 1.0844 17.0174 -916.0525 0 0 1.0000]

我试图理解
imregtform
,我旋转了一个图像,然后使用
imregtform
将其注册,但转换矩阵完全不同。我认为这是因为平移图像周围的边缘,有人知道如何使用
imregtform
验证旋转结果吗

tformSimilarity.T' = [17.0174   -1.0844 -771.0130  

                      1.0844    17.0174 -916.0525

                      0         0        1.0000]
我的第二个问题是关于
imregister
。据我所知,imregister使用
imwarp
从中心旋转图像,而
imtransform
从(1,1)旋转图像,因此如果我使用
imtransform
创建已知旋转图像,然后使用
imregister
查找变换,则会变得更复杂

M=100;N=M; 

A=zeros(M); 

A(1:M+1:50*(M+1))=1;

t=[ 0.8660 -0.5000 0; 0.5000 0.8660 0 ;0 0 1.0000];

figure; imshow(A);

B = imtransform(A, maketform('affine',t), 'XData', [1 N], 'YData', [1 M], 'Size', [M N]); 

fixed = A; 

moving = B; 

[optimizer,metric] = imregconfig('monomodal'); 

figure, 

imshowpair(A,B,'Scaling','joint'); 

tformSimilarity = imregtform(fixed,moving,'similarity',optimizer,metric);

tformSimilarity.T'