Come richiesto da lucabeer in un 3D del Sushi Bar, vediamo come sia possibile ralizzare una procedura di watermarking col software Matlab. spero di essere chiaro.
Partiamo dall'algoritmo generale di watermarking. questa procedura mira ad inserire un marchio percettivamente trasparente in un'immagine; marchio che però deve essere riconoscibile da un apposito detector. La caratteristiche del marchio devono essere la trasparenza, come detto, ma anche la robustezza e l'identificabilità da parte del proprietario.
In matlab è possibile leggere le immagini, creando una matrice, anzi 3 matrici (se l'immagine è a colori, una per il rosso, una per blu, una per il verde). A questo punto, se l'immaigne è quantizzata ad 8 bit, avrai valori da 0 a 255 per ogni matrice che a sua volta sarà costituita, nel caso di una foto a 5Mpxls da 1944 righe e 2592 colonne.
L'istruzione per leggere un'immagine e convertirla in un file è imread, che sta nell' Image rocessing Toolbox.
Facciamo un esempio, tu vuoi leggere l'immagine 'moon.tif', che è un'immagine campione di Matlab. Allora nel prompt di Matlab devi scrivere:
>>a=imread('moon.tif');
in questo modo la variabile a è la tua immagine e nel Workspace ti apparirà proprio questa variabile, che sarà in formato uint8 (cioè intero non segnato ad 8 bit).
Prima di procedere è necessario convertire in formato double la variabile di a e l'operazione di cast in matlab la fai con la seguente sintasso:
>>a=double(a);
in questo modo la tua variabile a è pronta per essere marchiata.