好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

《物联网信息安全》实验教程.doc

28页
  • 卖家[上传人]:小**
  • 文档编号:58281614
  • 上传时间:2018-10-28
  • 文档格式:DOC
  • 文档大小:1.04MB
  • / 28 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 实验一 图像输入与输出基本操作(2 学时) 实验二 基于 DCT 域的数字水印技术(2 学时) 综合性实验 基于傅立叶域变换的数字水印技术(4 学时) 实验前预备知识:实验前预备知识: 数字水印技术是利用数字产品普遍存在的冗余数据与随机性,将水印信息嵌 入在数字产品本身中,从而起到保护数字产品版权或者完整性的一种技术 现在学术界对数字水印算法的理解都是将一些不易察觉的具有随机特性的数 据嵌入到图像频域或空域的系数上从信号处理的角度看,嵌入水印可以看成是 在强背景下迭加一个弱信号,由于人类视觉系统的分辨率受到一定的限制,只要 迭加的信号幅度不超过 HVS 的对比门限,人眼就无法感觉到信号的存在,所以 可以通过对原始图像进行一定调整,在不影响视觉效果的情况下嵌入一些水印信 息 数字水印系统的一般模型如图 1 所示: 图 1 数字水印系统基本模型 水印嵌入器的输入量有三个:水印信号 M,宿主信号 S 和密钥 K 水印信号 M 是指原始水印(图像或一个数字序列)通过一定的方法经过调制 将嵌入到宿主信号中的数字信号 宿主信号 S 是指被嵌入水印的信号(原始信号) 。

      密钥 K 则指用于提高水印系统安全性的密码信息,它独立于宿主信号密钥 有私有密钥和公共密钥之分,前者指攻击者在明确了水印嵌入方法但又不知道密 钥的情况下,水印不会被破坏或盗取;后者是指攻击者对宿主信号(如内容标识、 语言字幕等)不感兴趣的情况下,密钥也就不存在保密性,可以作为公共密钥 实验一实验一 图像输入与输出基本操作图像输入与输出基本操作 一、实验题目:一、实验题目: 图像输入与输出操作 二、实验目的二、实验目的 学习在 MATLAB 环境下对图像文件的 I/O 操作,为读取各种格式的图像文件 和后续进行图像处理打下基础 三、实验内容三、实验内容 利用 MATLAB 为用户提供的专门函数从图像格式的文件中读/写图像数据、 显示图像,以及查询图像文件的信息 四、预备知识四、预备知识 熟悉 MATLAB 开发环境 五、实验原理五、实验原理 (1)图像文件的读取 利用 imread 函数可以完成图像文件的读取操作常用语法格式为: I=imread(‘filename’,‘fmt’)或 I=imread(‘filename.fmt’); 其作用是将文件名用字符串 filename 表示的、扩展名用字符串 fmt(表示图像文 件格式)表示的图像文件中的数据读到矩阵 I 中。

      当 filename 中不包含任何路径 信息时,imread 会从当前工作目录中寻找并读取文件要想读取指定路径中的图 像,最简单的方法就是在 filename 中输入完整的或相对的地址MATLAB 支持 多种图像文件格式的读、写和显示因此参数 fmt 常用的可能值有: ‘bmp’ Windows 位图格式 ‘jpg’or‘jpeg’ 联合图像专家组格式 ‘tif’or‘tiff’ 标志图像文件格式 ‘gif’ 图形交换格式 ‘pcx’ Windows 画刷格式 ‘png’ 可移动网络图形格式 ‘xwd’ X Window Dump 格式 例如,命令行 I=imread(‘lena.jpg’); 将 JPEG 图像 lena 读入图像矩阵 I 中 (2) 图像文件的写入(保存) 利用 imwrite 完成图像的输出和保存操作,也完全支持也完全支持上述各种 图像文件的格式其语法格式为: imwrite(I,‘filename’,‘fmt’)或 imwrite(I,‘filename.fmt’); 其中的 I、filename 和 fmt 的意义同上所述。

      注意事项:当利用 imwrite 函数保存图像时,MATLAB 默认的保存方式是将 其简化为 uint8 的数据类型与读取文件类型类似,MATLAB 在文件保存时还支 持 16 位的 PNG 和 TIFF 图像所以,当用户保存这类文件时,MATLAB 就将其 存储在 uint16 中 (3)图像文件的显示 图像的现实过程是将数字图像从一组离散数据还原为一幅可见图像的过程 MATLAB 的的图像处理工具箱提供了多种图像显示技术例如 imshow 可以直接 从文件显示多种图像;image 函数可以将矩阵作为图像 ;colorbar 函数可以用来 显示颜色条;montage 函数可以动态显示图像序列这里仅对常用的显示函数进 行介绍 ①图像的显示 imshow 函数是最常用的显示各种图像的函数,其调用格式如下: imshow(I,N); imshow(I,N)用于显示灰度图像,其中 I 为灰度图像的数据矩阵,N 为灰度级 数目,默认值为 256 例如下面的语句用于显示一幅灰度图像: I=imread(‘lena.jpg’); imshow(I); 如果不希望在显示图像之前装载图像,那么可以使用以下格式直接进行图像 文件的显示: imshow filename 其中,filename 为要显示的图像文件的文件名。

      实例 1-1 显示一幅在当前目录下的.bmp 格式的图像: imshow lena.jpg 显示结果如图 1.1 所示 图 1.1.1 显示一幅图像文件中的图像 注意事项:该文件名必须带有合法的扩展名(指明文件格式) ,且该图像文 件必须保存在当前目录下,或在 MATLAB 默认的目录下 ②添加色带 colorbar 函数可以给一个坐标轴对象添加一条色带如果该坐标轴对象包含一 个图像对象,则添加的色带将指示出该图像中不同颜色的数据值这对于了解被 显示图像的灰度级特别有用其调用格式为: colorbar 实例 1-2 I=imread(‘lena.jpg’); imshow(I); colorbar; 图 1.1.2 显示图像并加入颜色条 从上图可知,该图像是数据类型为 uint8 的灰度图像,其灰度级范围从 0 -255 ③显示多幅图像 显示多幅图像最简单的方法就是在不同的图形窗口中显示它们imshow 总 是在当前窗口中显示一幅图像,如果用户想连续显示两幅图像,那么第二幅图像 就会替代第一幅图像为了避免图像在当前窗口中的覆盖现象,在调用 imshow 函数显示下一幅图像之前可以使用 figure 命令来创建一个新的窗口。

      例如: imshow(I1); figure, imshow(I2); figure, imshow(I3); 有时为了便于在多幅图像之间进行比较,需要将这些图像显示在一个图形窗 口中达到这一目的有两种方法:一种方法是联合使用 imshow 和 subplot 函数, 但此方法在一个图形窗口只能有一个调色板;另一种方法是联合使用 subimage 和 subplot 函数,此方法可在一个图形窗口内使用多个调色板 subplot 函数将一个图形窗口划分为多个显示区域,其调用格式如下: subplot(m,n,p) subplot 函数将图形窗口划分为 m(行)×n(列)个显示区域,并选择第 p 个区域作为当前绘图区 例 1-3 用两排显示四幅图像,可以使用以下语句: I1=imread(‘lena.bmp’); I2=imread(‘gs256.bmp’); I3=imread(‘lena.bmp’); I4=imread(‘gs256.bmp’); subplot(2,2,1), imshow(I1); subplot(2,2,2), imshow(I2); subplot(2,2,3), imshow(I3); subplot(2,2,4), imshow(I4); 图 1.1.3 在一个图形窗口中显示多幅图像 (4) 图像文件信息的查询 imfinfo 函数用于查询图像文件的有关信息,详细地显示出图像文件的各种属 性。

      其语法格式为: info=imfinfo(‘filename’,‘fmt’)或 info=imfinfo(‘filename.fmt’) 或 imfinfo filename.fmt imfinfo 函数获取的图像文件信息依赖于文件类型的不同而不同,但至少应包 含以下内容: 文件名如果该文件不在当前目录下,还包含该文件的完整路径 文件格式 文件格式的版本号 文件最后一次修改的时间 文件的大小以字节为单位 图像的宽度 图像的高度 每个像素所用的比特数也叫像素深度 图像类型即该图像是真彩色图像、索引图像还是灰度图像 例如,命令行 imfinfo bubbles25.jpg 会输出如下信息(注意,在这种情况下,有些域不包含信息): Filename: ‘bubbles25.jpg’ FileModDate: ‘04-Jan-2003 12:31:26’ FileSize: 13849 Format: ‘jpg’ FormatVersion: ‘’ Width: 714 Height: 682 BitDepth: 8 ColorType: ‘grayscale’ FormatSignature: ‘’ Comment: {} 六、实验步骤:实验步骤: (1)利用 imread 函数完成对图像文件的读取操作。

      (2)利用 imwrite 函数完成图像的写入(保存)操作 (3)利用 imshow 函数显示图像 (4)利用 imfinfo 函数查询图像文件的有关信息 实实验验二二 基基于于 D DC CT T 域域的的数数字字水水印印技技术术 离散余弦变换,简称 DCT,是一种实数域变换,其变换核为实数的余弦函数, 计算速度较快,是一种近似最佳变换,很适合于做图象压缩和随机信号处理,它 对常用的图象压缩有较强的鲁棒性 基于 DCT 域的数字水印算法,一般而言有两种算法一种是直接对整幅图 像进行 DCT 计算,选取合适频段的系数,嵌入水印另一种是,首先将整幅图 像分成块,对每一块分别进行 DCT 计算,在每一块中选取合适频段的系数,将 水印信息分散嵌入到每一块所选取的 DCT 系数中这种方法称为分块 DCT,这 种方法非常适合于 8×8 的图像块 DCT 变换目前,DCT 域的水印方法大多数是 采用分块 DCT 方法 二维 DCT 概述:一般而言,数字图象,其二维NnMmnmS 0 , 0),,( DCT 变换用矩阵表示,其定义式如下式所示:S ~ (4-1)) 2 ) 12( cos() 2 ) 12( cos(),()()( 2 ),( 2 1 0 1 0 1 ~ N lj M ki jiSlk NM lkS cc M i N j         二维 IDCT 定义如下: ]8[ (4-2)) 2 ) 12( cos() 2 ) 12( cos(),( ~ )()( 2 ),( 2 1 0 1 0 1 N lj M ki lkSlk NM jiS cc M k N l         其中 并且,1,.2 , 1 , 0,,1,.2 , 1 , 0,NljMki (4-3)         1,.2 , 1, 1 0, 2 1 )( 1 Mk k k c         1,.2 , 1, 1 0, 2 1 )( 2 Nl l l c 我们最常用到的是 8×8 分块 DCT,也就是首先将大小为 M×N 的图像分成 的非重叠的大小为 8×8 的块,然后对每一块作64/ )()8/()8/(NMNM DCT。

      根据式(4-1)和式(4-2) ,8×8DCT 的定义如下: (4-4)) 16 ) 12 cos() 16 ) 12( cos(),( 2 )( 2 )( ),( 7 0 7 0。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.