MATLAB函数问题

functiondct_hide(info,foutain,output,key,alpha)%foutain是载体%info是待隐藏信息所在的文件%output输出隐藏... function dct_hide(info,foutain,output,key,alpha)
%foutain是载体
%info是待隐藏信息所在的文件
%output输出隐藏后的混合文件
%key是生成随即序列的关键字
image=imread('monkey.jpg');
imagegoal=imread('1.jpg');
msg=textread('1.txt');
cover=imread(foutain);
fid=fopen(info);
[m,n]=fread(fid,'ubit1');
%判断载体是否足够
if (n/8*9)>(32*32)
fclose(fid);
error('嵌入信息量过大.');
end
cover=imread(foutain);
s_cover=cover;
s_cover=double(s_cover)/255;

%对图像做分块DCT%
T=dctmtx(8);
dctg=blkproc(s_cover,[8,8],'P1*x*P2',T,T');

%用key初始化并生成随即序列
rand('state',key);
randno=randperm(32*32);
%隐藏算法
for i=1:(n/8)
correct=0;
for j=1:8
%获取随即序列中的某一个值
value=randno((i-1)*8+j)-1;
row=floor(value/32)*8+1;
col=mod(value,32)*8+1;
if m((i-1)*8+j,1)==0
if dctg(row+4,col+1)>dctg(row+3,col+2)
%调整两个系数的相对大小%
temp=dctg(row+4,col+1);
dctg(row+4,col+1)=dctg(row+3,col+2);
dctg(row+3,col+2)=temp;
end
else
correct=correct+1;
if dctg(row+4,col+1)<dctg(row+3,col+2)
%调整两个系数的相对大小%
temp=dctg(row+4,col+1);
dctg(row+4,col+1)=dctg(row+3,col+2);
dctg(row+3,col+2)=temp;
end
end
if dctg(row+4,col+1)>dctg(row+3,col+2)
dctg(row+3,col+2)=dctg(row+3,col+2)-alpha;
else
dctg(row+4,col+1)=dctg(row+4,col+1)-alpha;
end
end
correct=mod(correct,2);
value=randno(32*32-i+1)-1;
row=floor(value/32)*8+1;
col=mod(value,32)*8+1;
if correct==0
if dctg(row+4,col+1)>dctg(row+3,col+2)
%调整两个系数的相对大小%
temp=dctg(row+4,col+1);
dctg(row+4,col+1)=dctg(row+3,col+2);
dctg(row+3,col+2)=temp;
end
else
if dctg(row+4,col+1)<dctg(row+3,col+2)
%调整两个系数的相对大小%
temp=dctg(row+4,col+1);
dctg(row+4,col+1)=dctg(row+3,col+2);
dctg(row+3,col+2)=temp;
end
end
if dctg(row+4,col+1)>dctg(row+3,col+2)
dctg(row+3,col+2)=dctg(row+3,col+2)-alpha;
else
dctg(row+4,col+1)=dctg(row+4,col+1)-alpha;
end
end

%信息写回保存%
s_cover=blkproc(dctg,[8 8],'P1*x*P2',T',T);
imwrite(s_cover,output,'bmp');
result=imread(output);

subplot(121),imshow(cover),title('原图像');
subplot(122),imshow(result),title('隐藏信息后的图像');

运行函数后出现如下的错误
??? Input argument "foutain" is undefined.

Error in ==> dct_hide at 9
cover=imread(foutain);
请问FOUTAIN该如何定义啊?错误该如何纠正?
图片如下:
展开
 我来答
greatdju
2009-01-30 · TA获得超过2.2万个赞
知道大有可为答主
回答量:2486
采纳率:50%
帮助的人:4202万
展开全部
下面这3句话不需要,先打上%,就是你函数里最上面的3句

% image=imread('monkey.jpg');
% imagegoal=imread('1.jpg');
% msg=textread('1.txt');

保存好后在command window里输入下面语句,这是一个例子,图片matlab里都自带

fid=fopen('test.dat', 'wb');
fwrite(fid,magic(5), 'integer*4');
fclose(fid);
dct_hide('test.dat','liftingbody.png','test.png',1,.2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式