from PIL import Image
import numpy as np

def importer(image):
    """importer(image->str)->list
    Renvoie une liste de listes de points de l'image en niveaux de gris"""
    tab=np.array(Image.open(image).convert('L'))
    return [list(tab[k]) for k in range(len(tab))]

def afficher(tab):
    """afficher(tab->list)->None
    Realise l'affichage de l'image
    codee par la liste de listes de points tab"""
    im=Image.fromarray(np.array(tab,dtype=np.uint8))
    im.show()

### Si le module PIL ne fonctionne pas ###
### Utiliser des png

# import matplotlib.pyplot as plt
#
# def importer(image):
#     """importer(image->str)->list
#     Renvoie une liste de listes de points de l'image en niveaux de gris"""
#     tab=plt.imread(image)
#     tab=(tab[:,:,0]+tab[:,:,1]+tab[:,:,2])/3
#     return [list(tab[k]) for k in range(len(tab))]
#
# def afficher(tab):
#     """afficher(tab->list)->None
#     Realise l'affichage de l'image
#     codee par la liste de listes de points tab"""
#     plt.imshow(tab,cmap="gray")
#     plt.show()

## Test

tab=importer("rover.jpg")
afficher(tab)

