信息隐藏 实验四 二值图像信息隐藏

合集下载

信息隐藏算法实验报告

信息隐藏算法实验报告

一、实验背景信息隐藏技术是一种在传输或存储过程中将隐秘信息隐藏在特定载体中,以保证隐秘信息安全性的技术。

随着信息技术的不断发展,信息隐藏技术在军事、通信、网络安全等领域具有广泛的应用前景。

本实验旨在验证信息隐藏算法在文本信息隐藏中的应用效果,并分析不同算法的性能差异。

二、实验目的1. 了解信息隐藏技术的基本原理和常用算法。

2. 比较不同信息隐藏算法在文本信息隐藏中的应用效果。

3. 分析影响信息隐藏算法性能的因素。

三、实验内容本实验选用以下三种信息隐藏算法进行文本信息隐藏:1. 基于双文本段的信息隐藏算法2. 基于矢量字库的文本信息隐藏算法3. 基于宋词生成的大容量构造式信息隐藏算法实验步骤如下:1. 选择合适的文本作为载体,包括原文和待隐藏信息。

2. 分别采用三种算法对载体文本进行信息隐藏。

3. 对隐藏后的文本进行提取,并计算提取成功率。

4. 分析不同算法的性能差异,包括提取成功率、隐蔽性和安全性。

四、实验结果与分析1. 基于双文本段的信息隐藏算法该算法通过在多种隐形式中选择适当的隐藏形式和信息分散存储,大大提高信息隐藏的隐蔽性、安全性。

实验结果显示,该算法的提取成功率较高,隐蔽性和安全性较好。

2. 基于矢量字库的文本信息隐藏算法该算法利用汉字的二维象形性和人眼视觉冗余特性,通过修改汉字字库的矢量数据来实现信息隐藏。

实验结果显示,该算法的提取成功率较高,隐蔽性和安全性较好,同时具有较大的嵌入空间。

3. 基于宋词生成的大容量构造式信息隐藏算法该算法基于宋词生成模型,通过符号集设计、编码等综合作用,生成宋词诗句来实现信息隐藏。

实验结果显示,该算法的提取成功率较高,隐蔽性和安全性较好,且生成的宋词文本的信息隐藏容量较大。

综合分析三种算法的性能,可以得出以下结论:1. 基于双文本段的信息隐藏算法和基于矢量字库的文本信息隐藏算法在提取成功率、隐蔽性和安全性方面表现较好。

2. 基于宋词生成的大容量构造式信息隐藏算法在信息隐藏容量方面具有优势。

二值文本图像信息隐藏分析_孟妍妍

二值文本图像信息隐藏分析_孟妍妍

为常用的(10, 11,…, 16),行间距为固定值(12, 13,…, 20)。对
∀I ∈ E1 利用本文§2 的嵌入算法对 I 嵌入信息得到 I * 。最大
嵌入量为 5 627 bit,最小嵌入量为 173 bit,平均嵌入量
1 809.1 bit。所有的 I * 形成图像库 E1* , E1' = E1∪ E1* 。对 E1'
像大小从 540×540 到 900×900,字体大小为常用的(10, 11,…,
16),行间距为固定值(12, 13,…, 20)。对 ∀I ∈ E2 利用本文§2
的嵌入算法对 I 嵌入信息得到 I* 。最大嵌入量为 8 465 bit,
最小嵌入量为 144 bit,平均嵌入量 1 561.8 bit。所有的 I* 形
(西北大学信息科学与技术学院,西安 710127)
摘 要:通过大量实验发现,基于块中心跳转的二值文本图像密写算法,其二值文本干净图像和密写图像的游程统计特性差别较大,而二 值文本密写图像和二次密写图像的游程统计特性差别较小。基于该规律提出一种二值文本图像信息隐藏分析方法,对待测图像进行二次密 写,计算待测图像和密写图像游程统计函数的差异值,当差异值大于门限时,待测图像是干净图像,否则是密写图像。通过分类实验的方 法确定了几种典型字体的判决门限。实验结果表明,利用该方法和相关判决门限,密写检测率可达 99.9%。 关键词:信息隐藏分析;游程统计;二值文本图像
(5)
k =1
其中, f (k) 和 f *(k) 分别为图像 F 和 F* 的游程统计函数。
对图像中嵌入信息相当于对图像引入了噪声,对图像的
游程统计规律必然会产生影响。
通过对 3 923 幅二值文本图像实验分析发现无论对于英

工作报告之信息隐藏实验报告

工作报告之信息隐藏实验报告

信息隐藏实验报告【篇一:合肥工业大学信息隐藏实验报告完整代码版】计算机与信息学院专业班级学生姓名及学号课程教学班号任课教师实验指导教师实验地点20~20学年第学期实验1 bmp位图信息隐藏一、实验目的学习bmp格式文件,并编程实现对位图文件信息隐藏二、实验要求将txt文件嵌入bmp 文件中三、问题描述1、bmp位图文件的格式?2、有哪几种方法隐藏信息,分别采用什么样的数据结构3、随机选取如何避免“碰撞”的出现四、算法思想1、bmp位图文件格式0000h~0001h 2字节 -------------------------bm的asc码0002h~0005h 4字节 -------------------------文件大小102718字节0006h~0009h 4字节 -------------------------全为0000ah~000dh 4字节 -------------------------偏移量 118字节000eh~0011h 4字节 -------------------------位图信息块大小40字节 0012h~0015h 4字节 -------------------------宽 4500016h~0019h 4字节 -------------------------高 450001ah~001bh 2字节 -------------------------恒为01h 00h001ch~001dh 2字节 -------------------------颜色所占二进制位数值04h 00h=4 16色位图001eh~0021h 4字节 -------------------------压缩方式=0无压缩0022h~0025h 4字节 -------------------------图像数据区大小 102600字节0026h~0029h 4字节 -------------------------水平每米多少像素 39个 002ah~002dh 4字节 -------------------------垂直每米多少像素 39个 002eh~0031h 4字节 -------------------------图像所用颜色数=00032h~0035h 4字节 -------------------------重要颜色数=00036h~0076h 64字节 -------------------------颜色表0077h~1913dh 102600字节 -------------------------图像数据区2、(1)、在图片图像数据区的一个连续的数据区采用整字节替换的方法(2)、在图像数据的最后增加文本信息的字节(3)、顺序选取每个文本信息字节的每一位替换图像数据区的一个连续的数据区每个字节的最后一位。

信息隐藏实验报告-信息隐藏技术

信息隐藏实验报告-信息隐藏技术

实验目的隐写分析以及变换域隐写技术实验内容针对LSB隐写的卡方分析a)实现针对LSB隐写的卡方分析b)分析实验性能针对LSB隐写的RS分析a)实现针对LSB隐写的RS分析b)分析实验性能JPEG压缩算法a)分析JPEG压缩算法的主要流程Jsteg隐写算法a)实现Jsteg隐写算法b)分析实验性能F3隐写算法a)实现F3隐写算法b)分析实验性能实验工具及平台■Windows+Matlab□其它:(请注明)实验涉及到的相关算法1、与实验内容选择的项目对应;2、请使用流程图、伪代码、NS 图或文字方式描述,不要..贴代码 卡方隐写分析卡方隐写分析主要利用了LSB 隐写后图像的值对效应。

它需要LSB 隐写满足如下的条件:1. 嵌入信息中0、1的分布较为均匀,即各为50%左右。

由于信息嵌入到载体之前通常需要经过加密操作,因此这一点是容易满足的。

2. 图像需要有较多的像素点被嵌入信息。

当嵌入信息较少时,卡方分析的效果并不精确。

卡方分析的原理是:若设ℎj 表示图像载体中灰度值为j 的像素数量,如果载体图像没有使用LSB 隐写算法,那么ℎ2i 和ℎ2i+1的值通常相差较大,而LSB 隐写方法将秘密信息取代图像的最低位,由于秘密信息通常是加密过的,因此可以看成0、1分布均匀的比特流。

在嵌入过程中只存在2i →2i +1而不存在2i →2i −1的变换,因此使得ℎ2i 和ℎ2i+1的值趋于一致,我们能够借助改变的统计特性判断图像是否经过隐写。

我们首先定义ℎ2i ∗=ℎ2i +ℎ2i+12,由LSB 隐写算法的性质我们可以知道在嵌入前后该值是不变的。

由中心极限定理,我们有ℎ2i −ℎ2i+1√(2ℎ2i ∗)→N(0,1) 因此r = ∑(ℎ2i −ℎ2i ∗)2ℎ2i ∗k i=1服从卡方分布。

结合卡方分布的密度计算函数我们可以计算出载体被隐写的可能性为:p =1−12k−12T(k −12)∫exp (−t 2)t k−12−1dt r0 当p 的值接近于1时,我们可以推断出载体图像中含有秘密信息。

信息隐藏(图像处理)实验报告

信息隐藏(图像处理)实验报告

信息隐藏(图像处理)实验报告
实验一、图像输入与输出
实验目的:
学习在MATLAB环境下对图像文件的I/O操作。

实验要求:
1.在Matlab环境下读入一幅.jpg格式的灰度图像并显示该图像;
2.显示多幅图像。

读入四幅灰度图像,并用两排显示。

实验结果:
实验二、直方图处理 实验目的:
获取图像的直方图,并利用直方图均衡化进行图像增强。

实验要求:
1.在Matlab 环境下读入.jpg 格式的灰度图像,分别显示该图像的直方图以及归一化直方图;
2.进行直方图均衡化。

显示均衡化后的图像,以及该图像的直方图。

实验结果:
原图 直方图
归一化直方图直方图均衡化后的结果图像
直方图均衡化后的结果图像的直方图
实验三、使用DCT进行变换编码
实验目的:
了解图像压缩中常用的DCT变换。

实验要求:
1.在Matlab环境下显示4x4的DCT基函数图像;
2.读入.jpg格式的灰度图像,对该图像进行8x8的DCT变换,将得到的系数的50%截去,再对截去的系数阵列进行逆变换得到重构图像,以图像形式显示重构图像和原始图像的误差。

实验结果
原图 4x4的DCT基函数图像
重构图像重构误差图像
实验四、图像加密
实验目的:
了解基于置乱的图像加密方法。

实验要求:
1.读入.bmp格式的灰度图像,编程实现基于Arnold变换的图像置乱加密算法。

实验结果:
原图置乱1次
置乱2次置乱3次
置乱4次置乱5次
置乱6次置乱96次。

信息隐藏技术_实验报告(3篇)

信息隐藏技术_实验报告(3篇)

第1篇一、实验目的1. 了解信息隐藏技术的基本原理和实现方法。

2. 掌握信息隐藏技术在图像、音频和视频等数字媒体中的应用。

3. 通过实验验证信息隐藏技术的有效性和安全性。

二、实验环境1. 操作系统:Windows 102. 编程语言:Python3. 库:OpenCV、scikit-image、numpy、matplotlib三、实验内容1. 图像信息隐藏2. 音频信息隐藏3. 视频信息隐藏四、实验步骤1. 图像信息隐藏(1)选择一幅图像作为宿主图像,并选择一幅图像作为水印图像。

(2)将水印图像转换为二值图像。

(3)对宿主图像进行分块处理,将每个块转换为二值图像。

(4)根据密钥对水印图像进行置乱,提高安全性。

(5)将置乱后的水印图像嵌入到宿主图像的对应块中。

(6)提取水印图像,并与原始水印图像进行对比。

2. 音频信息隐藏(1)选择一段音频作为宿主音频,并选择一段音频作为水印音频。

(2)对宿主音频和水印音频进行分帧处理。

(3)根据密钥对水印音频进行置乱,提高安全性。

(4)将置乱后的水印音频嵌入到宿主音频的对应帧中。

(5)提取水印音频,并与原始水印音频进行对比。

3. 视频信息隐藏(1)选择一段视频作为宿主视频,并选择一段视频作为水印视频。

(2)对宿主视频和水印视频进行帧提取。

(3)根据密钥对水印视频进行置乱,提高安全性。

(4)将置乱后的水印视频嵌入到宿主视频的对应帧中。

(5)提取水印视频,并与原始水印视频进行对比。

五、实验结果与分析1. 图像信息隐藏实验结果表明,嵌入水印后的图像与原始图像在视觉效果上几乎没有差异,水印的嵌入效果良好。

同时,提取的水印图像与原始水印图像完全一致,证明了信息隐藏技术的有效性。

2. 音频信息隐藏实验结果表明,嵌入水印后的音频与原始音频在音质上几乎没有差异,水印的嵌入效果良好。

同时,提取的水印音频与原始水印音频完全一致,证明了信息隐藏技术的有效性。

3. 视频信息隐藏实验结果表明,嵌入水印后的视频与原始视频在视觉效果上几乎没有差异,水印的嵌入效果良好。

LSB图像信息隐藏实验

LSB图像信息隐藏实验

学号:姓名:专业年级班级:实验室:组别:实验日期:课程名称保密技术实验实验课时实验项目名称和序号1.LSB图像信息隐藏实验同组者姓名实验目的1. 掌握对图像的基本操作。

2. 能够用 LSB 算法对图像进行信息隐藏3. 能够用 LSB 提取算法提取隐藏进图像的信息4. 能够反映 jpeg 压缩率与误码率之间的关系实验环境Windows+matlab实验内容和原理1.用 MATLAB 函数实现 LSB 信息隐藏和提取2.分析了 LSB 算法的抗攻击能力3.能随机选择嵌入位(考虑安全性因素)实验步骤方法关键代码实验算法 1:LSB 嵌入1.读取一副 256*256 大小的图片,判断是否为 RGB 图像。

若为 RGB 图像,则读取图像的一层信息(如 R 层)。

通过读取图像的尺寸大小来判断是否为RGB图像。

RGB图像是三维多彩图,size有3个参数,最小参数是3,只要判断读取到的图像大小大于2,就确定读入的是RBG图像2.以二进制形式读取要嵌入到图片里的消息。

并读取消息的长度(嵌入消息的长度不能超过图像位数)。

3.产生与消息长度一致的一串随机数(不能相同)。

自定义一个randinterval函数来实现伪随机数的生成产生的伪随机数是代表消息要隐藏的像素位置(行和列的信息)随机数代码:function [row,col]=randinterval(matrix,count,key)%randinterval.m%参数说明%matrix是载体矩阵,即要隐藏信息的图层%cout为要嵌入信息的像素数量%key为自定义秘钥,随机种子[m,n] = size(matrix);interval1 = floor(m * n/(count+eps)) + 1;interval2 = interval1 - 2;if interval2 == 0error('载体太小不能把秘密信息隐藏进去');endrand('seed',key);a = rand(1, count);row = zeros([1 count]);col = zeros([1 count]);r = 1;c = 1;row(1,1) = r;col(1,1) = c;for i =2:countif a(i) >= 0.5c = c + interval1;elsec = c + interval2;endif c > nr = r + 1;if r > merror('载体太小不能把秘密信息隐藏进去');endc = mod(c, n);if c == 0c = 1;endendrow(1, i) = r;col(1, i) = c;end4.按照产生的随机数的序列依次将图片层的最后一位改为消息的信息。

一种新的二值图像信息隐藏方法

一种新的二值图像信息隐藏方法
博士点基金资助项目20020288025江苏省自然科学基金资助项目bk2001054在现实生活中有许许多多的信息需要实施安全保护通常人们采用密码术对敏感信息进行保护由于密码术是利用随机性对抗密码分析的而密文的随机性同时也暴露了消息的重要性容易引起密码分析员的注意和攻击信息隐藏技术12是将敏感信息嵌入到普通的公开信息中如数字相片广告图片古典音乐等进行传输隐蔽了敏感信息的存在从而不易引起攻击者的注意保证了信息安全因此对信息隐藏技术的研究受到了人们的日益重视随着数字扫描仪和数码相机等产品的日益普及和大量数字数据存储介质的价格越来越低廉数字图像的用途也变得日益广泛实际数字图像的使用范围已经涵盖了艺术珍品电子图书银行支票工程图纸医学图像等许多方面根据各自不同的用途所有这些数据都需要一种可靠的方法进行版权保护拷贝控制完整性认证匿名处理等另外由于数字图像的普及性以及在图像数据中含有大量的冗余信息所以数字图像成为人们进行隐秘通信的首选隐秘载体为此目的目前已经提出了一系列的数字水印和信息隐藏技术但这些主要都是针对彩色图像和灰度图像的因为对这类图像的某些像素的灰度值或颜色值进行微小的修改不会引起视觉可以察知的失真例如给定一幅彩色图像一种简单的信息隐藏方法是替换每个像素的最不重要位由于这种方法不会使图像质量有明显的下降所以许多实用的软件包都采用了最不重要位替换技术一种目前研究得较少但非常重要的内容是在二值图像中隐藏信息的问题
显然, 可以得到下述结论: 在每个可用块中, 只要任意修改一个像素, 即可实现奇块与偶块的转换 ! 在下一小节, 我们通过嵌入信息与奇偶块的对应关系进行信息隐藏 ! $&" 信息嵌入与提取过程 设原始图像为大小是 " ! " " # 的二值图像, 记为 $ %( &’( ) 其中 &’( 表示像素值, ,’ % &’( !{ %, $} "! ""# , …, …, ,, % $, …, $, ", " !, ( % $, ", " # ) 嵌入的信息序列为 * 位二进制序列: + % + $ + " … +* , +, !{ %, $} ", * ) 信息嵌入按以下几步进行: $)图像分块 ) 将二值图像 $ 顺序分割成 !# 个 " " " 的互不相交的图像块 -./ &’, &’, ( ( 0$ …, …, -./ % ’ % " . 1 $;( % " / 1 $;. % $, ", ! ;/ % $, ", # &’ 0 $, &’ 0 $, ( ( 0$ 对所有的图像块 -./ , …, …, 选择出全部 ")选取可用块 ) 根据定义 $, . % $, ", ! ,/ % $, ", # 进行检查, 可用块, 组成可用块集合 …, - * % {-./ $ " &’ , ’ % " . 1 $, ( % " / 1 $, . % $, ", !, / % $, ( 0 &’, ( 0 $ 0 & ’ 0 $, ( 0 & ’ 0 $, ( 0 $ " +,
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验四二值图像信息隐藏
一、实验目的
了解二值图像的特点,掌握基于二值图像的信息隐藏原理,读懂两种基于二值图像的信息隐藏方法,并自己设计另一种二值信息隐藏的方法。

二,实验环境
(1)Windows XP操作系统;
(2)MATLAB 7.2版本软件;
(3)二值图像文件。

三、实验原理
二值图像又称为单色图像或黑白图像,一般用1或0表示黑色或白色像素点,利用二值图像信息隐藏的方法主要是根据图像中黑白像素数量的比较来隐藏信息。

方法一:把一个二值图像分成一系列矩形图像区域B,某个图像区域B中黑色像素的个数大于一半,则表示嵌入0;如果白色像素的个数大于一半,则表示嵌入1。

但是当需要嵌入的比特与所选区域的黑白像素的比例不一致时,为了达到希望的像素关系,则需要修改一些像素的颜色。

方法二:采用游程编码方法在二值图像中隐藏信息。

秘密信息嵌入时修改二值图像的游程长度,如果秘密信息位是0,则修改该游程长度为偶数;如果为1,则修改游程长度为奇数;如果秘密信息的取值与游程长度的奇偶性相匹配,则不改变游程长度。

方法三:将二值图像分块,使用一个与图像块大小相同的密钥二值图像块,与每一个图像块按像素进行“与”运算,“与”运算的结果可以确定是否在该块中嵌入数据,或嵌入怎样的数据。

四,实验步骤
下面以方法三为原理,进行实验。

1.嵌入秘密信息
主要思想:首先将载体图像分块,块数为秘密信息的二进制码个数,分块大小为载体图像的长和宽分别除以块数;设定一个与图像块大小相同的密钥二值图
像块,具体为一个8×8的数组,其中前4行全为1,后4行全为0;将载体图像块与密钥二值图像块进行“与”运算。

经过运算后,参与统计的像素变为前4行。

接下来统计“有效”像素黑白的个数,某个图像区域B中黑色像素的个数大于“有效”像素一半,则表示嵌入0;如果白色像素的个数大于“有效”像素一半,则表示嵌入1。

但是当需要嵌入的比特与所选区域的黑白像素的比例不一致时,为了达到希望的像素关系,则需要修改一些像素的颜色。

Matlab代码如下:
msgfid=fopen('hidden.txt','r');%打开秘密文件
[msg,count]=fread(msgfid);
fclose(msgfid);
msg = str2bit(msg);
msg = msg';
count=count*8;
io=imread('hunter.bmp');%读入载体图像
watermarklen=count;%嵌入水印信息长度,也就是载体图像分块的数量值
[row col]=size(io);
l1=floor(row/watermarklen);%载体图像分块后的长度
l2=floor(col/watermarklen);%载体图像分块后的宽度
pixelcount=l1*l2;%每个分块总像素的数量值
miyue=[ones(6,8);zeros(2,8)];%密钥二值图像块
percent=24;
iw=io;
in=io;%存放与运算后的图像信息
%将原图像块与密钥块进行与运算
m=1;
while m<=watermarklen
i=1;
j=1;
in(i:(i+l1-1),j:(j+l2-1))=io(i:(i+l1-1),j:(j+l2-1)) & miyue;
i=i+8;
j=j+8;
m=m+1;
end
inblack(1,watermarklen)=0;%某一个分块中黑色像素的个数
inwhite(1,watermarklen)=0;%某一个分块中白色像素的个数
n=1;
while n<=watermarklen
for i=l1*(n-1)+1:(l1*n-2) %只计算有效前4行的黑白个数
for j=l2*(n-1)+1:l2*n
if in(i,j)==0
inblack(1,n)=inblack(1,n)+1;%计算每个分块中的黑色像素的个数
else
inwhite(1,n)=inwhite(1,n)+1;%计算每个分块中的白色像素的个数
end
end
end
n=n+1;
end
n=1;
while n<=watermarklen
if msg(n,1)==1 %需要嵌入1
if inblack(1,n)>=percent;
%嵌入1的时候,黑色像素比白色像素多,需要修改一些像素的颜色
modcount(1,n)=inblack(1,n)-percent+1;
k=1;
for i=l1*(n-1)+1:(l1*n-2)
for j=l2*(n-1)+1:l2*n
if (iw(i,j)==0&&k<=modcount(1,n))
iw(i,j)=1;k=k+1;
end
end
end
end
else
if inwhite(1,n)>=percent;
%嵌入0的时候,白色像素比黑色像素多,需要修改一些像素的颜色
modcount(1,n)=inwhite(1,n)-percent+1;
k=1;
for i=l1*(n-1)+1:(l1*n-2)
for j=l2*(n-1)+1:l2*n
if (iw(i,j)==1&&k<=modcount(1,n))
iw(i,j)=0;k=k+1;
end
end
end
end
end
n=n+1;
end
n=1;
iwblack(1,watermarklen)=0;%某一个分块中黑色像素的个数
iwwhite(1,watermarklen)=0;%某一个分块中白色像素的个数
while n<=watermarklen
for i=l1*(n-1)+1:l1*n
for j=l2*(n-1)+1:l2*n
if iw(i,j)==0
iwblack(1,n)=iwblack(1,n)+1;%计算每个分块中的黑色像素的个数
else
iwwhite(1,n)=iwwhite(1,n)+1;%计算每个分块中的白色像素的个数
end
end
end
n=n+1;
end
figure;
imshow('hunter.bmp');
imwrite(iw,'huntermarked.bmp');
figure;
imshow('huntermarked.bmp');得到的结果如下图所示:
这是隐藏前后载体图像变化的比较,可以明显的看出图像经过存储秘密信息的处理后图像发生了很大的变化,即出现了一条间断斜线,这是因为在存储秘密信息时,如果图像块中0/1的比例与密文不一致,则需要改动载体图像的像素(常常不止改变一个像素点),所以对载体图像的影响还是比较明显的。

但是这种使用密钥二值图像块的方法比将整个图像块作为对象的方法效果
稍微好一些,因为在分析和修改0/1个数时数量减少了,对载体图像的影响也稍微减轻了一些。

下面是使用密钥二值图像块和不使用密钥二值图像块的目标载体的比较:
2.提取秘密信息
wi=imread('huntermarked.bmp');%读入载体图像
[row col]=size(wi);
watermarklen=80;%嵌入的水印信息的长度
l1=floor(row/watermarklen);%载体图像分块后的长度
l2=floor(col/watermarklen);%载体图像分块后的宽度
pixelblack(1,watermarklen)=0;%某一个分块中黑色像素的个数
pixelwhite(1,watermarklen)=0;%某一个分块中白色像素的个数
n=1;
while n<=watermarklen
for i=l1*(n-1)+1:l1*n
for j=l2*(n-1)+1:l2*n
if wi(i,j)==0
pixelblack(1,n)=pixelblack(1,n)+1;
%计算每个分块中的黑色像素的个数
else
pixelwhite(1,n)=pixelwhite(1,n)+1;
%计算每个分块中的白色像素的个数
end
end
end
n=n+1;
end
n=1;
while n<=watermarklen
if pixelwhite(1,n)>pixelblack(1,n)
%如果白色像素块多于黑色像素块,秘密信息为1 message(n,1)=1
else
message(n,1)=0
%如果黑色像素块多于白色像素块,秘密信息为0 end
n=n+1;
end
%将提取的秘密信息转换成字符串
out=bit2str(message);
fid=fopen('message.txt', 'wt');
fwrite(fid, out)
fclose(fid);
转换为字符串的结果:
五,实验总结
采用游程编码方式隐藏的信息量较大,而且隐写后的载体图像和原始载体图像从视觉上看差别不大,是一种较好的二值图像信息隐藏方法。

相关文档
最新文档