首页 > 解决方案 > ImageJ 连接宏单独运行但出现错误:“文件名”不是较大宏中“image1”的有效选择

问题描述

我正在分析非共振的 MRI 图像超堆栈,需要将其编译成单个共振图像堆栈。我需要手动完成其中的一部分,所以我告诉程序我需要多少个子堆栈,并指定切片#。然后,根据我的样本方向(我还输入:从大到小锥度 (BS) 或从小到大锥度 (SB)),图像需要针对该方向连接。理想情况下,我想弄清楚如何制作一个循环,以便串联适用于我可能拥有的任意数量的子堆栈,但在这个阶段我什至不知道如何去做。

我已经在名称周围尝试了“+”,[]'s,()'s,“”'s,&在特定子堆栈名称之前,尝试使用selectWindow......我忘记了其他事情......

    //SPECIFIES NUMBER OF STACKS TO MAKE AND LOOPS
    numberofstacks=getNumber("How many stacks?", 3);
       i=0;
       do {
    selectWindow("2D"); 
    first=getNumber("Enter first slice:", 0);
    last=getNumber("Enter last slice:", 0);
    run("Make Substack...", "  slices="+first+"-"+last);
    getInfo("image.filename");
    rename("substack"+i);
    i=i+1;
    }while (i<numberofstacks);
   //INSERTS PAUSE FOR USER TO ADJUST CONTRAST IN STACKS
   waitForUser("Press OK to continue");
   //MAKES INPUT TO DECIDE IF CODING S-B or B-S
   bs=getString("Scrolling from left to right does the tooth start big 
      (b) or small (s)?", "b");
   if (bs=="b") {
      run("Concatenate...", "  title=[Concatenated Stacks] keep 
      image1=substack3 image2=substack2 image3=substack1 image4=substack0 
      image5=[-- None --]");
   run("In [+]");
   run("In [+]");
   } 
   run("Concatenate...", "  title=[Concatenated Stacks] keep 
      image1=substack0 image2=substack1 image3=substack2 image4=substack3 
      image5=[-- None --]");
   run("In [+]");
   run("In [+]");

这是我手动连接它们时记录功能给我的代码......

   run("Concatenate...", "  title=[Concatenated Stacks] keep 
    image1=substack3 image2=substack2 image3=substack1 image4=substack0 
      image5=[-- None --]");
      run("In [+]");
      run("In [+]");

每当我将确切的代码输入到较大的宏中时,它都会告诉我,““subimage3”不是“image1”的有效选择。”

标签: concatenationimagej

解决方案


推荐阅读