我有一个图像和该图像的空间参考对象。 现在我想根据空间参考对象按坐标裁剪图像。 函数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)成为裁剪图像的中心。
答案 0 :(得分:1)
根据您的空间参考,每个像素在世界坐标中的尺寸为1 x 1
。因此,如果您想在世界坐标(Xw,Yw)
和图片坐标(Xi,Yi)
之间进行转换,请执行以下操作:
Xi = round(abs(-775.4357 - Xw))
Yi = round(abs(-488.3694 - Yw))
因此,如果您想要裁剪图像,使得真实世界坐标(0,0)
将成为新裁剪图像的中心,并且新图像的大小将是高度宽度,而不是{{1将是
imcrop