La photographie numérique

1) Couleurs et codage RVB

La rétine de l’œil comporte des récepteurs de couleurs (les cônes) uniquement  sensibles aux  trois couleurs  rouge,  vert et  bleu. C’est à partir de ces trois couleurs dites primaires que le cerveau interprète  toutes  les gammes de couleurs.

Cette animation illustre la synthèse additive des couleurs. Les disques de couleur représentés peuvent être assimilés à des projecteurs déplaçables

La reconstitution des couleurs est basée sur la synthèse additive des couleurs. Les curseurs glissants permettent de régler les niveaux d’intensité pour chaque couleur (Rouge, Vert, Bleu).

Rouge, Vert et Bleu sont les trois couleurs primaires. Comme l’indique la simulation synthèse additive des couleurs, leur mélange permet de générer quatre autres couleurs: Le cyan (vert+bleu), le magenta (bleu + rouge), le jaune (rouge + vert) et le blanc (somme des trois)

Les couleurs dites primaires du peintre(secondaires pour l’œil et le physicien) sont le cyan le magenta et le jaune.

Cette animation illustre 2 aspects de la théorie des couleurs: La synthèse additive et soustractive. Cliquer sur une couleur pour la sélectionner. Le rouleau adopte alors cette couleur.

choisir un filtre puis prévoir la couleur avant de le sélectionner.

2) Caractéristiques d’une image numérique

Rechercher une définition pour chacun des termes ci-dessous

  • pixel
  • définition d’une image
  • résolution d’une image
  • taille d’une image

métadonnées exif d’une image

http://yb-isn.fr/romarin.jpg

comment lire les données exif  pour obtenir des informations éventuellement enregistrées dans le fichier image?

en ligne : http://exif.regex.info/exif.cgi

sur un smartphone:

android : photo exif editor

macos : exif viewer lite

 

avec un programme python :

télécharger l’image : romarin.jpg

from PIL import Image 
from PIL.ExifTags import TAGS 

image = Image.open("romarin.jpg")   
exifdata = image.getexif() 
for tagid in exifdata: 
    tagname = TAGS.get(tagid, tagid) 
    value = exifdata.get(tagid) 
    print(f"{tagname:25}: {value}") 

Enregistrer le programme python ci-dessous dans le même dossier que l’image puis exécuter le code.

3) traitement d’image numérique

Pour démarrer les activités vous devez télécharger les trois images ci-dessous.

   

La photo de Lena sert d’image de test pour les algorithmes de traitement d’image au niveau industriel et scientifique.

Pillow (ou PIL )  est une bibliothèque python de traitement d’image, qui est est conçue de manière à offrir un accès rapide aux données contenues dans une image, et offre un support pour différents formats de fichiers tels que PPM, PNG, JPEG, GIF, TIFF et BMP.

 

Activité 1

Le code python ci-dessous vous permet de générer une image. Tester le code puis effectuer des modifications pour mieux comprendre. De quelle couleur est l’image ?

# On importe la librairie PIL
from PIL import Image

# On crée un objet Image au format RVB (RGB en anglais)
img = Image.new("RGB", (200,100))

# on peut obtenir la définition de l'image 200x100
colonne=img.size[0]
ligne=img.size[1]

print(colonne)
print(ligne)

#on affiche l'image
img.show()

Activité 2

Par défaut les pixels sont noir. Une fonction putpixel() permet de choisir la couleur d’un pixel. Tester le code ci-dessous.

from PIL import Image
img = Image.new("RGB", (80,80))

img.putpixel((40,40),(255,0,0))

img.show()

Activité 3

Comment créer un damier de pixels blancs et noir ? Tester le code ci-dessous puis expliquez le. Proposez éventuellement votre propre code.

for i in range(80):
    for j in range(80):
        if((i+j)%2==0):
            img.putpixel((i,j),(0,0,0))
        else:
            img.putpixel((i,j),(255,255,255))           
img.show()

Activité 4

Pour obtenir une image en niveaux de gris il suffit de faire la moyenne pour chacun des pixels des composantes R,V et B . Il faut ensuite attribuer cette moyenne à chacun des sous pixels R, V et B. Convertir les lunettes puis Lena en niveaux de gris. Il faut pour cela compléter (ligne 13) le code ci-dessous

from PIL import Image
img1=Image.open('lunettes.jpg')

colonne=img1.size[0]
ligne=img1.size[1]

for i in range(colonne):
    for j in range(ligne):
        pixel=img1.getpixel((i,j))
        R=pixel[0]
        V=pixel[1]
        B=pixel[2]
        moy=
        img1.putpixel((i,j),(moy,moy,moy))
        
img1.show()

Activité 5

Dessiner le drapeau Français avec une définition 164×85

Retouchez le drapeau que vous avez téléchargé pour obtenir le drapeau Français puis le drapeau Italien

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.