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:

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:

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



Wpisy (RSS)
dzięki za kursik matlaba, bardzo się przydaje

Czekam na kolejne porcje
pozdro