2016-03-22 23 views
0

Bir kanalın seri olarak bölünmesi için bir ImageJ mesaj panosunda bulduğum aşağıdaki makroyu değiştirdim, "OneChannel" adlı yeni bir klasör oluştur ve çıkışı yeni klasöre kaydet. Kod beklendiği gibi çalışır: yeni klasörü oluşturur, kanalları böler ve yeni bir adla kaydeder. Tek sorun, yeni dosyaları orijinaller ile aynı klasöre kaydettiğidir ve bunları daha sonra yeni oluşturulan klasöre elle sürüklemem gerekir. Bununla uğraşmaya çalıştım ama işe yaramayacağım. Herhangi bir girdi takdir edilecek, ben Java için çok yeni.ImageJ makro yeni klasör oluştur ve çıktıyı yeni klasöre kaydet

dir=getDirectory("Choose a Directory"); 
print(dir); 
splitDir= dir + "OneChannel"; 
print(splitDir); 
File.makeDirectory(splitDir); 
list = getFileList(dir); 

for (i=0; i<list.length; i++) { 
    if (endsWith(list[i], ".tif")){ 
       print(i + ": " + dir+list[i]); 
      open(dir+list[i]); 
      imgName=getTitle(); 
     baseNameEnd=indexOf(imgName, ".tif"); 
     baseName=substring(imgName, 0, baseNameEnd); 
     run("Split Channels"); 
     selectWindow(imgName + " (blue)"); 
     close(); 
     selectWindow(imgName + " (green)"); 
     saveAs("Tiff", splitDir + baseName + "-AnkG.tif"); 
     close(); 
     selectWindow(imgName + " (red)"); 
     run("Close All"); 
    } else { 
    write("One Channel Conversion is Complete"); 
    } 
} 
+0

Makroyu bulduğunuz "mesaj panosuna" bir bağlantı ekleyebilir misiniz? ImageJ kullanımı sorusu en iyi [ImageJ forum] (http://forum.imagej.net/) 'den istenir. –

+0

@JanEglinger işte burada: http://imagej.1557.x6.nabble.com/Batch-split-channels-and-save-td3687341.html – Nick

cevap

1

Aslında bunu anladım. 3. satırda "/ OneChannel /" değerini koymam gerekiyordu. Yaptığım anda iyi çalışıyor. Sanırım daha önce gerçek bir dosya yolu belirtmemiştim ama şu andaki işler iyi.

dir=getDirectory("Choose a Directory"); 
print(dir); 
splitDir= dir + "/OneChannel/"; // This was my error, I left out "//" surrounding OneChannel 
print(splitDir); 
File.makeDirectory(splitDir); 
list = getFileList(dir); 

for (i=0; i<list.length; i++) { 
    if (endsWith(list[i], ".tif")){ 
       print(i + ": " + dir+list[i]); 
      open(dir+list[i]); 
      imgName=getTitle(); 
     baseNameEnd=indexOf(imgName, ".tif"); 
     baseName=substring(imgName, 0, baseNameEnd); 
     run("Split Channels"); 
     selectWindow(imgName + " (blue)"); 
     close(); 
     selectWindow(imgName + " (green)"); 
     saveAs("Tiff", splitDir + baseName "-AnkG.tif"); 
     close(); 
     selectWindow(imgName + " (red)"); 
     run("Close All"); 
    } else { 
    write("One Channel Conversion is Complete"); 
    } 
}