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
## Test de notre fonction cacheImage
imCachee = cacheImage(masque, secret)
# Pour aficher les deux images dans une même fenêtre
plt.figure('l image masque et l image cache dans le masque ')
plt.subplot(121)
plt.title('l image masque')
plt.imshow(masque)
plt.subplot(122)
plt.title('l image cache dans le masque')
plt.imshow(imCachee)
plt.show()
L'image masque ne semble pas être modifiée.