Bonjour à tous,
J'ai bidouillé une petite macro qui m'analyse des tâches de mécanisation sur des photos de poissons. Elle ouvre toute seule toutes les photos d'un dossier sélectionné, et analyse les photos s'y trouvant. Tout marche correctement, à l'exception de la fenêtre summary. Si ne ne clique pas sur la fenêtre summary, après l'analyse de la 1ère photo, elle se referme. Puis s'ouvre à nouveau après l'analyse de la 2e photo et se referme. Et ainsi de suite. Comme faire tourner cette macro sur toute mes photos prend du temps (plusieurs heures), j'aimerais pouvoir faire autre chose pendant qu'elle tourne. Mon ordi est un Macbook Pro 13" avec Yosemite, et la macro est:
// "BatchProcessFolders"
//
// This macro counts all the files in a folder and any
// subfolders in that folder.
dir = getDirectory("Choose a Directory ");
setBatchMode(true);
count = 0;
countFiles(dir);
n = 0;
processFiles(dir);
//print(count+" files processed");
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) {
list = getFileList(dir);
for (i=0; i<list.length; i++) {
if (endsWith(list[i], "/"))
processFiles(""+dir+list[i]);
else {
showProgress(n++, count);
path = dir+list[i];
processFile(path);
}
}
}
function processFile(path) {
if (endsWith(path, ".JPG")) {
open(path);
//setTool("rectangle");
makeRectangle(4, 976, 5468, 2296);
run("Crop");
run("Set Scale...", "distance=720.01 known=10 pixel=1 unit=cm global");
run("Split Channels");
run("Close");
run("Close");
run("Enhance Contrast...", "saturated=0.8 normalize");
setAutoThreshold("Default");
//run("Threshold...");
setOption("BlackBackground", false);
run("Convert to Mask");
run("Analyze Particles...", "size=0.015-0.12 circularity=0.50-1.00 show=Nothing summarize");
}
}
PS: je précise que je suis débutant dans ce genre de chose.
Merci beaucoup pour votre aide.
Partager