samedi 28 mars 2015

I have a program of image steganography where i'm hiding text in an image but i can't understand the code used for hiding the data

This the encoding program... pic1 = imread([pth fnm]); B = pic1(:,:,1); [piclngth pichght] = size(B); dim1 = piclngth-2; dim2 = pichght-3; keyb = key(end:-1:1); rows = cumsum(double(key)); columns = cumsum(double(keyb));



A = zeros(dim1,dim2);
A = mtrx(A,rows,columns,dim1,dim2,key);
idx = find(A==1);

for vv = 1:100
for uu = 1:7
if msgmat(vv,uu)==1;
if rem(B(idx(uu+7*(vv-1))),2)==0
B(idx(uu+7*(vv-1))) = B(idx(uu+7*(vv-1)))+1;
end
elseif rem(B(idx(uu+7*(vv-1))),2)==1
B(idx(uu+7*(vv-1))) = B(idx(uu+7*(vv-1)))-1;
end
end
end
newpic = pic1; newpic(:,:,1) = B;

disp('MESSAGE IS ENCODED IN IMAGE');
disp('===================================');

disp('ENTER FILENAME TO SAVE IMAGE WITH HIDDEN MESSAGE');

[fnm pth] = uiputfile({'*.bmp';'*.tif'},'Save Encoded File As');
if isequal(fnm,0) || isequal(pth,0)
success = []; return
end

imwrite(newpic,[pth fnm]);
success = 1;

if success ==1
fprintf('MESSAGE ENCODED SUCCESSFULY..');
fprintf('\nIMAGE SAVED AS ..%s',[pth fnm] );
end

This the matrix program....

function A = mtrx(A,rows,columns,dim1,dim2,key)

jj = 1; idx = 1;
while 7000 > length(idx)
for ii = 1:length(rows)
if rows(ii) < dim1
rows(ii) = rem(dim1,rows(ii))+1;
else
rows(ii) = rem(rows(ii),dim1)+1;
end
if columns(ii) < dim2
columns(ii) = rem(dim2,columns(ii))+1;
else
columns(ii) = rem(columns(ii),dim2)+1;
end
A(rows(ii),columns(ii)) = 1;
end
rows = jj*cumsum(double(columns))+round(dim2/2);
columns = jj*cumsum(double(rows))+round(dim1/2);
if jj > ceil(7000/length(key))+2
idx = find(A==1);
end
jj = jj+1;
end

Aucun commentaire:

Enregistrer un commentaire