刚体图像变换MATLAB

刚体图像变换MATLAB,matlab,image-processing,rotation,translation,Matlab,Image Processing,Rotation,Translation,我有两张脸部图像,需要确保他们的眼睛对齐,所以我写了一个脚本,让我可以得到两张照片中眼睛的坐标 从那里我可以导出旋转矩阵R和平移向量T,它们代表刚性平面变换,应用于一个图像,以便将其与第二个图像对齐 但是,我不知道如何将旋转和平移应用于图像亮度强度并保存图像的新版本 我知道这些函数,但考虑到R和t,我真的不知道如何使用它们 我想应该是这样的: tform = <--- how to build this from R and T?? B = imwarp(A,tform) tf

我有两张脸部图像,需要确保他们的眼睛对齐,所以我写了一个脚本,让我可以得到两张照片中眼睛的坐标

从那里我可以导出旋转矩阵R和平移向量T,它们代表刚性平面变换,应用于一个图像,以便将其与第二个图像对齐

但是,我不知道如何将旋转和平移应用于图像亮度强度并保存图像的新版本

我知道这些函数,但考虑到R和t,我真的不知道如何使用它们

我想应该是这样的:

tform = <--- how to build this from R and T??
B = imwarp(A,tform)
tform=
I=imread('cameran.tif');
tform=maketform('affine',[1 0;5 1 0;0 0 1]);
J=imtransform(I,tform);
imshow(I)、figure、imshow(J)

您可以将“仿射”更改为投影,并相应地指定投影变换矩阵


在您的例子中,对于2D图像,您可以将变换为[R T;0 0 1],其中R是2x2旋转矩阵,T是2x1平移矩阵

阅读我对问题的回答。如果您无法找到问题的解决方案,请在此处发表评论。另一方面,如果您有相应的点(两幅图像中眼睛的坐标),为什么不直接使用
figeotrans
,而不是计算
t
R
,然后从中计算
TFORM
。我已经在上面的回答中解释了如何使用
fitgeotrans
。此外,还有很好的文档。@Parag-我明白了,你的答案似乎很有用,我不知道有这样的功能。那么我的移动点向量是什么呢?你介意在这篇文章中详细说明答案吗?谢谢!读取图像拼接。我尝试了这个方法,但由于某种原因,如果我包含了平移向量,输出图像就会变得一团糟。也就是说,尺寸变成了
1x1x3
而不是
1080x960x3
,有什么线索吗?你能上传你正在使用的图像和变换矩阵吗?你也可以使用[output,xdata,ydata]=imtransform(图像,变换,'xdata',[1宽度],'ydata',[1高度]);这将为您提供输出图像和变换像素的位置,只需查看matlab帮助中的imtransform