i want the explaination of this code and its implementation steps

9 views (last 30 days)
clc;
close all;
clear all;
warning off ;
im = imread('C:\Users\user\Desktop\New folder (2)\face3.jpg');
figure;imshow(im);title('cover image');
im1 = double(im);
hsv_im1 = rgb2hsv(im1);
figure;imshow(hsv_im1);title('HSV image');
h_range = [0 .11];
s_range = [0.2 1.5];
h = hsv_im1(:,:,1);
s = hsv_im1(:,:,2);
I = h+s;
I(find(I==0))=Inf;
skin = ((s>s_range(1)) & (s<s_range(2)) &(h>h_range(1)) & (h<h_range(2)));
imwrite(skin,'C:\Users\user\Desktop\New folder (2)\binary.jpg');
figure;imshow(skin);title('binary mask');
B=imread('C:\Users\user\Desktop\New folder (2)\lettea.bmp');
%B=imread('OCN32.bmp');
B=logical(B);
figure;imshow(B);title('secret image');
A=imread('C:\Users\user\Desktop\New folder (2)\binary.jpg');
A1=imread('C:\Users\user\Desktop\New folder (2)\face3.jpg');
A1=imresize(A1,[512,512]);
s1=size(A,1);
s11=size(A,2);
count=0;
for i=1:s1
for j=1:s11
if(A(i,j)==1)
count=count+1;
end
end
end
disp(count);
%split R,G,B planes
A1R=A1(:,:,1);
A1G=A1(:,:,2);
A1B=A1(:,:,3);
figure;imshow(A1B);title('B-plane image');
i2=A1B;
[cA1,cH1,cV1,cD1] = dwt2(A1B,'haar');
dec2d = [cA1, cH1; cV1, cD1 ];
figure; imshow(uint8(dec2d));title('haar transform to B-PLANE image');
A=imresize(A,[256,256]);
s=size(A,1);
f=imread('C:\Users\user\Desktop\New folder (2)\lettea.bmp');
%f=imread('OCN32.bmp');
array=[];k=1;
for i=1:32
for j=1:32
array(k)=f(i,j);
k=k+1;
end
end
sb=size(B,1);
p=1;
for i=1:s
for j=1:s
if(A(i,j)==1)
q(p,1)=i;
q(p,2)=j;
p=p+1;
end
end
end
%Payload calculation
%count total pixels
ind=sb*sb;
cnt=0;
for j=1:ind
cnt=cnt+1;
end
disp(cnt);
if (cnt>count)
disp('data cannot be embedded');
else
disp('data can be embedded');
p=1;
m=3037;
a=2;
c=0;
x=0;
x(1)=1;
k=1;
while(k<(m-1))
x(k+1)=mod(((a*x(k))+c),m);
if(x(k+1)==1)
k=m;
else
k=k+1;
end
end
[m,n]=size(x);
k=ceil(n/2);
y=zeros(k,2);
p=1;
for i=1:2:n-1
y(p,1)=x(i);
y(p,2)=x(i+1);
p=p+1;
end
k=1;
for i=1:256
for j=1:256
array2(k)=cD1(i,j);
k=k+1;
end
end
[sb,sc]=size(array);
p=1;
i=1;
while(i<=sc)
p1=y(p,1);
p2=y(p,2);
if(array2(p1)==array2(p2))
p=p+1;
else
if(array(i)==0)
if(array2(p1)>array2(p2))
t=array2(p1);
array2(p1)=array2(p2);
array2(p2)=t;
end
elseif(array(i)==1)
if(array2(p1)<array2(p2))
t=array2(p1);
array2(p1)=array2(p2);
array2(p2)=t;
end
end
p=p+1;
i=i+1;
end
end
k=1;
for i=1:256
for j=1:256
cD2(i,j)=array2(k);
k=k+1;
end
end
figure;imshow(cD2);title('secret image embedded in cD1 band');
poo=[cA1,cH1;cV1,cD2];
%combine all the four bands
emb=idwt2(cA1,cH1,cV1,cD2,'haar');
%combine all the three planes
A1B=emb;
temp=size(emb);
pic=zeros(temp(1),temp(2),3);
for i=1:temp(1);
for j=1:temp(2);
pic(i,j,1)=A1R(i,j);
pic(i,j,2)=A1G(i,j);
pic(i,j,3)=A1B(i,j);
end
end
output=uint8(round(pic));
figure;imshow(uint8(pic));title('Embedded Image');
imwrite(output,'C:\Users\user\Desktop\New folder (2)\embedded.png');
%check for histogram
z1=rgb2gray(im);
figure;imhist(z1);
z2=rgb2gray(output);
figure;imhist(z2);
% psnr calculation
mse=0;
[row col z]=size(A1);
for i=1:row
for j=1:col
v=double(output(i,j,z))-double(A1(i,j,z));
v=v*v;
mse=mse+v;
end
end
mse=mse/(row*col);
disp(mse);
psnr=10*log10(255*255/mse);
disp('The PSNR of the stego image is');
disp(psnr);
%%%%%%%%%%%%%%% RECIEVER SIDE%%%%%%%%%%%%%%%%%%%%%%%%
A11=imread('embedded.png');
figure;imshow(A11);title('recieved image');
hsv_im12 = rgb2hsv(A11);
figure;imshow(hsv_im1);title('HSV image');
h_range = [0 .11];
s_range = [0.2 1.5];
h = hsv_im1(:,:,1);
s = hsv_im1(:,:,2);
I = h+s;
I(find(I==0))=Inf;
skin = ((s>s_range(1)) & (s<s_range(2)) &(h>h_range(1)) & (h<h_range(2)));
imwrite(skin,'C:\Users\user\Desktop\New folder (2)\binary2.jpg');
figure;imshow(skin);title('binary2 mask');
A11=imresize(A11,[512,512]);
%split R,G,B planes
A11R=A11(:,:,1);
A11G=A11(:,:,2);
A11B=A11(:,:,3);
figure;imshow(A11B);title('B-plane image');
i1=A11B;
%A1B=[];
[cA11,cH11,cV11,cD11] = dwt2(A11B,'haar');
dec2 = [cA11, cH11; cV11, cD11 ];
figure; imshow(uint8(dec2));
%extraction transform
A2=imread('C:\Users\user\Desktop\New folder (2)\binary2.jpg');
A2=imresize(A2,[256,256]);
s=size(A2,1);
count=0;p=1;
for i=1:s
for j=1:s
if(A2(i,j)==1)
q(p,1)=i;
q(p,2)=j;
p=p+1;
count=count+1;
end
end
end
m=3037;
a=2;
c=0;
x=0;
x(1)=1;
k=1;
while(k<(m-1))
x(k+1)=mod(((a*x(k))+c),m);
if(x(k+1)==1)
k=m;
else
k=k+1;
end
end
[m,n]=size(x);
k=ceil(n/2);
y=zeros(k,2);
p=1;
for i=1:2:n-1
y(p,1)=x(i);
y(p,2)=x(i+1);
p=p+1;
end
k=1;
for i=1:256
for j=1:256
array2(k)=cD11(i,j);
k=k+1;
end
end
p=1;
i=1;
while(i<=1024)
p1=y(p,1);
p2=y(p,2);
if(array2(p1)==array2(p2))
p=p+1;
else
if(array2(p1)<array2(p2))
d(i)=0;
elseif(array2(p1)>array2(p2))
d(i)=1;
end
p=p+1;
i=i+1;
end
end
f2=[];
k=1
for i=1:32
for j=1:32
f2(i,j)=d(k);
k=k+1;
end
end
f2=logical(f2);
figure;
imshow(f2);
recv=idwt2(cA11,cH11,cV11,cD11,'haar');
temp=size(A11);
pic=zeros(temp(1), temp(2),3);
for i=1:temp(1);
for j=1:temp(2);
pic(i,j,1)=A11R(i,j);
pic(i,j,2)=A11G(i,j);
pic(i,j,3)=A11B(i,j);
end
end
output=uint8(round(pic));
figure;imshow(uint8(pic));title('recovered Image');
imwrite(uint8(pic),'C:\Users\user\Desktop\New folder (2)\recv_image.jpg');
end

Answers (1)

Medicharla Rama Krishna Siva Naga Sai
This code is for what expt/project?

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!