Guest User

Untitled

a guest
Jun 23rd, 2018
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.82 KB | None | 0 0
  1. """
  2.    Modules de traitement d'images
  3. """
  4.  
  5. from images import Image
  6.  
  7. def binarisation(image):
  8.     """Conversion d'une image en noir et blanc."""
  9.     for x in range(width):
  10.         for y in range(height):
  11.             rgb = image.getPixel(x,y)
  12.             if (rgb[0] + rgb[1] + rgb[2]) / 3 < 128:
  13.                 image.setPixel(x, y,(0, 0, 0))
  14.             else:
  15.                 image.setPixel(x, y,(255, 255, 255))
  16.     image.save("smokey_binarisation.gif")
  17.  
  18.  
  19.  
  20. def grayscale(image):
  21.     """Conversion d'une image en iveau de gris."""
  22.     for x in range(width):
  23.         for y in range(height):
  24.             rgb = image.getPixel(x, y)
  25.             l = (rgb[0] + rgb[1] + rgb[2]) / 3
  26.             image.setPixel(x, y,(l, l, l))
  27.     image.save("smokey_grayscale.gif")
  28.  
  29.     #À compléter
  30.      
  31.  
  32. def negatif(image):
  33.     """Conversion d'une image en negatif."""
  34.     for x in range(width):
  35.         for y in range(height):
  36.             rgb = image.getPixel(x, y)
  37.             image.setPixel(x, y,(255-rgb[0], 255-rgb[1], 255-rgb[2]))
  38.     image.save("smokey_negatif.gif")
  39.            
  40.  
  41.     #À compléter
  42.      
  43.  
  44. def sepia(image):
  45.     """Conversion dans une image sépia."""
  46.     for x in range(width):
  47.         for y in range(height):
  48.             rgb = image.getPixel(x, y)
  49.             l = (rgb[0] + rgb[1] + rgb[2]) / 3
  50.             image.setPixel(x, y,(l, l, l))
  51.    
  52.     if rgb[0] < 63:
  53.         r = int(rgb[0] * 1.1);
  54.         b = int(rgb[2] * 0.9)
  55.     elif rgb[0] < 192:
  56.         r = int(rgb[0] * 1.15);
  57.         b = int(rgb[2] * 0.85)
  58.     else:
  59.         r = min(int(rgb[0] * 1.08), 255); # min() retourne le minimum entre deux valeurs
  60.         b = int(rgb[2] * 0.93)
  61.     image.setPixel(x, y,(r, l, b))
  62.     image.save("smokey_sepia.gif")
  63.    
  64.  
  65.     #À compléter
  66.      
  67.  
  68.  
  69. if __name__ == "__main__":
  70.     print ("Quelle opération désirez-vous faire?")
  71.     print ("1 - Binarisation par seuillage")
  72.     print ("2 - Niveau de gris")
  73.     print ("3 - Négatif")
  74.     print ("4 - Sépia\n")
  75.     while True:
  76.         try:
  77.             choix = int(input())
  78.         except ValueError:
  79.             print("Vous n'avez pas entré un nombre entre 1 et 4!")
  80.             continue
  81.         if choix>=1 and choix<=4: break
  82.        
  83.     while True:
  84.         try:
  85.             filename = input("Entrez le nom de votre fichier image: ")
  86.             image = Image(filename)
  87.             width = image.getWidth()
  88.             height = image.getHeight()
  89.         except Exception:
  90.             print("Le fichier", filename,"est introuvable")
  91.             continue
  92.         break
  93.  
  94.     if choix == 1:
  95.         binarisation(image)
  96.     if choix ==2:
  97.         grayscale(image)
  98.     if choix == 3:
  99.          #grayscale(image)#optionnel appeler pour un niveau de gris avant d'appeler
  100.                           #pour le négatif et remarquez la différence des 2 résultats
  101.          negatif(image)
  102.     if choix == 4:
  103.         sepia(image)
  104.     image.draw()
Add Comment
Please, Sign In to add comment