Bonjour,

j'ai un problème avec mon script imagej:

Script:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
 
// Ouverture du dossier contenant les images à traiter et ou les enregistrer
input = getDirectory("Dossier à traiter?"); 
list = getFileList(input); 
output = getDirectory("Ou enregistrer?");
 
  Dialog.create("operating system");
  Dialog.addChoice("Type:", newArray("Linux", "Windows"));
  Dialog.show();
  type = Dialog.getChoice();
 
  if (type=="Linux") os="\/";
 
  if (type=="Windows") os="\\";
 
 
// Liste des images
for (i=0; i<list.length; i++)
{
    image = list[i];
    path = input + image;
 
// Utilisation de Bio-Formats macro avec recuperation des données 
    run("Bio-Formats Macro Extensions");
    Ext.setId(path);
    Ext.getCurrentFile(file);
    Ext.getSeriesCount(seriesCount);
 
 
 
// Importation de Bio-Formats (chemin du stack d'image, mode couleur,hyperstack, serie d'images)
    run("Bio-Formats Importer", "open=&path  color_mode=Colorized view=Hyperstack stack_order=XYCZT series_");
 
// Titre de l'image
    t=getTitle();
 
// Creation d'un sous repertoire pour y stocker les images finales
    sub_output = output +t+" Bacteria";
    File.makeDirectory(sub_output);                                                 
    close();
 
//Creation tableau csv
    table1=*"Results of "+t*;
    Table.create(table1)*;
 
// Creation Array pour %Bacteria et %Area
 
 
 
// Importation des differentes series du numero 4 au maximum
    	for (s=4; s<=seriesCount; s++)
	{
 
		run("Bio-Formats Importer", "open=&path color_mode=Colorized split_channels view=Hyperstack stack_order=XYCZT series_"+s);  
 
		run("Close");
 
// Titre de l'image
        	subtitle=getTitle();
 
		run("Duplicate...","title=["+ subtitle+" -Bacteria]");
		run("32-bit");
		run("Maximum...");//"radius=2"
		waitForUser;
 
		imageCalculator("Subtract create 32-bit", subtitle,subtitle+" -Bacteria");
		selectWindow("Result of "+subtitle);
		setOption("BlackBackground", false);
		run("Make Binary");
		run("Close-");
		waitForUser;
 
		run("Set Measurements...", "area mean min centroid center perimeter fit median display redirect=None decimal=3");
		run("Analyze Particles...", "size=0-Infinity circularity=0.0-1.0 display clear summarize add in_situ");
		waitForUser;
 
// Recuperation de la valeur %Area 
    selectWindow("Summary")*;
    IJ.renameResults("Summary","Results");
 
    pArea=getResult("%Area",0)*;
    pBacteria=pArea*;
 
 
    waitForUser;
 
// Selection du tableau et insertion des valeurs (nom de l'image, %Area, % bacteria)
    selectWindow(*"Results of "+t)*;
 
    Table.set("Slice", s-4,subtitle)*;
    Table.set("% Area",s-4,pArea)*;
    Table.set("% Bacteria",s-4,pBacteria)*;
 
    Table.update;
 
 
waitForUser;
// Enregistrement du fichier csv
    Table.save(sub_output + os + t + " bacteria Summary.csv");
 
// Enregistrement de l'image et region d'interet
    selectWindow(subtitle);
    saveAs("Tiff",  sub_output + os+ subtitle+ "+bacteria");
    roiManager("Save", sub_output + os + subtitle+ " Bacteria Roi.zip");
    waitForUser;
	}
 
open(sub_output + os + t + " bacteria Summary.csv");
//selectWindow(t + " bacteria Summary.csv");
 
ValTab=Table.size();
ArrAr=newArray(ValTab);
ArrBact=newArray(ValTab);
 
for(i=0;i<=(ValTab-1);i++)
{
selectWindow( t + " bacteria Summary.csv");
print("tableau: ",  t + " bacteria Summary.csv");
print("valeur :",i);
ArrAr[i]=getResult("% Area",i);
ArrBact[i]=getResult("% Bacteria",i);
print("Area :",ArrAr[i]);
print("Bacteria :",ArrBact[i]);
}
waitForUser;
 
Array.sort(ArrAr);
Array.sort(ArrBact);
 
LAr=ArrAr.length;
LBa=ArrBact.length;
 
 
// calcul de la mediane
 
if ((LAr % 2)==0){
 
print("Pair");
MAr1=ArrAr[((LAr/2)-1)];
MAr2=ArrAr[(LAr/2)];
MedArea=((MAr1+MAr2)/2);
print(MAr1);
print(MAr2);
print(MedArea);
 
}
 
if ((LAr % 2)==1){
 
print("Impair");
MedArea=ArrAr[(LAr/2)];
print(MedArea);
 
}
 
waitForUser;
 
 
if ((LBa % 2)==0){
 
print("Pair");
LBa1=ArrBact[((LBa/2)-1)];
LBa2=ArrBact[(LBa/2)];
MedBact=((LBa1+LBa2)/2);
print(LBa1);
print(LBa2);
print(MedBact);
 
}
 
if ((LBa % 2)==1){
 
print("Impair");
MedBact=ArrBact[(LBa/2)];
print(MedBact);
 
}
waitForUser;
selectWindow( t + " bacteria Summary.csv");
Array.getStatistics(ArrAr, minA, maxA, meanA, stdA);
 
Table.set("Slice", ValTab,"Mean");
Table.set("% Area",ValTab, meanA);
Table.set("Slice", ValTab+1,"Median");
Table.set("% Area",ValTab+1, MedArea);
Table.set("Slice", ValTab+2,"Min");
Table.set("% Area",ValTab+2, minA);
Table.set("Slice", ValTab+3,"Max");
Table.set("% Area",ValTab+3, maxA);
Table.set("Slice", ValTab+4,"SD");
Table.set("% Area",ValTab+4, stdA);
Table.update;
 
Array.getStatistics(ArrBact, minB, maxB, meanB, stdB);
 
Table.set("Slice",ValTab,"Mean");
Table.set("% Bacteria",ValTab, meanB);
Table.set("Slice", ValTab+1,"Median");
Table.set("% Bacteria",ValTab+1, MedBact);
Table.set("Slice", ValTab+2,"Min");
Table.set("% Bacteria",ValTab+2, minB);
Table.set("Slice", ValTab+3,"Max");
Table.set("% Bacteria",ValTab+3, maxB);
Table.set("Slice", ValTab+4,"SD");
Table.set("% Bacteria",ValTab+4, stdB);
Table.update;
 
 
 Table.save(sub_output + os + t + " bacteria Summary.csv");
 
 
 
}
voici la fenetre Debug:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
Memory	*	185MB of 1820MB (10%)
nImages()	*	18
getTitle()	*	"image.lif - Image009 - C=0+bacteria.tif"
input	*	"/home/user/Bureau/images/"
list	*	array[1]
output	*	"/home/user/Bureau/images/"
type	*	"Linux"
os	*	"/"
i	*	1
image	*	"image.lif"
path	*	"/home/user/Bureau/images/image.lif"
file	*	"/home/user/Bureau/images/image.lif"
seriesCount	*	9
t	*	"image.lif - Series001"
sub_output	*	"/home/user/Bureau/images/image.lif - Series001 Bacteria"
table1	*	"Results of image.lif - Series001"
s	*	10
subtitle	*	"image.lif - Image009 - C=0"
pArea	*	28.7523
pBacteria	*	28.7523
ValTab	*	6
ArrAr	*	array[6]
ArrBact	*	array[6]
 
---		---
Error:		Row (1) out of range in line 119:
		ArrAr [ i ] = getResult ( "% Area" , i <)> ;
voici ce que retourne la fenetre log:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
 
image:  image.lif - Series001 bacteria Summary.csv
valeur : 0
Area : NaN
Bacteria : NaN
image:  image.lif - Series001 bacteria Summary.csv
valeur : 1
voici ce que retourne mon tableau de valeurs:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
Slice                                         % Area      %Bacteria
image.lif - Image004 - C=0	31.155	31.155
image.lif - Image005 - C=0	33.537	33.537
image.lif - Image006 - C=0	32.691	32.691
image.lif - Image007 - C=0	29.726	29.726
image.lif - Image008 - C=0	30.546	30.546
image.lif - Image009 - C=0	28.752	28.752
Je ne sais pas à quoi cela est du.

Car si j'utilise ce script:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
 
// Ouverture du dossier contenant les images � traiter et ou les enregistrer
input = getDirectory("Dossier � traiter?"); 
list = getFileList(input); 
output = getDirectory("O� enregistrer?");
 
  Dialog.create("operating system");
  Dialog.addChoice("Type:", newArray("Linux", "Windows"));
  Dialog.show();
  type = Dialog.getChoice();
 
  if (type=="Linux") os="\/";
 
  if (type=="Windows") os="\\";
 
 
// Liste des images
for (i=0; i<list.length; i++)
{
    image = list[i];
    path = input + image;
 
// Utilisation de Bio-Formats macro avec recuperation des donn�es 
    run("Bio-Formats Macro Extensions");
    Ext.setId(path);
    Ext.getCurrentFile(file);
    Ext.getSeriesCount(seriesCount);
 
 
 
// Importation de Bio-Formats (chemin du stack d'image, mode couleur,hyperstack, serie d'images)
    run("Bio-Formats Importer", "open=&path  color_mode=Colorized view=Hyperstack stack_order=XYCZT series_");
 
// Titre de l'image
    t=getTitle();
 
// Creation d'un sous repertoire pour y stocker les images finales
    sub_output = output +t+" Bacteria";
    File.makeDirectory(sub_output);                                                 
    close();
 
//Creation tableau csv
    table1=*"Results of "+t*;
    Table.create(table1)*;
 
// Creation Array pour %Bacteria et %Area
 
 
 
// Importation des differentes series du numero 4 au maximum
    	for (s=4; s<=seriesCount; s++)
	{
 
		run("Bio-Formats Importer", "open=&path color_mode=Colorized split_channels view=Hyperstack stack_order=XYCZT series_"+s);  
 
		run("Close");
 
// Titre de l'image
        	subtitle=getTitle();
 
print("Inserer ici le script");
 
    waitForUser;
	}
 
open(sub_output + os + t + " bacteria Summary.csv");
//selectWindow(t + " bacteria Summary.csv");
 
ValTab=Table.size();
ArrAr=newArray(ValTab);
ArrBact=newArray(ValTab);
 
for(i=0;i<=(ValTab-1);i++)
{
selectWindow( t + " bacteria Summary.csv");
print("image: ",  t + " bacteria Summary.csv");
print("valeur :",i);
ArrAr[i]=getResult("% Area",i);
ArrBact[i]=getResult("% Bacteria",i);
print("Area :",ArrAr[i]);
print("Bacteria :",ArrBact[i]);
}
waitForUser;
 
Array.sort(ArrAr);
Array.sort(ArrBact);
 
LAr=ArrAr.length;
LBa=ArrBact.length;
 
 
// calcul de la mediane
 
if ((LAr % 2)==0){
 
print("Pair");
MAr1=ArrAr[((LAr/2)-1)];
MAr2=ArrAr[(LAr/2)];
MedArea=((MAr1+MAr2)/2);
print(MAr1);
print(MAr2);
print(MedArea);
 
}
 
if ((LAr % 2)==1){
 
print("Impair");
MedArea=ArrAr[(LAr/2)];
print(MedArea);
 
}
 
waitForUser;
 
 
if ((LBa % 2)==0){
 
print("Pair");
LBa1=ArrBact[((LBa/2)-1)];
LBa2=ArrBact[(LBa/2)];
MedBact=((LBa1+LBa2)/2);
print(LBa1);
print(LBa2);
print(MedBact);
 
}
 
if ((LBa % 2)==1){
 
print("Impair");
MedBact=ArrBact[(LBa/2)];
print(MedBact);
 
}
waitForUser;
selectWindow( t + " bacteria Summary.csv");
Array.getStatistics(ArrAr, minA, maxA, meanA, stdA);
 
Table.set("Slice", ValTab,"Mean");
Table.set("% Area",ValTab, meanA);
Table.set("Slice", ValTab+1,"Median");
Table.set("% Area",ValTab+1, MedArea);
Table.set("Slice", ValTab+2,"Min");
Table.set("% Area",ValTab+2, minA);
Table.set("Slice", ValTab+3,"Max");
Table.set("% Area",ValTab+3, maxA);
Table.set("Slice", ValTab+4,"SD");
Table.set("% Area",ValTab+4, stdA);
Table.update;
 
Array.getStatistics(ArrBact, minB, maxB, meanB, stdB);
 
Table.set("Slice",ValTab,"Mean");
Table.set("% Bacteria",ValTab, meanB);
Table.set("Slice", ValTab+1,"Median");
Table.set("% Bacteria",ValTab+1, MedBact);
Table.set("Slice", ValTab+2,"Min");
Table.set("% Bacteria",ValTab+2, minB);
Table.set("Slice", ValTab+3,"Max");
Table.set("% Bacteria",ValTab+3, maxB);
Table.set("Slice", ValTab+4,"SD");
Table.set("% Bacteria",ValTab+4, stdB);
Table.update;
}
et voici ce que retourne mon tableau:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
Slice                                         % Area      %Bacteria
image.lif - Image004 - C=0	31.155	31.155
image.lif - Image005 - C=0	33.537	33.537
image.lif - Image006 - C=0	32.691	32.691
image.lif - Image007 - C=0	29.726	29.726
image.lif - Image008 - C=0	30.546	30.546
image.lif - Image009 - C=0	28.752	28.752
Mean	31.068	31.068
Median	30.851	30.851
Min	28.752	28.752
Max	33.537	33.537
SD	1.799	1.799
 
C'est ce que je doit obtenir a la fin

Merci pour votre aide.