Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- """
- Modules de traitement d'images
- """
- from images import Image
- def change_rgb(image, change_function):
- for x in range(width):
- for y in range(height):
- rgb = image.getPixel(x,y)
- change_function(x, y, rgb[0], rgb[1], rgb[2])
- return rgb
- def binarisation(image):
- """Conversion d'une image en noir et blanc."""
- get_rgb(image)
- if (rgb[0] + rgb[1] + rgb[2]) / 3 < 128:
- image.setPixel(x, y,(0, 0, 0))
- else:
- image.setPixel(x, y,(255, 255, 255))
- image.save("smokey_binarisation.gif")
- def grayscale(image):
- """Conversion d'une image en niveau de gris."""
- get_rgb(image)
- l = (rgb[0] + rgb[1] + rgb[2]) / 3
- image.setPixel(x, y,(l, l, l))
- image.save("smokey_grayscale.gif")
- #À compléter
- def negatif(image):
- """Conversion d'une image en negatif."""
- get_rgb(image)
- image.setPixel(x, y,(255-rgb[0], 255-rgb[1], 255-rgb[2]))
- image.save("smokey_negatif.gif")
- #À compléter
- def sepia(image):
- """Conversion dans une image sépia."""
- grayscale(image)
- get_rgb(image)
- if rgb[0] < 63:
- r = int(rgb[0] * 1.1);
- b = int(rgb[2] * 0.9)
- elif rgb[0] < 192:
- r = int(rgb[0] * 1.15);
- b = int(rgb[2] * 0.85)
- else:
- r = min(int(rgb[0] * 1.08), 255); # min() retourne le minimum entre deux valeurs
- b = int(rgb[2] * 0.93)
- image.setPixel(x, y,(r, rgb[1], b))
- image.save("smokey_sepia.gif")
- #À compléter
- if __name__ == "__main__":
- print ("Quelle opération désirez-vous faire?")
- print ("1 - Binarisation par seuillage")
- print ("2 - Niveau de gris")
- print ("3 - Négatif")
- print ("4 - Sépia\n")
- while True:
- try:
- choix = int(input())
- except ValueError:
- print("Vous n'avez pas entré un nombre entre 1 et 4!")
- continue
- if choix>=1 and choix<=4: break
- while True:
- try:
- filename = input("Entrez le nom de votre fichier image: ")
- image = Image(filename)
- width = image.getWidth()
- height = image.getHeight()
- except Exception:
- print("Le fichier", filename,"est introuvable")
- continue
- break
- if choix == 1:
- binarisation(image)
- if choix ==2:
- grayscale(image)
- if choix == 3:
- #grayscale(image)#optionnel appeler pour un niveau de gris avant d'appeler
- #pour le négatif et remarquez la différence des 2 résultats
- negatif(image)
- if choix == 4:
- sepia(image)
- image.draw()
Add Comment
Please, Sign In to add comment