ارجو منكم شرح البرنامج


(matlab1) #1

السلام عليكم ورحمة الله
اولا اشكررررركم على مساعدتي واتمنى تساعدوني للمره الاخيره ان شاء الله هذا البرنااااامج النهائي انا فاهمته ان شاء الله بس فيه كذا شي بسيط مافهمته ياليت تشرحونه ((((((سطر سطر)))))
وشكررا مقدماا


[SIZE=2][FONT=Monospaced][COLOR=#228b22][SIZE=2][FONT=Monospaced][COLOR=#228b22][SIZE=2][FONT=Monospaced][COLOR=#228b22]%read the orgenal image and resize to 512*512[/color][/font][/size]
[/color][/font][/size][/color][/font][/size][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2][COLOR=#000000]w=imread([/color][/size][/font][/size][/font][FONT=Monospaced][SIZE=2][COLOR=#a020f0][FONT=Monospaced][SIZE=2][COLOR=#a020f0][FONT=Monospaced][SIZE=2][COLOR=#a020f0]'6.jpg'[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2][COLOR=#000000]);[/color][/size][/font]
[SIZE=2][FONT=Monospaced]w=imresize(w,[512 512]);[/font][/size]
[SIZE=2][FONT=Monospaced]k=size(w);[/font][/size]
[SIZE=2][FONT=Monospaced]figure(1)[/font][/size]
[SIZE=2][FONT=Monospaced]imshow(w)[/font][/size]
[SIZE=2][FONT=Monospaced]title([/font][/size][/size][/font][FONT=Monospaced][SIZE=2][COLOR=#a020f0][FONT=Monospaced][SIZE=2][COLOR=#a020f0][FONT=Monospaced][SIZE=2][COLOR=#a020f0]'Origianl image'[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2])[/size][/font]
[/size][/font][FONT=Monospaced][SIZE=2][COLOR=#228b22][FONT=Monospaced][SIZE=2][COLOR=#228b22][FONT=Monospaced][SIZE=2][COLOR=#228b22]%convert the RGB to grat[/color][/size][/font]
[/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2][COLOR=#000000]a=rgb2gray(w);[/color][/size][/font]
[SIZE=2][FONT=Monospaced]figure(2)[/font][/size]
[SIZE=2][FONT=Monospaced]imshow(a)[/font][/size]
[SIZE=2][FONT=Monospaced]title([/font][/size][/size][/font][FONT=Monospaced][SIZE=2][COLOR=#a020f0][FONT=Monospaced][SIZE=2][COLOR=#a020f0][FONT=Monospaced][SIZE=2][COLOR=#a020f0]'gray image'[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2])[/size][/font]
[/size][/font][FONT=Monospaced][SIZE=2][COLOR=#228b22][FONT=Monospaced][SIZE=2][COLOR=#228b22][SIZE=2][FONT=Monospaced][COLOR=#228b22]% the secret message[/color][/font][/size]
[/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2][COLOR=#000000]ip=fopen([/color][/size][/font][/size][/font][FONT=Monospaced][SIZE=2][COLOR=#a020f0][FONT=Monospaced][SIZE=2][COLOR=#a020f0][FONT=Monospaced][SIZE=2][COLOR=#a020f0]'nn.txt'[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2][COLOR=#000000],[/color][/size][/font][/size][/font][FONT=Monospaced][SIZE=2][COLOR=#a020f0][FONT=Monospaced][SIZE=2][COLOR=#a020f0][FONT=Monospaced][SIZE=2][COLOR=#a020f0]'r'[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2][COLOR=#000000])[/color][/size][/font]
[/size][/font][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff]if[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2][COLOR=#000000](ip==-1)[/color][/size][/font]
[SIZE=2][FONT=Monospaced]disp([/font][/size][/size][/font][FONT=Monospaced][SIZE=2][COLOR=#a020f0][FONT=Monospaced][SIZE=2][COLOR=#a020f0][FONT=Monospaced][SIZE=2][COLOR=#a020f0]'cannot open file'[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2])[/size][/font]
[/size][/font][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff]end[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2][COLOR=#000000];[/color][/size][/font]
[SIZE=2][FONT=Monospaced]max0=0;[/font][/size]
[SIZE=2][FONT=Monospaced]no_string=0;[/font][/size]
[SIZE=2][FONT=Monospaced]line=fgetl(ip)[/font][/size]
[/size][/font][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff]while[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2][COLOR=#000000](ischar(line))[/color][/size][/font]
 
[SIZE=2][FONT=Monospaced]no_string= no_string+1;[/font][/size]
[/size][/font][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff]if[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2](length(line)> max0)[/size][/font]
[SIZE=2][FONT=Monospaced]max0=length(line);[/font][/size]
[/size][/font][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff]end[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2];[/size][/font]
[SIZE=2][FONT=Monospaced]line=fgetl(ip)[/font][/size]
 
[/size][/font][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff]end[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2][COLOR=#000000];[/color][/size][/font]
[SIZE=2][FONT=Monospaced]frewind(ip);[/font][/size]
[SIZE=2][FONT=Monospaced]msq=char(zeros(no_string,max0));[/font][/size]
[SIZE=2][FONT=Monospaced]no_string=0;[/font][/size]
[SIZE=2][FONT=Monospaced]line=fgetl(ip);[/font][/size]
[/size][/font][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff]while[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2][COLOR=#000000](ischar(line))[/color][/size][/font]
[SIZE=2][FONT=Monospaced]no_string= no_string+1;[/font][/size]
[SIZE=2][FONT=Monospaced]msq(no_string,1:length(line))=line[/font][/size]
 
[SIZE=2][FONT=Monospaced]line=fgetl(ip);[/font][/size]
[/size][/font][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff]end[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2][COLOR=#000000];[/color][/size][/font]
[SIZE=2][FONT=Monospaced]fclose(ip);[/font][/size]
 
[/size][/font][FONT=Monospaced][SIZE=2][COLOR=#228b22][FONT=Monospaced][SIZE=2][COLOR=#228b22][FONT=Monospaced][SIZE=2][COLOR=#228b22]%w is the old image[/color][/size][/font]
[/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2][COLOR=#000000]new_a = a;[/color][/size][/font]
[SIZE=2][FONT=Monospaced]img_size = size(new_a);[/font][/size]
[SIZE=2][FONT=Monospaced]img_size = img_size(1,1)*img_size(1,2);[/font][/size]
[/size][/font][FONT=Monospaced][SIZE=2][COLOR=#228b22][FONT=Monospaced][SIZE=2][COLOR=#228b22][FONT=Monospaced][SIZE=2][COLOR=#228b22]%convert secret message into one line[/color][/size][/font]
[/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2][COLOR=#000000]m_ar_size = size(msq);[/color][/size][/font]
[SIZE=2][FONT=Monospaced]msq_line=[/font][/size][/size][/font][FONT=Monospaced][SIZE=2][COLOR=#a020f0][FONT=Monospaced][SIZE=2][COLOR=#a020f0][FONT=Monospaced][SIZE=2][COLOR=#a020f0]''[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2];[/size][/font]
[SIZE=2][FONT=Monospaced]no = m_ar_size(1,1)-1;[/font][/size]
[/size][/font][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff]for[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2][COLOR=#000000] i=1:m_ar_size(1,1)[/color][/size][/font]
[SIZE=2][FONT=Monospaced]msq_line=strcat(msq_line,msq(i,:));[/font][/size]
[/size][/font][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff]if[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2](i~=m_ar_size(1,1)),msq_line=strcat(msq_line,[/size][/font][/size][/font][FONT=Monospaced][SIZE=2][COLOR=#a020f0][FONT=Monospaced][SIZE=2][COLOR=#a020f0][FONT=Monospaced][SIZE=2][COLOR=#a020f0]'/'[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2]);[/size][/font]
[/size][/font][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff]end[/color][/size][/font]
[SIZE=2][FONT=Monospaced][COLOR=#0000ff]end[/color][/font][/size]
[/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2][COLOR=#000000]msq=msq_line[/color][/size][/font]
 
[/size][/font][FONT=Monospaced][SIZE=2][COLOR=#228b22][FONT=Monospaced][SIZE=2][COLOR=#228b22][SIZE=2][FONT=Monospaced][COLOR=#228b22]%calculate message size== number of blocks[/color][/font][/size]
[/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2][COLOR=#000000]msq=dec2bin(msq,8);[/color][/size][/font]
[SIZE=2][FONT=Monospaced]m_ar_size = size(msq)[/font][/size]
[SIZE=2][FONT=Monospaced]bin_msq=[/font][/size][/size][/font][FONT=Monospaced][SIZE=2][COLOR=#a020f0][FONT=Monospaced][SIZE=2][COLOR=#a020f0][FONT=Monospaced][SIZE=2][COLOR=#a020f0]''[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2];[/size][/font]
[/size][/font][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff]for[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2][COLOR=#000000] i=1:m_ar_size(1,1)[/color][/size][/font]
[SIZE=2][FONT=Monospaced]bin_msq=strcat(bin_msq,msq(i,:));[/font][/size]
[/size][/font][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff]end[/color][/size][/font]
[/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2][COLOR=#000000]bin_msq[/color][/size][/font]
[SIZE=2][FONT=Monospaced]size(bin_msq);[/font][/size]
[SIZE=2][FONT=Monospaced]bin_msq(1:8)[/font][/size]
[SIZE=2][FONT=Monospaced]mes_size =size(msq);[/font][/size]
[SIZE=2][FONT=Monospaced]msq_all = mes_size(1,1)*mes_size(1,2);[/font][/size]
[/size][/font][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff]if[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2][COLOR=#000000](img_size/64)<msq_all[/color][/size][/font]
[SIZE=2][FONT=Monospaced]x = int2str(int32(img_size/64));[/font][/size]
[SIZE=2][FONT=Monospaced]m = strcat([/font][/size][/size][/font][FONT=Monospaced][SIZE=2][COLOR=#a020f0][FONT=Monospaced][SIZE=2][COLOR=#a020f0][FONT=Monospaced][SIZE=2][COLOR=#a020f0]'Maximum array size is:'[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2],x);[/size][/font]
[SIZE=2][FONT=Monospaced]disp([/font][/size][/size][/font][FONT=Monospaced][SIZE=2][COLOR=#a020f0][FONT=Monospaced][SIZE=2][COLOR=#a020f0][FONT=Monospaced][SIZE=2][COLOR=#a020f0]'Error'[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2]);[/size][/font]
[/size][/font][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff]return[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2];[/size][/font]
[/size][/font][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff]end[/color][/size][/font]
 
 
[/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][COLOR=#228b22][FONT=Monospaced][SIZE=2][COLOR=#228b22][SIZE=2][FONT=Monospaced][COLOR=#228b22]% Dividing into 8x8 blocks[/color][/font][/size]
[/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2][COLOR=#000000][xdim ydim]= size(new_a)[/color][/size][/font]
[SIZE=2][FONT=Monospaced]x=8;[/font][/size]
[SIZE=2][FONT=Monospaced]count=1;[/font][/size]
[SIZE=2][FONT=Monospaced]finished=0;[/font][/size]
[SIZE=2][FONT=Monospaced]strength=20;[/font][/size]
[/size][/font][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff]for[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2][COLOR=#000000] i=1:8:xdim;[/color][/size][/font]
[/size][/font][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff]for[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2][COLOR=#000000] j=1:8:ydim;[/color][/size][/font]
[/size][/font][FONT=Monospaced][SIZE=2][COLOR=#228b22][FONT=Monospaced][SIZE=2][COLOR=#228b22][FONT=Monospaced][SIZE=2][COLOR=#228b22]%get one block[/color][/size][/font]
[/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2][COLOR=#000000]one_block=double(new_a(i:1:min(i+7,xdim),j:1:min(j+7,ydim)));[/color][/size][/font]
 
[SIZE=2][FONT=Monospaced]one_block_size=size(one_block);[/font][/size]
 
[SIZE=2][FONT=Monospaced]width=one_block_size(1,1);[/font][/size]
[/size][/font][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff]if[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2][COLOR=#000000] width<8,[/color][/size][/font]
 
[SIZE=2][FONT=Monospaced]one_block(width:8,:)=0;[/font][/size]
[/size][/font][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff]end[/color][/size][/font]
[/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2][COLOR=#000000]height=one_block_size(1,2);[/color][/size][/font]
[/size][/font][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff]if[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2][COLOR=#000000] height<8;[/color][/size][/font]
 
[SIZE=2][FONT=Monospaced]one_block(:,height:8)=0;[/font][/size]
[/size][/font][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff]end[/color][/size][/font]
 
[/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2][COLOR=#000000]B = dct2(one_block);[/color][/size][/font]
[/size][/font][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff]if[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2][COLOR=#000000] count > msq_all,[/color][/size][/font]
[SIZE=2][FONT=Monospaced]finished=1;[/font][/size]
[/size][/font][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff]break[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2];[/size][/font]
[/size][/font][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff]end[/color][/size][/font]
[SIZE=2][FONT=Monospaced][COLOR=#0000ff]if[/color][/font][/size][/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2][COLOR=#000000] bin_msq(1,count) ==[/color][/size][/font][/size][/font][FONT=Monospaced][SIZE=2][COLOR=#a020f0][FONT=Monospaced][SIZE=2][COLOR=#a020f0][FONT=Monospaced][SIZE=2][COLOR=#a020f0]'0'[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2][COLOR=#000000],[/color][/size][/font]
 
[/size][/font][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff]if[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2][COLOR=#000000] B(2,3)> B(2,7)[/color][/size][/font]
[SIZE=2][FONT=Monospaced]temp = B(2,3);[/font][/size]
[SIZE=2][FONT=Monospaced]B(2,3)=B(2,7);[/font][/size]
[SIZE=2][FONT=Monospaced]B(2,7)= temp;[/font][/size]
[/size][/font][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff]end[/color][/size][/font]
[SIZE=2][FONT=Monospaced][COLOR=#0000ff]while[/color][/font][/size][/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2][COLOR=#000000](B(2,7)-B(2,3))<strength[/color][/size][/font]
[SIZE=2][FONT=Monospaced]B(2,7)=B(2,7)+rand()*strength;[/font][/size]
[/size][/font][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff]end[/color][/size][/font]
 
[SIZE=2][FONT=Monospaced][COLOR=#0000ff]else[/color][/font][/size]
[/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff]if[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2][COLOR=#000000] B(2,3)<B(2,7)[/color][/size][/font]
[SIZE=2][FONT=Monospaced]temp=B(2,3);[/font][/size]
[SIZE=2][FONT=Monospaced]B(2,3)=B(2,7);[/font][/size]
[SIZE=2][FONT=Monospaced]B(2,7)=temp;[/font][/size]
[/size][/font][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff]end[/color][/size][/font]
[SIZE=2][FONT=Monospaced][COLOR=#0000ff]while[/color][/font][/size][/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2][COLOR=#000000](B(2,3)-B(2,7))<strength[/color][/size][/font]
[SIZE=2][FONT=Monospaced]B(2,3)=B(2,3)+rand()*strength;[/font][/size]
[/size][/font][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff]end[/color][/size][/font]
 
[SIZE=2][FONT=Monospaced][COLOR=#0000ff]end[/color][/font][/size]
[/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2][COLOR=#000000]B_inv = idct2(B);[/color][/size][/font]
[SIZE=2][FONT=Monospaced]new_a(i:1:i+7, j:1:j+7)=B_inv;[/font][/size]
[SIZE=2][FONT=Monospaced]count=count+1;[/font][/size]
[/size][/font][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff]end[/color][/size][/font]
[SIZE=2][FONT=Monospaced][COLOR=#0000ff]if[/color][/font][/size][/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2][COLOR=#000000] finished ==1,[/color][/size][/font]
[/size][/font][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff]break[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2];[/size][/font]
[/size][/font][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff]end[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2][COLOR=#000000];[/color][/size][/font]
[/size][/font][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff]end[/color][/size][/font]
[/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2][COLOR=#000000]figure(3)[/color][/size][/font]
[SIZE=2][FONT=Monospaced]imshow(new_a)[/font][/size]
[SIZE=2][FONT=Monospaced]title([/font][/size][/size][/font][FONT=Monospaced][SIZE=2][COLOR=#a020f0][FONT=Monospaced][SIZE=2][COLOR=#a020f0][FONT=Monospaced][SIZE=2][COLOR=#a020f0]'stego image'[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2])[/size][/font]
[/size][/font][FONT=Monospaced][SIZE=2][COLOR=#228b22][FONT=Monospaced][SIZE=2][COLOR=#228b22][/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][COLOR=#228b22][FONT=Monospaced][SIZE=2][COLOR=#228b22][FONT=Monospaced][SIZE=2][COLOR=#228b22]%the decoding phase==============================[/color][/size][/font]
[/color][/size][/font][/color][/size][/font]
[SIZE=2][FONT=Monospaced][SIZE=2][FONT=Monospaced]m_s = inputdlg([/font][/size][/font][/size][FONT=Monospaced][SIZE=2][COLOR=#a020f0][FONT=Monospaced][SIZE=2][COLOR=#a020f0][FONT=Monospaced][SIZE=2][COLOR=#a020f0]'Enter secret message size:'[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2],[/size][/font][/size][/font][FONT=Monospaced][SIZE=2][COLOR=#a020f0][FONT=Monospaced][SIZE=2][COLOR=#a020f0][FONT=Monospaced][SIZE=2][COLOR=#a020f0]'msg_size'[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2]);[/size][/font]
[SIZE=2][FONT=Monospaced]msg_size = cell2mat(m_s)[/font][/size]
[SIZE=2][FONT=Monospaced]msg_size = str2num(msg_size);[/font][/size]
[/size][/font][FONT=Monospaced][SIZE=2][COLOR=#228b22][FONT=Monospaced][SIZE=2][COLOR=#228b22][FONT=Monospaced][SIZE=2][COLOR=#228b22]%msg_size = msg_size + no[/color][/size][/font]
[/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2][COLOR=#000000]bin_msq1=[/color][/size][/font][/size][/font][FONT=Monospaced][SIZE=2][COLOR=#a020f0][FONT=Monospaced][SIZE=2][COLOR=#a020f0][FONT=Monospaced][SIZE=2][COLOR=#a020f0]''[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2][COLOR=#000000];[/color][/size][/font]
[SIZE=2][FONT=Monospaced]imsize=size([/font][/size][/size][/font][FONT=Monospaced][SIZE=2][COLOR=#a020f0][FONT=Monospaced][SIZE=2][COLOR=#a020f0][FONT=Monospaced][SIZE=2][COLOR=#a020f0]'new_a'[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2]);[/size][/font]
[SIZE=2][FONT=Monospaced]xdim = imsize(1,1);[/font][/size]
[SIZE=2][FONT=Monospaced]ydim = imsize(1,2);[/font][/size]
[SIZE=2][FONT=Monospaced]count= 1;[/font][/size]
[SIZE=2][FONT=Monospaced]finished = 0;[/font][/size]
[/size][/font][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff]for[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2] i = 1:8:xdim[/size][/font]
[/size][/font][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff]for[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2] j = 1:8:ydim[/size][/font]
[SIZE=2][FONT=Monospaced]one_block=double(new_a(i:1:min(i+7,xdim),j:1:min(j+7,ydim)));[/font][/size]
[SIZE=2][FONT=Monospaced]one_block_size =size(one_block);[/font][/size]
[SIZE=2][FONT=Monospaced]width= one_block_size(1,1);[/font][/size]
[/size][/font][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff]if[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2] width < 8[/size][/font]
[SIZE=2][FONT=Monospaced]one_block(width:8,:) = 0;[/font][/size]
[/size][/font][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff]end[/color][/size][/font]
[/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2][COLOR=#000000]height=one_block_size(1,2);[/color][/size][/font]
[/size][/font][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff]if[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2] height < 8[/size][/font]
[SIZE=2][FONT=Monospaced]one_block(:,height:8) = 0;[/font][/size]
[/size][/font][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff]end[/color][/size][/font]
[/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2][COLOR=#000000]B=dct2(one_block);[/color][/size][/font]
[/size][/font][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff]if[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2] count> msg_size*8,[/size][/font]
[SIZE=2][FONT=Monospaced]msgbox([/font][/size][/size][/font][FONT=Monospaced][SIZE=2][COLOR=#a020f0][FONT=Monospaced][SIZE=2][COLOR=#a020f0][FONT=Monospaced][SIZE=2][COLOR=#a020f0]'Successful extracrt'[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2]);[/size][/font]
[SIZE=2][FONT=Monospaced]finished=1;[/font][/size]
[/size][/font][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff]break[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2];[/size][/font]
[/size][/font][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff]end[/color][/size][/font]
[/color][/size][/font][/color][/size][/font]
[FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff]if[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2] B(2,3)<= B(2,7)[/size][/font]
[SIZE=2][FONT=Monospaced]bin_msq1=strcat(bin_msq1,[/font][/size][/size][/font][FONT=Monospaced][SIZE=2][COLOR=#a020f0][FONT=Monospaced][SIZE=2][COLOR=#a020f0][FONT=Monospaced][SIZE=2][COLOR=#a020f0]'0'[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2]);[/size][/font]
[/size][/font][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff]else[/color][/size][/font]
[/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2][COLOR=#000000]bin_msq1=strcat(bin_msq1,[/color][/size][/font][/size][/font][FONT=Monospaced][SIZE=2][COLOR=#a020f0][FONT=Monospaced][SIZE=2][COLOR=#a020f0][FONT=Monospaced][SIZE=2][COLOR=#a020f0]'1'[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2][COLOR=#000000]);[/color][/size][/font]
[/size][/font][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff]end[/color][/size][/font]
[/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2][COLOR=#000000]count=count+1;[/color][/size][/font]
[/size][/font][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff]end[/color][/size][/font]
[/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff]if[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2][COLOR=#000000] finished ==1[/color][/size][/font]
[/size][/font][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff]break[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2];[/size][/font]
[/size][/font][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff]end[/color][/size][/font]
[/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff]end[/color][/size][/font]
[/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][COLOR=#228b22][FONT=Monospaced][SIZE=2][COLOR=#228b22][FONT=Monospaced][SIZE=2][COLOR=#228b22]%bin_msq1=bin_msq;[/color][/size][/font]
[/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2][COLOR=#000000]final=[/color][/size][/font][/size][/font][FONT=Monospaced][SIZE=2][COLOR=#a020f0][FONT=Monospaced][SIZE=2][COLOR=#a020f0][FONT=Monospaced][SIZE=2][COLOR=#a020f0]''[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2][COLOR=#000000];[/color][/size][/font]
[SIZE=2][FONT=Monospaced]last=msg_size*8[/font][/size]
[/size][/font][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff]for[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2] i=1:8:last-7[/size][/font]
[SIZE=2][FONT=Monospaced]num=bin2dec(bin_msq(i:i+7));[/font][/size]
[SIZE=2][FONT=Monospaced]final=[final char(num)];[/font][/size]
[/size][/font][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff][FONT=Monospaced][SIZE=2][COLOR=#0000ff]end[/color][/size][/font]
[/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][COLOR=#228b22][FONT=Monospaced][SIZE=2][COLOR=#228b22][FONT=Monospaced][SIZE=2][COLOR=#228b22]%%display the final output[/color][/size][/font]
[/color][/size][/font][/color][/size][/font][FONT=Monospaced][SIZE=2][FONT=Monospaced][SIZE=2][COLOR=#000000]disp(final)[/color][/size][/font][/size][/font]