Reputation: 1
I have been tying to create an easy script that calculates the average intensity of a set of pixels selected (as points) by the user for each image in the same directory, and then returns a table associating each image name with the calculated average intensity. However, as I'm a really bad coder and a 100% beginner in this coding language, it is, of course, not working properly and after selecting the pixels of all the images in the folder, I have an error message (); that I don't understand and didn't manage to correct.. I have tried asking chatGpt several timesbut it didn't help .. either I had no error message but no table with my mean intensity of each image, or I had an error message...Could someone help me please?=)
The script:
// Définir le chemin du dossier contenant les images
inputDir = "D:/TFE/PHOTOS/Marqueur_Laura/CAL/J30/NOCHOC/5/NOHDR/1/";
// Obtenir la liste des fichiers dans le dossier
list = getFileList(inputDir);
// Initialiser une liste pour stocker les moyennes
meanList = newArray();
fileNameList = newArray();
// Boucle pour traiter chaque image dans le dossier
for (i = 0; i < list.length; i++) {
// Ouvrir l'image actuelle
open(inputDir + list[i]);
// Vérifier que l'image est bien ouverte
if (nImages == 0) {
print("Erreur : Impossible d'ouvrir " + list[i]);
continue;
}
// Attendre que l'utilisateur trace les points
waitForUser("Tracez plusieurs points sur l'image " + list[i] + ", puis cliquez sur OK.");
// Initialiser les variables pour le calcul de la moyenne
totalIntensity = 0;
pointCount = 0;
// Vérifier si une sélection de points a été faite
if (selectionType() != "point") {
print("Erreur : Veuillez utiliser l'outil de sélection de points pour l'image " + list[i]);
close();
continue;
}
// Obtenir les coordonnées des points tracés
roiManager("Measure");
// Mesurer et obtenir les valeurs des points
run("Measure");
// Récupérer les résultats de la mesure
nResults = nResults();
for (j = 0; j < nResults; j++) {
x = getResult("X", j);
y = getResult("Y", j);
pixelValue = getPixel(x, y);
// Ajouter la valeur du pixel au total
totalIntensity += pixelValue;
pointCount += 1;
// Afficher la valeur du pixel actuel
print("Image " + list[i] + " - Point " + pointCount + " : (" + x + ", " + y + ") = " + pixelValue);
}
// Calculer la moyenne des valeurs des pixels
if (pointCount > 0) {
mean = totalIntensity / pointCount;
print("La valeur moyenne des pixels des points tracés pour " + list[i] + " est : " + mean);
meanList = Array.concat(meanList, newArray(mean));
fileNameList = Array.concat(fileNameList, newArray(list[i]));
} else {
print("Aucun point tracé sur " + list[i]);
meanList = Array.concat(meanList, newArray(NaN));
fileNameList = Array.concat(fileNameList, newArray(list[i]));
}
// Fermer l'image actuelle
close();
}
// Créer une nouvelle table des résultats
resultsTable = newArray("Image", "Valeur Moyenne");
// Ajouter les données à la table
for (i = 0; i < meanList.length; i++) {
setResult("Image", i, fileNameList[i]);
setResult("Valeur Moyenne", i, meanList[i]);
}
// Afficher la table des résultats
updateResults();
showResults();
Upvotes: 0
Views: 73