close all clear all height0 = 240; width0 = 320; height = 1 * height0; width = 1 * width0; %% citire % citim imaginea de transport si o convertim din spatiul de culoare RGB in % spatiul L*a*b* img = imread('sky.jpg'); img = imresize(img, [4 * height0 + 1, 4 * width0 + 1]); h = figure , image(img) title('imagine originala') print(h, '-dpng', 'steganography_imagine_originala.png'); img_lab = double(rgb2lab(img)) / 255; h = figure , image(img_lab) title('imagine originala in spatiul l*a*b') %citim imaginea secreta si o convertim in gri hid_img = imread('dog.jpeg'); hid_img = imresize(hid_img, [height,width]); hid_img = double(rgb2gray(hid_img)) / 255; h = figure, imshow(hid_img); title('imagine secreta') %% encodare stego_a = encode_hidden_image(img_lab(:,:,2), hid_img); stego_b = encode_hidden_image(img_lab(:,:,3), hid_img); figure, imagesc(stego_a); title('stego a') stego = img_lab; stego(:,:,2) = stego_a; stego(:,:,3) = stego_b; stego_rgb = lab2rgb(stego * 255); savefile = 'steno_img.bmp' % imwrite(stego_rgb,'stego_rgn.jpeg','jpeg','Mode','lossless','BitDepth',12); imwrite(stego_rgb,savefile,'bmp'); %% decodare stego_rgb_read = imread(savefile); h = figure , image(stego_rgb_read); title('imagine stego') stego_jpeg = double(rgb2lab(stego_rgb_read))/255; figure, imagesc(log(abs(fft2(stego_jpeg(:,:,2))))); hid1 = decode_stegano_image(stego_jpeg(:,:,2)); hid2 = decode_stegano_image(stego_jpeg(:,:,3)); hid = (hid1 + hid2) / 2; figure, imshow(hid);impixelinfo title('imagine secretă recuperată')