Les images numériques

(actualisé le ) par wlaidet

Présentations

Activité1
Découverte des images numériques
TP1 : Images PBM et PGM
Activité 2 : Couleurs
Diaporama du cours
Cours papier
Activité 3
Traitements des images
Double boucle
Activité 4

TP 1 : Images PBM et PGM

1) Ouvrir NotePad
2) Copier/coller les données suivantes :

P1
# Image numero 1 SNT
10 10
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1

3) Enregistrer sous Image1.PBM
4) Aller dans l’explorateur de fichiers puis observer le résultat avec LibreOffice Draw
5) Créer votre Image PBM aux dimensions de votre choix (Commencer par créer votre image sur une feuille quadrillée).

6) Dans un nouveau fichier NotePad, copier/coller le code suivant :

P2
# Image numero 2 SNT
10 10
255
255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255
0 0 0 0 0 0 0 0 0 0
255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255
128 128 128 128 128 128 128 128 128 128
255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255
255 255 255 255 32 32 255 255 255 255
 

Attention !! Il faut une ligne vide à la fin du fichier

7) Enregistrer sous Image2.PGM
8) Aller dans l’explorateur de fichiers puis observer le résultat avec LibreOffice Draw
9) Modifier ces données pour comprendre ce format.
10) Reproduire l’image suivante :

Image à reproduire

11) Pour les plus rapides : Créer l’image PGM de votre choix.

Mario en couleurs

1) Ouvrir Pyzo
2) Copier/coller le code ci-dessous :

from PIL import Image

#Creation d'une image blanche RGB 8x8
Mario = Image.new("RGB",(8,8),(255,255,255))

# definition d'une couleur
rouge = (255, 0, 0)

#remplissage de l'image pixel par pixel
Mario.putpixel((0, 2), rouge)
Mario.putpixel((7, 7), (0, 255, 0))


Mario.show()

Télécharger

3) Exécuter ce code et zoomer
4) Modifier ce code pour obtenir l’image suivante :

Mario Couleurs 8x8

TP Simples boucles

1) Ouvrir Pyzo
2) Copier/coller le code ci-dessous

for i in range(0, 32):
    print(0, i)

Télécharger

3) Tester ce code puis le modifier pour obtenir les résultats suivants :

Simples Boucles

4) Tester le code ci-dessous :

import matplotlib.pyplot as plt
from PIL import Image

#Creation d'une image blanche RGB 32x32
Figure1 = Image.new("RGB",(32,32),(255,255,255))

# definition d'une couleur
rouge = (255, 0, 0)

#remplissage de l'image avec une boucle:
for i in range(0,32):
    Figure1.putpixel((0, i), rouge)

#Affichage de l'image
plt.imshow(Figure1)
plt.show()

Télécharger

5) Créer les images suivantes en 32 par 32 :

Simples Boucles images

6) Pour les plus rapides, reproduire le drapeau de la France en 12 par 9.

Doubles boucles

1) Un code pour démarrer :

import matplotlib.pyplot as plt
from PIL import Image

#Creation d'une image blanche RGB 30x20
Figure1 = Image.new("RGB",(30,20),(255,255,255))

# definition des couleurs:
bleu = (0, 0, 255)
jaune = (255, 255, 0)

#remplissage de l'image avec une double boucle:
for x in range(0,10):
    for y in range(0,20):
        Figure1.putpixel((x, y), bleu)

#remplissage de l'image avec une double boucle:
for x in range(10,30):
    for y in range(12,20):
        Figure1.putpixel((x, y), jaune)

#Affichage de l'image
plt.imshow(Figure1)
plt.show()

Télécharger

2) Réaliser les drapeaux de la France, de l’Italie, de l’Allemagne puis de la Suisse.

Traitements des images numériques

Commencer par télécharger, renommer et enregistrer l’image suivante dans votre dossier personnel :

tux_yoda

Voici les codes de l’activité 3

from PIL import Image

#Attention au chemin vers l'image !!
MonImage = Image.open("P:\\SNT\\IMG\\tux_yoda.jpg")

print(MonImage.size)

print(MonImage.getpixel((45, 40)))

MonImage.show()

Télécharger

from PIL import Image

#Attention au chemin vers l'image !!
MonImage = Image.open("P:\\SNT\\IMG\\tux_yoda.jpg")

Taille = MonImage.size

for c in range(Taille[0]):
    for l in range(Taille[1]):
        rgb = MonImage.getpixel((c, l))
        R = rgb[0]
        G = rgb[1]
        B = rgb[2]
        MonImage.putpixel((c, l), (R, 0, B))

MonImage.show()

Télécharger

Niveaux de gris :

Les images à télécharger :

paysage
photo2_NB
message

Fond vert

Une image à télécharger :

cinema

Tester ce code et l’améliorer :

from PIL import Image

#Attention au chemin vers l'image !!
MonImage = Image.open("P:\\SNT\\IMG\\cinema.jpeg")

Taille = MonImage.size

Image_Sans_Vert = Image.new("RGBA", Taille, (0,0,0,0))

for c in range(Taille[0]):
    for l in range(Taille[1]):
        rgb = MonImage.getpixel((c, l))
        R = rgb[0]
        G = rgb[1]
        B = rgb[2]
        if G < 120 :
            Image_Sans_Vert.putpixel((c, l), (R, G, B, 255))
           
Image_Sans_Vert.show()

Télécharger