首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我们能得到DM脚本没有在前面的图像吗?

我们能得到DM脚本没有在前面的图像吗?
EN

Stack Overflow用户
提问于 2015-07-20 20:51:38
回答 2查看 378关注 0票数 3

我有关于处理多个系列图像的问题:

  1. 当我们编码时,我们可以通过image front:=GetFrontImage()获得正面图像。我还能得到前面没有的图像吗?例如,如果总共有20个图像,我可以通过类似于这个伪命令:image img7:=GetFrontThe7thImage()的东西直接得到第7张图像(从前面到后面)吗?
  2. 我有一系列的图像,图像的名字格式是一致的,比如前面图像的名字是xxx001,第二个是xxx002,第三个是xxx003,.,Nth图像是xxxN,我可以使用像image N:=imagexxxN这样的编码定义,然后直接使用图像N进行数学处理吗?或者我应该用一个循环来一个接一个地得到图像?
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-21 06:33:15

1)

由于您可以在一个窗口/保存的数据集中拥有多个映像(只需将一个图像复制并粘贴到另一个图像上),因此使用ImageDocuments进行迭代通常是比较省事的。ImageDocument是存储在硬盘中并从硬盘中加载的对象。当您创建一个图像,但不显示它时,这个图像还没有一个ImageDocument,但是所有(一次)显示的图像都有。

若要选择最后一个图像(最后面的图像),可以执行以下操作:

代码语言:javascript
运行
复制
number nDocs = CountImageDocuments()
imageDocument docLast = GetImageDocument( nDocs-1 )
image imgLast := ImageDocumentGetImage( docLast, 0 )
SelectImage( imgLast )

请注意,您也可以使用OOP编码方式,将方法的第一个参数放在命令的前面,以允许管道行,也可以在一行中获取内容。因此,您可以按行选择第二位最前面的图像(前提是至少有2张)。

GetImageDocument(1).ImageDocumentGetImage(0).SelectImage()

2)

您需要一个循环来访问多个图像,但是对于并行处理,您可以考虑将数据放入一个3D数据堆栈中。(还请注意,您可以使用File/Open Series...将多幅图像加载到3D堆栈中)。根据您想要做的事情,您可以使用Slice2命令对这个堆栈“逐片”迭代z维,或者您可以对整个3D数据进行操作。

票数 2
EN

Stack Overflow用户

发布于 2015-07-21 01:45:03

  1. 对于这一部分,您需要两个函数CountImages()和FindImageByIndex()。下面是一个示例,说明它们是如何工作的: 结果(\n可用图像:\n);数字imageCount = CountImages();if (imageCount > 0) { for (数字imageIndex = 0;imageIndex < imageCount;imageIndex++) { imageName := FindImageByIndex( imageIndex );String imageName = nextImage.ImageGetName();结果(“Image”+imageIndex+:“+imageName+”\n);}imageCount结果(“None\n”);
  2. 如果您的图像都是开放的,并且按照您的指示进行了系统命名,那么您可以使用GetNamedImage()函数找到一个特定的图像,如下所示: 字符串baseName = "xxx";数字desiredImageNumber = 3;字符串imageName = baseName +格式(desiredImageNumber,"%03.0f");图像desiredImage := GetNamedImage(imageName);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31526131

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档