ImageResize() 的语法是什么

What is the syntax of ImageResize()

我有一些大小会发生变化的数据,并希望以相同的方式显示它们 window。命令

void ImageResize( BasicImage im, Number num_dim, Number... ) 

看起来很合适,但语法一点都不清晰。
假设我有 512x5 的数据集,现在它需要是 367x5。

, Number...) 表示此命令采用不同数量的参数,所有参数都被解释为 number 参数。执行此操作的命令通常使用它们的其他参数之一来指定后面有多少个此类参数。 一个典型的例子也是 SliceN 命令。

在这种特殊情况下,该命令不仅允许您更改图像中尺寸的大小,还可以更改尺寸的数量。 f.e 是一个非常有用的命令。将 2D 图像更改为 3D 堆栈等。

The command ImageResize( BasicImage im, Number num_dim, Number... ) does several things:

  • It replaces im in-place, so the meta-data, display and window remains the same
  • It adjusts the dimension calibration when the dimension size is changed. Here, the assumption is, that the field-of-view before and after the resize is the same. (The command can be used to easily scale images as shown in the example below.)
  • All values of the image im are set to zero. ( If you need to keep the values, you need to act on an image clone!)

示例 1:使用双线性插值调整图像大小

image before := GetFrontImage()
number sx, sy
before.GetSize(sx,sy)
number factor = 1.3
image after := before.ImageClone()  
after.ImageResize( 2, factor*sx, factor*sy )    // Adjusts the empty container with meta-data 
after = warp(before, icol/factor, irow/factor ) // interpolate data
after.ShowImage()

示例 2:将 2D 图像扩展到 3D 堆栈

number sx = 100
number sy = 100
image img := RealImage("2D",4,sx,sy)
img = iradius* Random()
img.ShowImage()
OKDialog("Now into a stack...")
number sz = 10
img.ImageResize(3,sx,sy,sz) // All values are zero now!
img = iradius * Random()