Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
初级会员
注册日期: 2009-03-02
年龄: 37
帖子: 8
声望力: 0 ![]() |
![]()
主程序
function [count,msg,result]=hidedctadv(image,imagegoal,msg,key,alpha) frr=fopen(msg,'r'); [msg,count]=fread(frr,'ubit1'); fclose(frr); data0=imread(image); data0=double(data0)/255; data=data0(:,:,1); T=dctmtx(8); DCTrgb=blkproc(data,[8 8],'P1*x*P2',T,T'); [row,col]=size(DCTrgb); row=ceil(row/8); col=ceil(col/8); a=zeros([row,col]); [k1,k2]=randinterval(a,count,key); for i=1:count k1(1,i)=(k1(1,i)-1)*8+1; k2(1,i)=(k2(1,i)-1)*8+1; end temp=0; for i=1:count if msg(i,1)==0 if DCTrgb(k1(i)+4,k2(i)+1) > DCTrgb(k1(i)+3,k2(i)+2) 提示这一行出错 temp=DCTrgb(k1(i)+4,k2(i)+1); DCTrgb(k1(i)+4,k2(i)+1)=DCTrgb(k1(i)+3,k2(i)+2); DCTrgb(k1(i)+3,k2(i)+2)=temp; end else if DCTrgb(k1(i)+4,k2(i)+1) < DCTrgb(k1(i)+3,k2(i)+2) temp=DCTrgb(k1(i)+4,k2(i)+1); DCTrgb(k1(i)+4,k2(i)+1)=DCTrgb(k1(i)+3,k2(i)+2); DCTrgb(k1(i)+3,k2(i)+2)=temp; end end if DCTrgb(k1(i)+4,k2(i)+1)>DCTrgb(k1(i)+3,k2(i)+2) DCTrgb(k1(i)+3,k2(i)+2)=DCTrgb(k1(i)+3,k2(i)+2)-alpha; else DCTrgb(k1(i)+4,k2(i)+1)=DCTrgb(k1(i)+4,k2(i)+1)-alpha; end end DCTrgb1=DCTrgb; data=blkproc(DCTrgb,[8 8],'P1*x*P2',T',T); result=data0; result(:,:,1)=data; imwrite(result,imagegoal); 下面是调用的randinterval程序 function [row,col] = randinterval(matrix,count,key) % 计算间隔的位数 [m,n] = size(matrix); interval1 = floor(m * n/count)+1; interval2 = interval1 - 2; if interval2 == 0 error('载体太小不能将秘密信息隐藏进去!'); end % 生成随机序列 rand('seed',key); a = rand(1,count); % row = zeros([1 count]); col = zeros([1 count]); % 计算row 和 col r=1; c=1; row(1,1)=r; col(1,1)=c; for i=2:count if a(i)>=0.5 c=c+interval1; else c=c+interval2; end if c>n r=r+1; if r>m error('载体太小不能将秘密信息隐藏进去!'); end c=mod(c,n); if c==0 c=1; end end row(1,i)=r; col(1,i)=c; end 主程序运行时产生的错误: ??? Subscript indices must either be real positive integers or logicals. Error in ==> F:\melody\hidedctadv.m On line 22 ==> if DCTrgb(k1(i)+4,k2(i)+1) > DCTrgb(k1(i)+3,k2(i)+2) 请问上面的程序具体是错在哪个位置啊,万分感谢! |
![]() |
![]() |
![]() |
#2 |
初级会员
注册日期: 2009-03-02
年龄: 37
帖子: 8
声望力: 0 ![]() |
![]()
请大家帮帮忙,这个程序主要是DCT空域下隐藏信息.
|
![]() |
![]() |
![]() |
#3 |
初级会员
注册日期: 2009-03-02
年龄: 37
帖子: 8
声望力: 0 ![]() |
![]()
请各位大虾帮帮小第,完分感激!
|
![]() |
![]() |
![]() |
#4 |
初级会员
注册日期: 2009-03-02
年龄: 37
帖子: 8
声望力: 0 ![]() |
![]()
请问这个程序问题到底出在哪里呢
|
![]() |
![]() |