⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hide_dct.m

📁 函数用于DCT的信息隐藏,在变换域嵌入隐藏的信息
💻 M
字号:
%函数用于DCT的信息隐藏
function hide_DCT()
alpha=0.5;%alpha是控制量,用来保证编码的正确性
xianshi='请打开载体文件'
foutain=uigetfile(); 
xianshi='请打开隐藏信息所在的文件'
info=uigetfile();
key=input(' 请输入密码:');
fid=fopen(info);
[msg,count]=fread(fid,'ubit1');
data0=imread(foutain);
data0=double(data0)/255;
data=data0(:,:,1);
T=dctmtx(8);
DCTrgb=blkproc(data,[8,8],'P1*x*P2',T,T');
[row,col]=size(DCTrgb);
x=floor(row/8);
y=floor(col/8);
a=zeros([x y]);
[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,'ste_image_0.5.jpg');



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -