-
Notifications
You must be signed in to change notification settings - Fork 2
/
transformImage.txt
117 lines (106 loc) · 3.12 KB
/
transformImage.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
114
115
116
// Takes two arguments, a file with it's full path and a list of
// transformation functions that are required for the image.
// To inform the macro of what tranformations are required, the
// list consists of single letters not separated by spaces,
// each letter representing a transformation that imageJ can
// perform:
//
// c -- rotate clockwise 90 degress
// a -- rotate anticlockwise 90 degress
// v -- vertically flip the image
// h -- horizontally flip the image
// f -- rotate 180 degress
// r -- reverse the stack/ flip in Z
// From what I remember, this macro was written de novo by
// Sebastian Cachero, with minor modifications by Aaron
// Ostrovsky.
// This macro is generally called as part of ProcessingMicroscopeImages.
requires("1.42k");
argument = getArgument;
function trim(s) {
return replace(s,"^\\s*(.*)\\s*$","$1");
}
newName="";
makeNewName=0;
if(argument=="") {
print("Wrong number of arguments");
exit();
} else {
argument = split(argument,",");
if (argument.length!=2) {
exit();
} else if (argument[0]=="" || argument[1]=="") {
exit();
} else {
// print("arg0:",infile,"\n arg1:",transforms);
infile=argument[0];
transforms=argument[1];
imageformat="";
if(endsWith(toLowerCase(infile),".pic")){
imageformat="pic";
run("Biorad...", "open="+infile);
}
if(endsWith(toLowerCase(infile),".nrrd")){
imageformat="nrrd";
run("Nrrd ...", "load=["+infile+"]");
}
if(endsWith(toLowerCase(infile),".jpg")){
imageformat="jpg";
open(infile);
}
while(lengthOf(transforms)!=0) {
print("argument:"+transforms);
operation=substring(transforms,0,1);
transforms=substring(transforms,1,lengthOf(transforms));
print("operation:"+operation);
if(operation=="c") {
run("Rotate 90 Degrees Right");
if(makeNewName) newName=newName+"c";
}
if(operation=="a"){
run("Rotate 90 Degrees Left");
if(makeNewName) newName=newName+"a";
}
if(operation=="h"){
run("Flip Horizontally", "stack");
if(makeNewName) newName=newName+"h";
}
if(operation=="v"){
run("Flip Vertically", "stack");
if(makeNewName) newName=newName+"v";
}
if((operation=="r") && nSlices>1) {
run("Flip Z"); // as of (at least) ImageJ 1.46j "Stack Reverser" became "Flip Z"
// run("Stack Reverser");
if(makeNewName) newName=newName+"r";
}
if(operation=="f"){
args="angle=180 grid=1 interpolation=None";
if(nSlices>1) args=args+" stack";
run("Rotate... ", args);
if(makeNewName) newName=newName+"f";
}
}
if(imageformat=="pic"){
run("Biorad ...", "biorad="+infile);
if(newName != "") {
newName=substring(infile,0,indexOf(toLowerCase(infile),".pic")-3)+newName+substring(infile,lengthOf(infile)-7);
File.rename(infile,newName);
}
}
if(imageformat=="nrrd"){
setKeyDown("alt");
run("Nrrd ... ", "nrrd=["+infile+"]");
setKeyDown("none");
if(newName != "") {
// stem_01.nrrd -> stemv_01.nrrd
newName=substring(infile,0,indexOf(toLowerCase(infile),".nrrd")-4)+newName+substring(infile,lengthOf(infile)-8);
File.rename(infile,newName);
}
}
if(imageformat=="jpg"){
saveAs("Jpeg", infile);
}
close();
}
}