TP n°5 - Traitement d’images - partie 2
Notions abordées
- Convolution d’images
- Importances des bits de poids forts à travers la stéganographie
Toutes les fonctions doivent être commentées et testées. Elles doivent notamment être munies
d’une description faisant suite à d’éventuelles hypothèses sur leurs arguments placée entres triple
guillemets sous la signature de la fonction, (""" documentation sur plusieurs lignes""" ). Les
autres commentaires s’écrivent sur des lignes commençant par dièse : # ligne de commentaire .
On utilise dans ce TP la même mini-librairie pour le traitement d’image que dans le TP4. Pour
rappel elle contenait les trois fonctions suivantes :
- imread(file) permettant de lire l’image contenue dans le fichier nommé file et de la transformer
en matrice python.
- imshow(tab) permettant l’affichage d’une matrice python, vue comme une image.
- imsave(matrix, name) permettant la sauvegarde de la matrice matrix, vue comme une image
dans le fichier nommé name.
Exercice 1 Stéganographie
La stéganographie est l’art de la dissimulation : son objet est de faire passer inaperçu un message
dans un autre message1 . Afin de cacher une image dans une autre image, il est possible de remarquer
que dans une image, chaque couleur de chaque pixel est codée sur 8 bits ([0..255]). Les 4 bits de
poids fort ont une importance beaucoup plus grande que les 4 bits de poids faible en termes de
valeur de l’entier représenté. Aussi il est possible dans une image de remplacer les 4 bits de poids
faible de chaque couleur de chaque pixel par les 4 bits de poids fort d’une autre image de même taille.
Question 1
Dans l’image [Link] représentée
ci-contre et à récupérer sur cahier de prépa
après authentification, une autre image est
cachée, laquelle?
1
merci wikipedia
Informatique tronc commun - MP2I option SI - Lycée Fermat - 2021/2022 1/2
Exercice 2 Convolution
Étant données une matrice carrée Ω de dimension impaire 2p + 1, et une image en niveau de gris
(Ii,j )(i,j)∈[0..n−1]×[0..m−1] on définit l’image (Ji,j )(i,j)∈[0..n−1]×[0..m−1 obtenue par convolution de I avec Ω
comme étant l’image telle que :
X
∀(i, j) ∈ [p..n−p−1] × [p..m−p−1], Ji,j = Ii+a,j+b Ωp+a,p+b
(a,b)∈[−p..p]2
∀(i, j) 6∈ [p..n−p−1] × [p..m−p−1], Ji,j = Ii,j
Ainsi une case de l’image résultat est obtenue comme combinaison linéaire de ses cases voisines,
comme le montre le schéma ci-dessous, dans le cas d’une matrice Ω de dimension 3 × 3 :
∗ =
× + × + × + × + × +
× + × + × + ×
Question 1
Implanter une fonction convolution(img, omega) prenant en arguments une image img et une
matrice omega et calculant l’image obtenue par convolution de img et omega.
Question 2
1 1 1
1
Quel est l’effet d’une convolution par la matrice 9 1 1 1
1 1 1
Question 3
0 −1 0
Quel est l’effet d’une convolution par la matrice −1 5 −1
0 −1 0
Question 4
−1 2 −1
Quel est l’effet d’une convolution par la matrice 0 0 0
−1 2 −1
Question 5
−1 0 −1
Quel est l’effet d’une convolution par la matrice 2 0 2
−1 0 −1
Informatique tronc commun - MP2I option SI - Lycée Fermat - 2021/2022 2/2