##############################
# SELECTION BAGUETTE MAGIQUE #
##############################

## À exécuter une fois pour toute

import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import os
from random import randint
from math import sqrt

# Modifier de façon à indiquer le répertoire où se trouvent les images!

# charge une image sous forme de liste de listes
img = (mpimg.imread('./guepiers.JPG')).tolist()
# affichage de l'image
plt.imshow(img)
plt.show()

#%%%

# Question 1

def dim(img:list) -> tuple:
    '''Renvoie le couple (largeur,hauteur) de l'image'''


print("Les dimensions de l'image img sont",dim(img))

#%%%

# Question 2

def niveaux_de_gris(img:list) -> None:
    '''convertit une image en niveaux de gris'''


img = (mpimg.imread('./guepiers.JPG')).tolist()
niveaux_de_gris(img)
plt.imshow(img)
plt.show()

#%%%

# Question 3

def sq_distance_couleurs(c1, c2):
    '''renvoie la distance entre deux couleurs'''
    

#%%%

# Question 4

def selection_couleur(img, i, j, seuil):
    '''sélection des pixels d'une image par seuil'''

# Cette fonction est bien entendu de complexité ...
            
img = (mpimg.imread('./guepiers.jpg')).tolist()
selection_couleur(img, 50, 50, 30)
plt.imshow(img)
plt.show()


#%%%

# Question 5

def voisins(i, j, h, w):
    '''renvoie les quatre (ou moins) pixels voisins de (i,j) dans une image de dimensions (h,w)'''

# Question 6

def baguette_magique(img, i, j, seuil):
    '''sélection par baguette magique à partir de (i,j)'''


image = (mpimg.imread('./guepiers.jpg')).tolist()
baguette_magique(image, 50, 50, 30)
plt.imshow(image)
plt.show()

#%%%

# Question 7

# On a utilisé un algorithme de parcours ...

def baguette_magique_pile(img, i, j, seuil):
    '''sélection par baguette magique à partir de (i,j)'''

image = (mpimg.imread('./guepiers.jpg')).tolist()
baguette_magique_pile(image, 50, 50, 30)
plt.imshow(image)
plt.show()

#%%%

# Question 8

# On va utiliser ici un algorithme de parcours ...

from collections import deque

def baguette_magique_file(img, i, j, seuil):
    '''sélection par baguette magique à partir de (i,j)'''

image = (mpimg.imread('./guepiers.jpg')).tolist()
baguette_magique_file(image, 50, 50, 10)
plt.imshow(image)
plt.show()