La fonction cacheImage

Question

Écrire une fonction cacheImage(imMasque, imSecret) ayant pour arguments les formes matricielles de l'image masque et de l'image à cacher. Cette fonction renvoie une image sous forme matricielle, dans laquelle les 4 premiers bits sont les bits de poids forts de l'image masque et les 4 derniers bits sont les bits de poids forts de l'image secret.

Indice

Il faut bien sur utiliser

  • la fonction reduit4Bits sur imMasque pour libérer les quatre bits de poids faibles sur imMasque.

  • la fonction decalePoidsForts sur imSecret pour décaler les quatre bits de poids forts vers les bits de poids faibles sur imMasque.

Indice

Numpy sait additionner des tableaux en une seule ligne, il 'est ici pas nécessaire de travailler bit par bit.

Question

Tester votre fonction en camouflant secret.png dans masque.png.

Observer le résultat en affichant l'image obtenue et l'image masque. L'image masque est-elle modifiée visuellement ?

Vérifier que les valeurs RGB ont bien été modifiées.

Solution

1
## Test de notre fonction cacheImage
2
imCachee = cacheImage(masque, secret)
3
4
# Pour aficher les deux images dans une même fenêtre
5
plt.figure('l image masque et l image cache dans le masque ')
6
plt.subplot(121)
7
plt.title('l image masque')
8
plt.imshow(masque)
9
plt.subplot(122)
10
plt.title('l image cache dans le masque')
11
plt.imshow(imCachee)
12
plt.show()
13

L'image masque ne semble pas être modifiée.