【问题标题】:Image J: Save stack as animated gifImagej:将堆栈另存为动画 gif
【发布时间】:2015-11-11 16:11:08
【问题描述】:

我有几个来自共聚焦显微镜的图像堆栈保存为 .lsm,我想编写一个宏:

  1. 在文件夹中打开图像
  2. 制作合成,然后堆叠为 RGB,然后设置动画选项
  3. 将此作为动画 Gif 保存到另一个文件夹

到目前为止我所做的:

function stack_to_gif(input, output, filename, fps) {
    open(input + filename);
    run("Make Composite");
    run("Stack to RGB", "slices");
    run("Animation Options...",  "speed=fps");
    run("Animated Gif ... ", "name=title=[Do not use] optional=[] " +
    "image=[No Disposal] set=500 number=-1 transparency=[No Transparency] "     +
    "red=0 green=0 blue=0 index=0 filename=output+filename");
    saveAs("Animated Gif...", output+filename);
    close();
}

inputDir=getDirectory("Choose an input location");
outputDir=getDirectory("Choose an output location");
fps=120;

setBatchMode(true);
list = getFileList(inputDir);
for (i = 0; i < list.length; i++){
    stack_to_gif(inputDir, outputDir, list[i], fps);
}
setBatchMode(false);

我知道这两个底部部分在我在另一个宏中使用它们时也可以使用。

我的问题在于 saveAs("Animated Gif...") 部分,因为它不允许我保存 RGB 类型,即使我手动保存它也可以。

到目前为止我尝试了什么:

  • 在 saveAs("Animated Gifs...") 中使用相同的 run("Animated Gifs...") 选项
  • 使用其中一种,但不能同时使用两种
  • 使用运行(“8位”);在动画选项之后,它有效(但我失去了颜色)

让我烦恼的是,当我手动操作时它工作得非常好,但我收到错误消息

要保存为动画 GIF,必须通过 Image>Type>8 位颜色命令将堆栈转换为 8 位索引颜色。

我不知道为什么我自己做时不会发生这种情况。

感谢您的帮助。

【问题讨论】:

  • 有关 ImageJ 使用和与 ImageJ 和 Fiji 插件相关的特定命令的问题最好直接发送至ImageJ forum,ImageJ 专家更有可能阅读和回答。

标签: macros animated-gif imagej


【解决方案1】:

当我使用宏录制器(Plugins > Macros > Record...)录制File > Save As > Animated Gif...对应的命令时,我得到以下命令:

run("Animated Gif ... ", "name=[my new name] set_global_lookup_table_options=[Do not use] optional=[] image=[No Disposal] set=20 number=-1 transparency=[No Transparency] red=0 green=0 blue=0 index=0 filename=/usr/temp/animated.gif");

在您的命令中,name=title=[Do not use] 部分似乎是错误的。如果要使用当前图片标题,使用字符串连接插入变量的内容:

run("Animated Gif ... ", "name=[" + myTitle + "] set_global_lookup_table_options=[Do not use] optional=[] image=[No Disposal] set=20 number=-1 transparency=[No Transparency] red=0 green=0 blue=0 index=0 filename=/usr/temp/animated.gif");

但无论如何,name 参数不是必需的,因为它会被包含整个文件路径的 filename 参数覆盖,因此您可以放心地离开它。

以同样的方式,您可以省略任何与默认值相同的参数。在我的测试中,这同样有效:

run("Animated Gif ... ", "set=20 filename=/usr/temp/animated.gif");

注意:保存动画 gif 时,播放速度完全由 Set delay in milliseconds 参数决定(在我的示例中为set=20),因此运行@987654330 @ 对保存的文件没有影响。 (请参阅source codewiki page 似乎已经过时/错误。请自行更正文档,这是一个 wiki。)

【讨论】:

    【解决方案2】:

    我们遇到了同样的问题。您需要将“set_global_lookup_table_options”中的选项从 [Do not in use] 更改为 [Load from Current Image]。此功能以 50us 延迟 (set=50) 将 z-stacks 保存为动画 gif 并且可以解决颜色问题。

    function animated_gifZ(input, output, filename)
    {
    open(input + filename);
    run("RGB Color", "slices");
    run("8-bit Color", "number=256");
    run("Animated Gif ... ", "set_global_lookup_table_options=[Load from Current Image]" +
    "optional=[] image=[No Disposal] set=50 number=-1 transparency=[No Transparency]" +
    "red=0 green=0 blue=0 index=0 filename=output+filename");
    saveAs("Animated Gif...", output+filename);
    close();
    }
    

    如果你想加快速度,你可以使用:

    function gifZ(input, output, filename)
    {
    open(input + filename);
    run("RGB Color", "slices");
    run("8-bit Color", "number=256");
    run("Properties...", "frame=[0.1 sec]");
    saveAs("Gif", output+filename);
    close();
    }
    

    希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-01
      • 1970-01-01
      • 2012-12-02
      • 1970-01-01
      • 1970-01-01
      • 2021-06-24
      • 1970-01-01
      • 2021-08-25
      相关资源
      最近更新 更多