Steganografia w Matlabie (kiedyś będzie szerszy opis). Kod zoptymalizowany pod Matlaba; nie będzie działał z Octave (osobny skrypt w odpowiednim dziale niedługo zostanie wstawiony).
[pictureone, user_canceled1] = imgetfile;[picturetwo, user_canceled2] = imgetfile;width = 640;if (user_canceled1 || user_canceled2) fprintf('nAnulowales wybieranie plikow do porownania!n')else %Opening both files Aread = imread(pictureone); Bread = imread(picturetwo); %Dithering [Bwidth Bheight Bplanes] = size(Bread); if (Bplanes > 1) Br = dither(Bread(:,:,1)); Bg = dither(Bread(:,:,2)); Bb = dither(Bread(:,:,3)); Bmono = cat(3, Br, Bg, Bb); else Bi = dither(Bread); Bmono = cat(3, Bi, Bi, Bi); end %resizing pictures A = imresize(Aread,[width*size(Aread,1)/size(Aread,2) width]); B = imresize(Bmono,[width*size(Bmono,1)/size(Bmono,2) width]); Bsource = imresize(Bread,[width*size(Bread,1)/size(Bread,2) width]); %RGB pseudo-BW fix (only for display) Bmono = B; B = B * 255; %Steganography itself Anew = bitor(bitand(A, 254),uint8(Bmono)); Astegano = bitand(Anew, 1); %Results imshow([Anew Bsource; Astegano (255*Astegano)]) pause; imshow(255*Astegano)end