IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Traitement d'image, imageJ


Sujet :

Python

  1. #1
    Nouveau candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2025
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2025
    Messages : 2
    Par défaut Traitement d'image, imageJ
    On étudie le verdissement des endives en fonction des longueurs d'ondes pour notre TIPE. On voudrait un graphique avec le nombre de pixel en fonction de l'intensité de vert.
    PB:- le vert dépend aussi des autres composantes rouge et bleue
    - si on essaye de seuiller sur IMAGEJ les ombres de l'endive sont aussi compté
    On a essayé python et ImageJ sans succès. On prend toute solution pour le traitement d'images
    Merci aux âmes charitables qui nous aideront.♥♥

  2. #2
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 302
    Par défaut
    bonjour
    essayez de retirer les vers de terre. ou alors, peut être, nous fournir le code source du travail effectué ?
    $moi= (:nono: !== :oops:) ? :king: : :triste: ;

  3. #3
    Nouveau candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2025
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2025
    Messages : 2
    Par défaut Les vers de terre sont sortis!
    On a donc un premier fichier qui transforme l'image couleur en image grise.
    Le deuxième programme créerai un fichier excel avec dans une colonne l'intensité de gris(0-255) et dans l'autre le nombre de pixel comprenant cette intensité. Pour l'instant on a ce programme mais on a pas l'impression que les colonnes soient justes. A la base on aurait voulu que ça renvoit directement le graphique avec le nombre de pixel en fonction de l'intensité de gris mais c'est encore plus complexe.

    import cv2
    import pandas as pd

    def calculer_histogramme_gris_excel(chemin_image, nom_fichier_excel="histogramme_gris.xlsx"):
    """
    Calcule l'histogramme d'une image en niveaux de gris et enregistre
    le résultat dans un fichier Excel.

    Args:
    chemin_image (str): Le chemin vers le fichier image.
    nom_fichier_excel (str): Le nom du fichier Excel à créer.
    Par défaut : "histogramme_gris.xlsx"
    """
    try:
    # Lire l'image en niveaux de gris
    img_gris = cv2.imread(chemin_image, cv2.IMREAD_GRAYSCALE)

    if img_gris is None:
    print(f"Erreur: Impossible de lire l'image à l'emplacement : {chemin_image}")
    return

    # Calculer l'histogramme
    histogramme = cv2.calcHist([img_gris], [0], None, [256], [0, 256])

    # Créer un DataFrame pandas
    df_histogramme = pd.DataFrame({
    'Intensité du gris': range(256),
    'Nombre de pixels': histogramme.flatten()
    })

    # Enregistrer le DataFrame dans un fichier Excel
    try:
    df_histogramme.to_excel(nom_fichier_excel, index=False)
    print(f"L'histogramme a été enregistré dans le fichier : {nom_fichier_excel}")
    except Exception as e:
    print(f"Erreur lors de l'enregistrement du fichier Excel : {e}")

    except Exception as e:
    print(f"Une erreur s'est produite : {e}")

    if __name__ == "__main__":
    chemin_de_l_image = "endiveblanc.png" # Remplacez par le chemin de votre image
    nom_du_fichier_excel = "histogramme_gris.xlsx"
    calculer_histogramme_gris_excel(chemin_de_l_image, nom_du_fichier_excel)

  4. #4
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 192
    Par défaut
    Hello,
    Voici ce que me dit Léo la tête pensante de Brave sur le sujet :

    Pour surveiller le verdissement des endives en utilisant un logiciel Python, vous pouvez créer un programme qui analyse des images des endives et détecte les changements de couleur. Le verdissement est un phénomène naturel qui se produit lorsque les feuilles sont exposées à la lumière, créant de la chlorophylle et donnant aux feuilles une couleur verte.
    Voici un exemple de comment vous pourriez procéder :

    • Prenez des photos régulières des endives (ou à intervalle régulier avec une webcam).
    • Utilisez une bibliothèque comme OpenCV pour analyser les images et détecter les changements de couleur.
    • Comparez les couleurs des feuilles d'une image à l'autre pour déterminer si elles deviennent plus vertes.
    • Si le verdissement est détecté, le programme peut envoyer une alerte pour indiquer que les endives nécessitent un meilleur contrôle de l'exposition à la lumière.

    Il est important de maintenir les endives dans un environnement sombre pour prévenir le verdissement et conserver leur couleur blanche à pointe jaune.


    Détection de changement de couleur


    Pour détecter les changements de couleur dans une image avec OpenCV, vous pouvez suivre ces étapes :

    • Convertissez l'image en espace de couleur HSV (Hue, Saturation, Value) pour une meilleure discrimination des couleurs indépendamment de la luminosité.
    • Utilisez la fonction inRange() pour créer un masque binaire des zones où la couleur de référence est présente.
    • Pour détecter les changements de couleur, comparez les masques binaires de deux images prises à des moments différents. Les zones où les masques diffèrent indiqueront les changements de couleur.
    • Pour améliorer la détection, vous pouvez appliquer des opérations morphologiques comme l'ouverture et la fermeture pour supprimer le bruit.
    • Ensuite, vous pouvez utiliser des méthodes comme la détection des contours ou l'analyse des blobs pour identifier les zones de changement de couleur.
    • Pour une détection plus précise, vous pouvez utiliser des histogrammes de couleur et la rétroprojection pour détecter les objets de couleur spécifique.4

    Il est important de noter que la détection de changement de couleur peut être influencée par les variations de luminosité. Pour minimiser cet effet, vous pouvez utiliser des méthodes de normalisation de l'image ou ajuster les paramètres de la caméra pour maintenir une lumière constante.
    Voici un exemple de code pour détecter les changements de couleur en utilisant OpenCV en Python :
    import cv2
    import numpy as np

    # Charger les deux images
    img1 = cv2.imread("image1.jpg")
    img2 = cv2.imread("image2.jpg")

    # Convertir les images en espace HSV
    hsv_img1 = cv2.cvtColor(img1, cv2.COLOR_BGR2HSV)
    hsv_img2 = cv2.cvtColor(img2, cv2.COLOR_BGR2HSV)

    # Définir les limites de la couleur de référence
    bound_lower = np.array([25, 20, 20])
    bound_upper = np.array([100, 255, 255])

    # Créer des masques binaires pour la couleur de référence
    mask1 = cv2.inRange(hsv_img1, bound_lower, bound_upper)
    mask2 = cv2.inRange(hsv_img2, bound_lower, bound_upper)

    # Appliquer des opérations morphologiques pour supprimer le bruit
    kernel = np.ones((7, 7), np.uint8)
    mask1 = cv2.morphologyEx(mask1, cv2.MORPH_CLOSE, kernel)
    mask1 = cv2.morphologyEx(mask1, cv2.MORPH_OPEN, kernel)
    mask2 = cv2.morphologyEx(mask2, cv2.MORPH_CLOSE, kernel)
    mask2 = cv2.morphologyEx(mask2, cv2.MORPH_OPEN, kernel)

    # Trouver les zones de changement de couleur
    change_mask = cv2.bitwise_xor(mask1, mask2)

    # Afficher les résultats
    cv2.imshow("Masque de changement", change_mask)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

    Ce code détectera les changements de couleur en comparant deux images et affichera un masque binaire des zones où les changements ont été détectés.


    As-tu des photos à différents stades du verdissement ?


    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko :zen:

  5. #5
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 302
    Par défaut
    Citation Envoyé par AuroreTrio Voir le message
    un premier fichier qui transforme l'image couleur en image grise.
    Le deuxième programme créerai un fichier excel avec dans une colonne l'intensité de gris(0-255) et dans l'autre le nombre de pixel comprenant cette intensité
    Rien compris, pourquoi utiliser du gris ???? pour détecter du vert

    Ma première idée (une minute de réflexion donc aucun risque pour mes cheveux) :
    Image en RVB , calculer le pourcentage de V(ert) sur les 3 valeurs et ne garder que le vert
    - #336633 -> V 50% #060 (si on désires sauver ce % en image, nous avons le canal alpha donc un visuel très rapide pour voir si je vais dans une bonne direction ou non)
    - #6600aa -> V 0% #000
    - #666600 -> V 50% #060
    - #996633 -> #060 pas sûr du calcul pourcent/alpha ...
    ...

    Note: peut-être que HSV est meilleur, mais dans tous les cas , je ne comprends pas ce gris.

    les ombres de l'endive sont aussi compté
    Donc quel est le problème ? pas clair en regardant ce début de code. C'est la détection du "vert" ou déjà délimiter l'élement sur l'image ???


    EDIT:
    Citation Envoyé par AuroreTrio Voir le message
    pour notre TIPE
    Donc mon simple calcul de pourcentage Peut-être que l'on attend de vous un véritable résonnement mathématique ? Et pas du tout cuit avec des outils type opencv ??
    $moi= (:nono: !== :oops:) ? :king: : :triste: ;

  6. #6
    Membre Expert
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 067
    Par défaut
    Sans pouvoir faire la balance des blancs c'est pas évident ... Il n'y a aucun point de référence sur les photos ?

Discussions similaires

  1. Traitement des images et segmentation Fiji ou ImageJ
    Par hongthaile dans le forum ImageJ
    Réponses: 3
    Dernier message: 24/02/2015, 10h22
  2. Traitement d'image avec ImageJ
    Par devhercule dans le forum ImageJ
    Réponses: 2
    Dernier message: 30/06/2011, 12h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo