Principe du camouflage
Nous allons cacher une image, que nous appellerons secret, dans une image que nous appellerons masque. Ces deux images sont bien évidemment de même dimension et toutes les deux codées en RGB.
Les images sur laquelle nous allons travailler sont codée en RGB pour laquelle chaque niveau de couleur est codée avec un entier non signé sur 8 bits (type uint8 du module numpy.
Nous pouvons donc coder :\(2^8 * 2^8 * 2^8 =16'777'216\) couleurs différentes.
L'idée de base est la suivante :
nous allons réduire le codage des couleurs de secret et de masque aux 4 bits de poids le plus fort.
les 4 bits par couleurs libérés sur masque permettront d'y stocker les 4 bits de poids le plus fort de secret.

Attention :
Pour cette nouvelle partie vous utiliserez obligatoirement pyzo.
Vous ouvrirez un nouveau fichier py dont voici les premières lignes :
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import os
os.chdir(r'H:/travail/etc...') # écrire ici le chemin complet pour se placer dans votre répertoire de travail
## Les fonctions fournies
def litImage(nomFichier):
"""Lit une image stockée au format .png dans le fichier nomFichier et retourne l'image codée au format uint8"""
im=mpimg.imread(nomFichier) # lecture de l'image
im=(im*255).round().astype(np.uint8) # reformatage de l'image (multiplication par 255, arrondi, passage au type uint(8)
return im
N'oubliez d'indiquer le chemin vers votre répertoire de travail.