【问题标题】:How to preserve spatial reference using Imcrop with Matlab如何使用 Imcrop 和 Matlab 保存空间参考
【发布时间】:2016-08-06 20:35:29
【问题描述】:

我有一个图像和该图像的空间参考对象。 现在我想根据空间参考对象通过坐标裁剪图像。 Imcrop 函数只能根据像素坐标进行裁剪。有没有办法根据世界坐标进行裁剪? 我尝试使用 Imcrop 并计算新的参考对象,但我在坐标变换中迷失了。

扭曲图像后的参考对象示例。

imref2d with properties:

       XWorldLimits: [-775.4357 555.5643]
       YWorldLimits: [-488.3694 523.6306]
          ImageSize: [1012 1331]
PixelExtentInWorldX: 1
PixelExtentInWorldY: 1
ImageExtentInWorldX: 1331
ImageExtentInWorldY: 1012
XIntrinsicLimits: [0.5000 1.3315e+03]
YIntrinsicLimits: [0.5000 1.0125e+03]

我真正想做的是裁剪图像,使点 (0,0) 成为裁剪图像的中心。

【问题讨论】:

  • 当您说“空间参考”时,您的意思是您在世界坐标和像素坐标之间进行了转换?
  • 我想我有。我在问题中添加了一些信息。

标签: matlab image-processing


【解决方案1】:

根据您的空间参考,每个像素在世界坐标中的尺寸为1 x 1。因此,如果您想在世界坐标(Xw,Yw) 和图像坐标(Xi,Yi) 之间进行转换,请执行以下操作:

Xi = round(abs(-775.4357 - Xw))

Yi = round(abs(-488.3694 - Yw))

因此,如果您想裁剪图像,使得真实世界坐标 (0,0) 将成为新裁剪图像的中心,并且新图像的大小将是宽度上的高度,而不是 imcrop 的矩形将是

[(755 - width) (488 - height) width height]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-20
    • 2016-12-07
    • 2021-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-25
    相关资源
    最近更新 更多