谁能帮我编译一下这个matlab程序啊,急急!!谢谢

来源:百度知道 编辑:UC知道 时间:2024/07/02 15:53:26
这是一个DCT盲水印的matlab程序,在网上找了份,实在编不出来,那位大侠帮我看看这个程序啊,我怎么反复都编译不成功啊。后天就要交论文了,急急急!!谢谢!
function [n]=embed(I,W)
%This function embed watermark using DCT.

fid=fopen('ycxx.bmp');
W=fread(fid);

blocksize=8;
k=20;
%[W1,key]=arnold(W,64,20);

Mm=size(W,1);
Nm=size(W,2);
n=Mm*Nm;
W1=reshape(W,1,n);
fad=fopen('south.bmp');
I=fread(fad);

cover_object=double(I);
Mc=size(cover_object,1);
Nc=size(cover_object,2);
c=Mc/8;d=Nc/8;m=c*d;

x=1;
y=1;
for(kk=1:m)
dct_block=dct2(cover_object(y:y+blocksize-1,x:x+blocksize-1));
if(kk<=n)
if(W1(1,kk)==0)
if(dct_block(3,4)>-k)
dct_block(3,4)=-k;
end
else
if(dct_block(3,4)<k)
dct_block(3,4)=k;
end
end
end
watermarked_image(y:y+blocksize-1,x:x+blocksize-1)

W=imread('ycxx.bmp');

blocksize=8;
k=20;
%[W1,key]=arnold(W,64,20);

Mm=size(W,1);
Nm=size(W,2);
n=Mm*Nm;
W1=reshape(W,1,n);

I=imread('south.bmp');

cover_object=double(I);
Mc=size(cover_object,1);
Nc=size(cover_object,2);
c=Mc/8;d=Nc/8;m=c*d;

x=1;
y=1;
for(kk=1:m)
dct_block=dct2(cover_object(y:y+blocksize-1,x:x+blocksize-1));
if(kk<=n)
if(W1(1,kk)==0)
if(dct_block(3,4)>-k)
dct_block(3,4)=-k;
end
else
if(dct_block(3,4)<k)
dct_block(3,4)=k;
end
end
end
watermarked_image(y:y+blocksize-1,x:x+blocksize-1)=idct2(dct_block);
if(x+blocksize)>=Nc
x=1;y=y+blocksize;
else
x=x+blocksize;
end
end
watermarked_image_int=uint8(watermarked_image);
imwrite(watermarked_image_int,'11.bmp','bmp');
xsz=255*255*Mc*N