关于提取图像的尺寸信息

Concerning extracting the size info of the image

我正在尝试使用 GetSize() 和 Get3DSize() 提取图像的维度大小信息,如下所示:

try { 2DData.Get3DSize (sizeX, sizeY, sizeZ); }
catch { 2DData.GetSize (sizeX, sizeY); Break; } 
OKDialog ("Size in Z direction ="+ sizeZ)

对于 2D 数据,Get3DSize() 显然不起作用,将执行 catch() 中的内容以捕获此错误。奇怪的是Z方向的尺寸还是可以提取出来,而且是1。这里发生了什么?

GMS 将在内部对“non-existing”维度使用维度大小 1。

GetSize()Get3DSize() 只是旧的方便的“shorthand”命令。我建议使用:

  • ImageGetDimensionSize() 访问特定维度。
  • ImageGetNumDimensions()查询已有维度个数
  • ImageGetDimensionSizes()一次读取多个维度,f.e。计算图像中值的数量。这就是“1”派上用场的地方。
    image test := realImage("",4,100)
//    image test := realImage("",4,10,20)
//    image test := realImage("",4,10,20,30)
    number x,y,z
    test.ImageGetDimensionSizes(x,y)
    result("\n x="+x)
    result("\n y="+y)
    test.ImageGetDimensionSizes(x,y,z)
    result("\n x="+x)
    result("\n y="+y)
    result("\n z="+z)
    result("\n # values:"+(x*y*z))