实验4 基于DCT变换的信息隐藏算法
更新时间:2024-05-29 02:09:01 阅读量: 综合文库 文档下载
- 实验4推荐度:
- 相关推荐
信息隐藏技术 实验报告
实验名称 日期 实验人
一、实验目的
(1)理解频域变换信息隐藏算法的基本思想 (2)理解离散余弦变换技术的基本理论
(3)掌握基于DCT变换信息隐藏的编码和解码过程
实验4 基于DCT变换的信息隐藏算法 2013-05-18 专业班级 学号 11信安1班 二、实验内容
载体图像为24位bmp图像LenaRGB.bmp,嵌入的秘密信息为从屏幕上随机输入的文本信息,要求对载体图像LenaRGB.bmp进行颜色分量分解与离散余弦变换,将秘密信息转换成二进制流并嵌入到载体图像的DCT变换域中,显示原载体图像、需要嵌入的秘密信息及其相应的二进制流、嵌入了秘密信息的伪装载体,提取的秘密信息。(编程语言不限)
三、实验步骤和设计思想
1. 对图片进行DCT变换,DCT以8x8的像块为单位进行,生成的是8x8的DCT系数数据块。
2. 量化:量化过程就是以某个量化步长去除DCT系数,对一个8x8的DCT变换块中的64个DCT变换系数采用不同的量化精度,以保证尽可能多地包含特定的DCT空间频率信息,又使量化精度不超过需要。DCT变换系数中,低频系数对视觉感应的重要性较高,因此分配的量化精度较细;高频系数对视觉感应的重要性较低,分配的量化精度较粗,通常情况下,一个DCT变换块中的大多数高频系数量化后都会变为零。 3. Z型扫描:
DCT变换产生的是一8x8的二维数组,为进行传输,还须将其转换为一维排列方式。有两种二维到一维的转换方式,或称扫描方式:之型扫描(Zig-Zag)和交替扫描,其中之型扫描是最常用的一种。由于经量化后,大多数非零DCT系数集中于8x8二维矩阵的左上角,即低频分量区,之型扫描后,这些非零DCT系数就集中于一维排列数组的前部,后面跟着长串的量化为零的DCT系数; 4. 游程编码:
只有非零系数被编码。一个非零系数的编码由两部分组成:前一部分表示非零系数前的连续零系数的数量(称为游程),后一部分是那个非零系数。这样就把之型扫描的优点体现出来了,因为之型扫描在大多数情况下出现连零的机会比较多,游程编码的效率就比较高。当一维序列中的后部剩余的DCT系数都为零时,只要
用一个“块结束”标志(EOB)来指示,就可结束这一8x8变换块的编码,产生的压缩效果是非常明显的。
四、程序清单
üTD??¢òt2× clc
clear all
%é????×?üD??¢2¢3aoo3è?t????à? M = text2bin(); len = length(M); Mstr = num2str(M);
Mstr = ['é?????±?D??¢??ó|μ??t????à?é?£1'Mstr'\\n']; fprintf(1,Mstr);
%RGB í?????è?2??aó?2??é C = imread('LeanRGB.bmp'); [m, n, d] = size(C); Cr = zeros(m, n); Cg = zeros(m, n); Cb = zeros(m, n);
for i = 1:m
for j = 1:n
Cr(i, j) = C(i, j, 1); Cg(i, j) = C(i, j, 2); Cb(i, j) = C(i, j, 3); end end
I = uint8(Cr); figure; imshow(I);
title('?-?×ì?í???');
I1 = blkproc(I, [8 8], 'dct2'); %????·?8*8í????é?′DD′òdct22?3? ca0 = im2col(I1, [8 8], 'distinct' ); %?×?ó?é3a3èàD üTD??¢òt2×±′á??y3ì for i = 1:len
if (M(i) == 0)
if (ca0(13, i) > ca0(20, i))
üT?μéy(4 1)1í(3 2)£???Ci(4 1) > Ci(3 2)?ò±′á?1 temp = ca0(13, i); ca0(13, i) = ca0(20, i); ca0(20, i) = temp; end else
if (ca0(13, i) < ca0(20, i))
temp = ca0(13, i); ca0(13, i) = ca0(20, i); ca0(20, i) = temp; end end
x = 0.000001;
a = abs(ca0(13, i) - ca0(20, i)); if (a < x)
if (M(i) == 0)
ca0(20, i) = ca0(20, i) + x; else
ca0(13, i) = ca0(13, i) + x; end end
end %μ???Biμ??μ
stegoDCT = col2im(ca0, [8 8], [m n], 'distinct'); stegoing = blkproc(stegoDCT, [8 8], 'idct2'); figure;
imshow(uint8(stegoimg));
title('DCT±?oo′|?í1óμ??±3°?×ì?'); üTD??¢òt2×?aá??y3ì TM =zeros(1, len); for i = 1:len
if ca0(13, i) > ca0(20, i) TM(i) = 1; else
TM(i) = 0; end end
MM = num2str(TM);
MM = ['ìμ??μ??×?üD??¢éò£1'MM'\\n']; fprintf(1, MM);
五、实验调试记录
六、实验结果及其分析
量化后的数据,有一个很大的特点,就是直流分量相对于交流分量来说要大,而且交流分量中含有大量的0。这样,对这个量化后的数据如何来进行简化,从而再更大程度地进行压缩呢。
对于前面量化的系数所作的 “Z”字形编排结果就是:
底部 ?26,?3,0,?3,?3,?6,2,?4,1 ?4,1,1,5,1,2,?1,1,?1,2,0,0,0,0,0,?1,?1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 顶部
838图像块经过 DCT 变换之后得到的 DC 直流系数有两个特点,一是系数的数值比较大,二是相邻838图像块的 DC 系数值变化不大。根据这个特点,JPEG 算法使用了差分脉冲调制编码(DPCM)技术,对相邻图像块之间量化 DC 系数的差值(Delta)进行编码。即充分利用相邻两图像块的特性,来再次简化数据。 即上面的 DC 分量-26,需要单独处理。 而对于其他63个元素采用zig-zag(“Z”字形)行程编码,以增加行程中连续0的个数。
七、实验心得
1、加入水印算法,从简单入手,空间域变换,最低域嵌入水印; 2、需找检测水印是否成功的方法,利用jpeg的算法替代h.264算法; 3、DCT代码,由于是嵌入式,算法尽量设计简单,考虑复杂度;
正在阅读:
实验4 基于DCT变换的信息隐藏算法05-29
动能定理和机械能守恒定律05-01
2014新人教版小学音乐四年级下册教案04-11
华南理工课表03-07
美国政府对营利性高校的管理历史分析01-03
小学食品安全教育主题班会记录04-06
《对子歌》五年级(下)05-26
淘宝购物避免纠纷之电子产品类02-27
第二章 陆地和海洋 - 图文06-01
21、功和机械能复习导学案03-26
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 算法
- 变换
- 隐藏
- 基于
- 实验
- 信息
- DCT
- 《福尔摩斯探案全集》阅读练习题(有答案,内容全)
- 函数项级数一致收敛判定与性质论文
- 神州司法鉴定中心做亲子鉴定最快多久出结果?
- (项目名称)规划方案设计评标方法及评分细则
- 酒店考核体系 - 图文
- 税务文化建设调研
- 异步电动机转子磁链观测方法的比较与研究
- 法律知识规定北京市招标拍卖挂牌出让国有土地使用权暂行
- 第三科目 环境影响评价技术方法(4.27)1
- 中式快餐连锁企业营销对策分析 - 以优米一家为例
- 2015华工网络教育《高级语言程序设计C++》随堂练习附答案
- 衡水市衡水湖的生态环境及可持续发展研究
- 《住宅设计规范》GB50096-2011(DOC)
- 赔偿法3
- 上海市中考英语必备 - 单词及其拓展
- 教学的形式化
- 共产党员先进性教育第二阶段小结
- 博物馆方案范本
- 汽车安全气囊的发展与应用(修改版)
- 解析“民事恶意诉讼”行为构成要件与惩罚性赔偿必要性探析