Matlab 投影变换:寻找新的像素位置

Matlab 投影变换:寻找新的像素位置,matlab,coordinates,transform,coordinate-transformation,projective-geometry,Matlab,Coordinates,Transform,Coordinate Transformation,Projective Geometry,我正在使用保护变换矩阵变换图像。我通过以下步骤得到我的变换,其中a是4个固定点,b是4个移动点 my_tform = fitgeotrans(a,b,'projective'); 然后,我使用imwarp和我的变换矩阵my_tform对图像进行变换,如下所示: newImage = imwarp(Im,my_tform,'cubic','OutputView', imref2d( size(Im) )); 这真的很有效。我的问题是,我想知道在变换之前给定像素位置的新像素位置。我需要一些

我正在使用保护变换矩阵变换图像。我通过以下步骤得到我的变换,其中a是4个固定点,b是4个移动点

my_tform    = fitgeotrans(a,b,'projective');
然后,我使用
imwarp
和我的变换矩阵
my_tform
对图像进行变换,如下所示:

newImage = imwarp(Im,my_tform,'cubic','OutputView', imref2d( size(Im) ));
这真的很有效。我的问题是,我想知道在变换之前给定像素位置的新像素位置。我需要一些快速的代码,因为我会对图像中的每个像素都这样做。 基本上,给定原始图像中的(256256)位置,变换图像中的新位置是什么

请参见下面的示例图像。右边是原始图像,左边是变换后的图像。数据提示在两幅图像中是相同的像素,但位于不同的位置。我想知道如何在两者之间穿行。

你读过这个吗?因此,您有
my_tform
,它包含一个属性
my_tform.T
,用于根据
[x,y 1]=[u,v,1]*T
变换点。感谢您提供此信息。这就是我一直在尝试的,没有运气。如果我以棋盘格的中心为例,尝试使用该方程,它与变换图像中的相同像素不对应。所以,是的,你是对的-这是理论,但我不能让它工作。@keyserSoze请发布你用来转换坐标的代码。在你告诉我们你在做什么之前,我们无法判断你做错了什么。