ASCII Art
1. Images et Matrices
1.1. Importation de Module
from PIL import Image import numpy as np import matplotlib.pyplot as plt
1.2. Image vers Matrice
def image2matrice(img_chemin) : image = Image.open(img_chemin) image_gris = image.convert("L") image.close() return np.asarray(image).tolist()
2. Manipulation d’Images
2.1. Symétrie Verticale
Création de la matrice par ajouts successifs, comme étant la matrice des lignes renversées de la matrice originale.
def symetrie_verticale(matrice) : sym_matrice = [] for ligne in matrice : rligne = [] for i in range(len(ligne)-1,-1,-1): rligne.append(ligne[i]) sym_matrice.append(rligne) return sym_matrice # ou def symetrie_verticale(matrice) : return [ [ ligne[i] for i in range(len(ligne)-1,-1,-1) ] for ligne in matrice ]
On peut aussi (ce qui est d’une certaine manière équivalent), remplir par un
parcours de matrices une matrice vide à la ligne i colonne j avec la ligne
i et colonne w-1-j de la matrice originale ayant w colonnes.
def symetrie_verticale(matrice) : h, w = len(matrice), len(matrice[0]) sym_matrice = [ [0] * w for i in range(h) ] for i in range(h) : for j in range(w): sym_matrice[i][j] = matrice[i][w-1-j] return sym_matrice
Dans la console Spyder
image_matrix = image2matrice("img/velociraptor.jpg") image_matrix_sym = symetrie_verticale(image_matrix) Image.fromarray(np.array(image_matrix_sym,dtype="uint8"))