




kok电子竞技权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
kok电子竞技:文档简介
1、精选优质文档-倾情为你奉上实验四 基于DCT域的信息隐藏算法一、 实验目的该实验为验证性实验。目的是通过实验使学生掌握经典信息隐藏算法,在Matlab环境下,编写基于图像DCT域的信息隐藏算法程序。用Matlab函数实现DCT域的信息隐藏及提。⒔蟹治。二、 实验要求1、实验前要做好充分准备,包括:复习实验所涉及的知识点,掌握Matlab编程语言和调试环境。2、实验时注意记录实验过程中产生的数据、出现的问题及解决问题的方法。3、理论联系实际,认真分析实验结果,回答思考题。4、实验后完成实验kok电子竞技(含相关截图,并附打印的程序清单)。三、 实验环境计算机(安装Visual C+ 6.0和Matl
2、ab 6.5以上kok电子竞技本)四、 实验原理隐秘算法核心是将我们选取的像素点的最不重要位依次替换成秘密信息,以达到信息隐秘的目的。在DCT域隐藏的信息处于图像的显著区域,比在时域嵌入信息更具有鲁棒性。五、 实验内容与步骤(1) 完善程序实现在DCT域对隐秘消息的嵌入。%文件名:hidedctadv.m%函数功能:本函数用于DCT域的信息隐藏%输入格式举例:count,msg,data=hidedctadv('lenna.jpg','1.jpg','1.txt',1982,1);%参数说明:%image为载体图象%imagegoal为藏有秘密信息的载体,即
3、隐秘载体%msg为待隐藏的信息%key为密钥,用来控制随机选块%alpha为控制量,用来保证编码的正确性%count为待隐藏信息的长度%result为隐藏结果function count,msg,result=hidedctadv(image,imagegoal,msg,key,alpha)%按位读取秘密信息frr=fopen('1.txt','r');msg,count=fread(frr,'ubit1');fclose(frr);data0=imread('lena.jpg');%将图象矩阵转为double型data0=dou
4、ble(data0)/255;%取图象的一层做隐藏data=data0(:,:,1);%对图象分块T=dctmtx(8);%对分块图象做DCT变换DCTrgb=blkproc(data,8 8,'P1*x*P2',T,T');DCTrgb0=DCTrgb;%产生随机的块选择,确定图像块的首地址row,col=size(DCTrgb);row=floor(row/8);col=floor(col/8);a=zeros(row col);k1,k2=randinterval(a,count,2001);for i=1:count k1(1,i)=(k1(1,i)-1)*8+
5、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
6、=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)-10;%将原本小的系数调整得更小 else DCTrgb(k1(i)+4,k2(i)+1)=DCTrgb(k1(i)+4,k2(i)+1)-10; end end%信息写
7、回保存 DCTrgb1=DCTrgb; data=blkproc(DCTrgb,8 8,'P1*x*P2',T',T); result=data0; result(:,:,1)=data; imwrite(result,'1.jpg');(2) 比较信息嵌入前后图像的区别。%文件名:compare.m%函数功能:本函数完成显示隐秘前后两幅图像的区别%输入格式举例:F=compare(blenna.bmp,scover.bmp)%参数说明:%original是原始载体图像%hided是隐秘后的图像%F是差值矩阵function F=compare(orig
8、inal,hided)%读取原始载体图像矩阵W=imread('lena.jpg');imshow(W)%W=double(W)/255;%读取隐秘后图像矩阵E=imread('1.jpg');imshow(E)%E=double(E)/255;%将两图像矩阵相减,显示效果%F=E-W;%注意,MATLAB中矩阵相减只支持double型%imshow(mat2gray(F)(3) 改变alpha值,并对所得结果进行比较分析。%文件名:hidedctadv.m%函数功能:本函数用于DCT域的信息隐藏%输入格式举例:count,msg,data=hidedctadv
9、('lenna.jpg','1.jpg','1.txt',1982,1);%参数说明:%image为载体图象%imagegoal为藏有秘密信息的载体,即隐秘载体%msg为待隐藏的信息%key为密钥,用来控制随机选块%alpha为控制量,用来保证编码的正确性%count为待隐藏信息的长度%result为隐藏结果function count,msg,result=hidedctadv(image,imagegoal,msg,key,alpha)%按位读取秘密信息frr=fopen('1.txt','r');msg,co
10、unt=fread(frr,'ubit1');fclose(frr);data0=imread('lena.jpg');%将图象矩阵转为double型data0=double(data0)/255;%取图象的一层做隐藏data=data0(:,:,1);%对图象分块T=dctmtx(8);%对分块图象做DCT变换DCTrgb=blkproc(data,8 8,'P1*x*P2',T,T');DCTrgb0=DCTrgb;%产生随机的块选择,确定图像块的首地址row,col=size(DCTrgb);row=floor(row/8);col
11、=floor(col/8);a=zeros(row col);k1,k2=randinterval(a,count,2001);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
12、); 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
13、(i)+3,k2(i)+2)-0.1;%将原本小的系数调整得更小 else DCTrgb(k1(i)+4,k2(i)+1)=DCTrgb(k1(i)+4,k2(i)+1)-0.1; end end%信息写回保存 DCTrgb1=DCTrgb; data=blkproc(DCTrgb,8 8,'P1*x*P2',T',T); result=data0; result(:,:,1)=data; imwrite(result,'2.jpg');六、 实验小结通过实验,我掌握了经典信息隐藏算法,即在Matlab环境下,编写基于图像DCT域的信息隐藏算法程序。用Matlab函数实现DCT域的信息隐藏及提。⒔蟹治。通过该次试验,我更熟悉了经典信息隐藏的算法,更能熟练的运用了。专心-专注-专业
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
kok电子竞技:最新文档
- 燃料整改kok电子竞技范文
- 请求赞助kok电子竞技范文
- 浙江国企招聘2024温州市国有资本投资运营有限公司招聘3人笔试参考题库附带答案详解
- 二零二五年度独立财务顾问代理记账免责条款
- 二零二五年度股权激励与股东利益共享协议
- 二零二五年度药房药品质量管理员聘用合同
- 二零二五年度铝合金门窗工程绿色施工与材料供应合同
- 2025年茶山茶叶品牌授权合作承包协议
- 2025年度集体合同签订前的准备工作规范
- 2025年度物流企业货车司机劳动争议处理与仲裁协议
- 早产临床防治指南(2024kok电子竞技)解读
- 司马迁与《史记·管晏列传》
- 全国身份证前六位、区号、邮编-编码大全
- 艾草种植基地合同(2篇)
- 幼儿园小班音乐游戏《听声学走》课件
- 《公债经济学》课程教学大纲
- 《产后出血预防与处理指南(2023)》解读课件
- 趣味语文课程设计
- 外研kok电子竞技(2019)必修 第一册Unit 1 A New Start revision 课件
- 肺部感染临床路径
- 高中英语3500词(乱序kok电子竞技)
评论
0/150
提交评论