0

对问题进行了修改,使其更加具体和建设性。

我正在做 imtransform,但 xdata 和 ydata 与 size(output) 有很大不同。

[输出,xdata,ydata] = imtransform(imgDouble{1},tform);

真实数据测试:

K>> size(output)

ans =

         854        1230

K>> xdata(2) - xdata(1)

ans =

   1.6635e+03

K>> ydata(2) - ydata(1)

ans =

  876.1373
4

2 回答 2

0

文档中所述,如果输出图像“过大”,imtransform 有时会重新缩放数据。您可以通过添加输入参数 'XYScale' 并将其设置为 1 来强制它匹配输入图像的比例。

如果输出仍然不是您所期望的(并且您已经仔细检查了转换),您可能还需要通过为 'size' 或 'xdata' 和 ' 提供输入参数来设置图像的输出大小数据”。

尚不清楚您要对其余代码做什么,但是如果您有一组坐标来定义某个或多个兴趣点的位置(inlier_array?),并且您想知道它们在哪里' 会在转换后结束,这正是 tformfwd 所做的。

如果您的变换包含翻译,我建议通读内容,尤其是“了解变换图像的坐标”。

于 2013-03-27T14:00:17.383 回答
0

它是关于表达图像位置的。

图像位置表达有两种,

一种也是最常见的一种是

像素指数:

在行和列中

另一种是内在坐标系:

用 x 和 y 表示:

http://www.mathworks.com/help/images/intro_r_1.png

于 2013-03-28T15:07:42.107 回答