Dziś pokażę jak w szybki sposób zakodować obraz. Zakodować czyli ukryć w nim jakaś tajną treść, którą będzie można odczytać tylko gdy będzie ktoś posiadał oryginalną matrycę w której ukryliśmy inny obraz. Jak to wygląda? Poniżej zakodowany obraz:

wynik kodowania

Jaką tajną wiadomość ukryłem w tym obrazie? Zaraz się przekonamy…

Ale od początku. Najpierw szybki proces kodowania obrazu:

matryca=imread(’cameraman.tif’);
matryca=double(matryca)/255;
obraz=imread(’apple.gif’);
obraz=double(obraz)/255;
wynik=matryca*0.99+obraz*0.01;
imshow(wynik);
imwrite(wynik, ‘wynik.bmp’, ‘bmp’)

I szybko wytłumaczę co robimy krok po kroku. Wczytujemy obraz (matryce) ogólnodostępny, następnie konwertujemy na typ double. Wczytujemy wiadomość którą chcemy ukryć (plik 256 kolorów czarno-biały) i także konwertujemy na double. Wynik to będzie nasz zakodowany obraz, ustalamy tutaj proporcje w jakich będziemy kodować. 99% dla tła i 1% dla kodowanej wiadomości. Następnie wyświetlamy obraz zakodowany i zapisujemy do pliku wynik.bmp. Gotowe!

Jak odkodować wiadomość mając obraz matrycę i obraz zakodowany?

matryca=imread(’cameraman.tif’);
matryca=double(matryca)/255;
obraz=imread(’kodowanie_wynik.gif’);
obraz=double(obraz)/255;
wynik=(obraz-matryca*0.99)*100;
imshow(wynik)

Wczytujemy naszą matrycę (cameraman) oraz obraz zakodowany (kodowanie_wynik). Oba obrazy konwertujemy (double) a wynik, czyli wiadomość, którą zakodowaliśmy otrzymamy jeżeli od zakodowanego obrazu odejmiemy matrycę (w 99%) i całość pomnożymy przez 100 (inaczej zobaczymy czarny obraz). Na koniec pokazujemy zakodowana wiadomość.

Końcowy efekt:

odkodowany obraz

Plik apple.gif (użyłem go do kodowania wiadomości):

obraz do kodowania

Jedna odpowiedź na “Matlab mini kurs - kodowanie”
  1. chronicker napisał:

    dzięki za kursik matlaba, bardzo się przydaje :)
    Czekam na kolejne porcje ;)
    pozdro

Pozostaw odpowiedź

(c) 2007 by Michał Terbert