File size: 1,878 Bytes
e257572
 
 
 
4d2a0bb
e257572
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import gradio as gr
from PIL import Image
import numpy as np
from segmentation import segment  
import cv2

# Fonction principale de l'application
def bio_analytica(image):
    """
    Analyse une image de feuille de plante, segmente les anomalies et retourne l'image segmentée.
    
    Args:
        image (PIL.Image): Image téléchargée par l'utilisateur.
        
    Returns:
        PIL.Image: Image segmentée avec anomalies mises en évidence.
    """
    # Sauvegarder temporairement l'image téléchargée
    image_path = "temp_uploaded_image.jpg"
    image.save(image_path)
    
    # Appeler la fonction segment pour traiter l'image
    segment(image_path)  
    
    # Charger l'image segmentée pour la renvoyer dans l'interface
    segmented_image = Image.open("image_segmented.jpg")
    
    return segmented_image

# Interface utilisateur Gradio
interface = gr.Interface(
    fn=bio_analytica,  # Fonction de traitement
    inputs=gr.Image(type="pil"),  # Entrée : Image téléchargée
    outputs=gr.Image(type="pil"),  # Sortie : Image segmentée

    title="🌿 Analyse des Feuilles de Plantes - Détection d'Anomalies",

    description="""
    <div style="text-align: center;">
        <h2 style="color: green;">Bio Analytica 🌱</h2>
        <p style="font-size: 16px; color: white;">
            Téléchargez une image de feuille de plante.<br>
            Notre outil segmente l'image et fait ressortir les anomalies présentes sur la feuille.<br>
            Obtenez des informations visuelles claires sur l'état de vos plantes 🌿.
        </p>
    </div>
    """,
    examples=[["feuille.jpg"], ["feuille_segment.jpg"]],  # Exemples d'images pour test
    flagging_mode="never",  # Désactiver le signalement des résultats
    theme="dark"  # Thème simple
)

# Lancement de l'application
if __name__ == "__main__":
    interface.launch()