-
Notifications
You must be signed in to change notification settings - Fork 2
/
BatchConvertLSMsToPICs.txt
113 lines (104 loc) · 2.85 KB
/
BatchConvertLSMsToPICs.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
// "BatchConvertLSMsToPICs"
//
// This macro batch processes all the lsm files in a folder
// saving them as pic files.
// Limitations/Specifics
// 1) Only works with Fiji
// 2) Swaps channel 1 and 2
// 3) Always flips vertically
// 4) Expects names to be in regular JLab format
// or in something where all it has to do is append the
// v01.pic v02.pic etc to the filestem
// (Slightly) Adapted by Greg Jefferis from code at
// http://rsb.info.nih.gov/ij/macros/BatchProcessFolders.txt
requires("1.42k");
file = getArgument;
dir=""
outputDir=""
outputformat="pic" // or nrrd
// 1) Check what arguments we've received
// --------------------------------------
//print("file = "+file);
if (file!=""){
arg = split(file,",");
if (arg.length<2 || arg.length>4) {
exit();
}
if (arg.length==3){
outputformat=arg[2];
if( ! (outputformat == "pic" || outputformat == "nrrd")){
exit("Output format must be either pic or nrrd");
}
}
// ... now deal with directories
if(arg[0]=="" || arg[1]==""){
exit();
} else {
outputDir=arg[1];
if(!endsWith(outputDir,"/")) outputDir=outputDir+"/";
if(File.isDirectory(arg[0])) {
// we're dealing with a directory
dir=arg[0];
if(!endsWith(dir,"/")) dir=dir+"/";
} else {
// single file
dir=File.getParent(arg[0])+"/";
file=File.getName(arg[0]);
processFile(dir,outputDir,file);
exit();
}
}
}
function countFiles(dir) {
list = getFileList(dir);
for (i=0; i<list.length; i++) {
if (endsWith(list[i], "/"))
countFiles(""+dir+list[i]);
else
count++;
}
}
function processFiles(dir,outputDir) {
list = getFileList(dir);
for (i=0; i<list.length; i++) {
if (endsWith(list[i], "/"))
processFiles(""+dir+list[i], outputDir);
else {
showProgress(n++, count);
processFile(dir,outputDir,list[i]);
}
}
}
function processFile(dir,outputDir,file) {
if (endsWith(file, ".lsm") || endsWith(file,".LSM")) {
path = dir+file;
run("Bio-Formats Importer", "open=" + path + " view=[Standard ImageJ] stack_order=Default split_channels");
title=getTitle();
noImages=parseInt(substring(title,(lengthOf(title)-1),lengthOf(title)));
workingImage=getImageID();
noImages++;
for(i=noImages;i>0;i--){
if(i==1) channel=2;
if(i==2) channel=1;
selectImage(workingImage);
processImage();
if(outputformat=='pic'){
run("Biorad ...","biorad=["+outputDir+substring(file,0,lastIndexOf(file,"."))+"_0"+channel+".pic]");
} else {
setKeyDown("alt");
run("Nrrd ... ", "nrrd=["+outputDir+substring(file,0,lastIndexOf(file,"."))+"_0"+channel+".nrrd]");
setKeyDown("none");
}
selectImage(workingImage);
close();
workingImage++;
}
}
}
function processImage() {
// run("Flip Vertically", "stack");
// run("Z Project...", "projection=[Standard Deviation]");
// run("8-bit");
// run("Flip Vertically");
}