Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

merci à Wikipedia et à stackoverflow

import des librairies

  1. Importez la librairie numpy

  2. Importez la librairie matplotlib.pyplot
    ou toute autre librairie d’affichage que vous aimez et/ou savez utiliser: seaborn ...

  1. optionnel - changez la taille par défaut des figures matplotlib par exemple choisissez d’afficher les figures dans un carré de 4x4 (en théorie ce sont des inches)

création d’une image de couleur

Exercice

  1. Créez un tableau non initialisé, pour représenter une image carrée de 91 pixels de côté, d’entiers 8 bits non-signés, et affichez-le

  1. Transformez le en tableau blanc (en un seul slicing) et affichez-le

  1. Transformez le en tableau vert (en un seul slicing) et affichez-le

  1. Affichez les valeurs RGB du premier pixel de l’image, et du dernier

  1. Faites un quadrillage d’une ligne bleue, toutes les 10 lignes et colonnes et affichez-le

lecture d’une image en couleur

  1. Avec la fonction plt.imread lisez le fichier data/les-mines.jpg

  1. Vérifiez si l’objet est modifiable avec im.flags.writeable; si il ne l’est pas, copiez l’image

  1. Affichez l’image

  1. Quel est le type de l’objet créé ?

  1. Quelle est la dimension de l’image ?

  1. Quelle est la taille de l’image en hauteur et largeur ?

  1. Quel est le nombre d’octets utilisé par pixel ?

  1. Quel est le type des pixels ?
    (deux types pour les pixels: entiers non-signés 8 bits ou flottants sur 64 bits)

  1. Quelles sont ses valeurs maximale et minimale des pixels ?

  1. Affichez le rectangle de 10 x 10 pixels en haut de l’image

accès à des parties d’image

  1. Relire l’image

  1. Slicer et afficher l’image en ne gardant qu’une ligne et qu’une colonne sur 2, 5, 10 et 20
    (ne dupliquez pas le code)

  1. Isoler le rectangle de l lignes et c colonnes en milieu d’image
    affichez-le pour (l, c) = (10, 20)) puis (l, c) = (100, 200)

canaux RGB de l’image

  1. Relire l’image

  1. Découpez l’image en ses trois canaux Red, Green et Blue (Il s’agit donc de construire trois tableaux de dimension 2)

The history saving thread hit an unexpected error (OperationalError('attempt to write a readonly database')).History will not be written to the database.
  1. Afficher chaque canal avec plt.imshow; la couleur est-elle la couleur attendue ?
    Si oui très bien, si non que se passe-t-il ?

  1. Corrigez vos affichages si besoin

  1. Copiez l’image, et dans la copie, remplacer le carré de taille (200, 200) en bas à droite:

    • d’abord par un carré de couleur RGB (219, 112, 147) (vous obtenez quelle couleur)

    • puis par un carré blanc avec des rayures horizontales rouges de 1 pixel d’épaisseur

  1. enfin pour vérifier, affichez les 20 dernières lignes et colonnes du carré à rayures

transparence des images

  1. Relire l’image initiale (sans la copier)

  1. Créez un tableau vide de la même hauteur et largeur que l’image, du type de l’image initiale, mais avec un quatrième canal

  1. Copiez-y l’image initiale, mettez le quatrième canal à 128 et affichez l’image

image en niveaux de gris en float

  1. Relire l’image data/les-mines.jpg

  1. Passez ses valeurs en flottants entre 0 et 1 et affichez-la

  1. Transformer l’image en deux images en niveaux de gris :
    a. en mettant pour chaque pixel la moyenne de ses valeurs R, G, B
    b. en utilisant la correction Y (qui corrige le constrate) basée sur la formule
    Y = 0.299 * R + 0.587 * G + 0.114 * B
    c. optionnel: si vous pensez à plusieurs façons de faire la question a., utilisez %%timeit pour les benchmarker et choisir la plus rapide

  1. Prenez l’image de 3.a (moyenne des 3 canaux), passez les pixels au carré, et affichez le résultat Quel est l’effet sur l’image ?

  1. Pareil, mais cette fois utilisez la racine carrée; quel effet cette fois ?

  1. Convertissez l’image (de 3.a toujours) en type entier, et affichez la

affichage grille de figures

type(axes)=<class 'numpy.ndarray'>
axes.shape=(2, 3)
<Figure size 640x480 with 6 Axes>

reprenons le TP

exercice

Reprenez les trois images en niveau de gris que vous aviez produites ci-dessus:
A: celle obtenue avec la moyenne des rgb
B: celle obtenue avec la correction Y
C: celle obtenue avec la racine carrée

  1. Affichez les trois images côte à côte

    A B C
  1. Affichez-les en damier:

    A B C
    C A B
    B C A