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'