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 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
|
'''
Après avoir modifier ce source entre les markeurs indiqués en bas, executer le code depuis la console IPython comme suit :
%run GrayLevelModification.py -i image_source.jpg -o image_resultat.jpg
'''
import sys, getopt
from PIL import Image
import numpy as np
def GrayLevelModification(inputfile, outputfile):
# lecture de l'image et conversion RGB -> niveau de gris
img = Image.open(inputfile).convert('L')
# formatage de l'image sous forme de tableau numpy (ici -> matrice 2D)
data = np.array(img)
##################### VOTRE CODE COMMENCE ICI (ne rien modifier en dessus de cette ligne) ######################
(N,M) = data.size
for y in range(M):
for x in range(N):
r = Image.getpixel(data,(x,y))
s = 16*sqrt(r)
Image.putpixel(data,(x,y),s)
##################### VOTRE CODE FINI ICI (ne rien modifier en dessous de cette ligne) ########################
# préparation de l'image de sortie à partir du tableau numpy (i.e la matrice associé à l'image)
result = Image.fromarray(data)
# sauvegarde de l'image résultat
result.save(outputfile)
#retour de la fonction
return;
'''
fonction main du programme :
cette fonction parse la ligne de commande et récupère les arguments pour la fonction
GrayLevelModification(...) (i.e. les noms des fichiers en entrée et en sortie)
'''
def main(argv):
inputfile = ' '
outputfile = ' '
try:
opts, args = getopt.getopt(argv,"hi:o:",["ifile=","ofile="])
except getopt.GetoptError:
print('GrayLevelModification.py -i <inputfile> -o <outputfile>')
sys.exit(2)
for opt, arg in opts:
if opt == '-h':
print('GrayLevelModification.py -i <inputfile> -o <outputfile>')
sys.exit()
elif opt in ("-i", "--ifile"):
inputfile = arg
elif opt in ("-o", "--ofile"):
outputfile = arg
GrayLevelModification(inputfile, outputfile)
print('program terminated')
return;
main(sys.argv[1:])
'''
fin du code
''' |
Partager