Макрос конкатенации ImageJ выполняется один, но выдает ошибку: «filename» не является допустимым выбором для «image1» в макросе большего размера - PullRequest
1 голос
/ 16 июня 2019

Я анализирую гиперстеки изображений МРТ, которые не являются резонансными и должны быть собраны в одну стопку резонансных изображений.Мне нужно сделать часть этого вручную, поэтому я сообщаю программе, сколько подстаков мне нужно, и указываю номер слайса.Затем, в зависимости от направления моей выборки (которое я также ввожу: конус от большого к маленькому (BS) или конус от маленького к большому (SB)), изображения должны объединяться для этого направления.В идеале я хотел бы выяснить, как сделать цикл, чтобы конкатенация работала для любого количества подстаков, которые у меня могут быть, но я даже не знаю, как это сделать на данном этапе.

Я пробовал "+" вокруг имени, [] 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 "."

...