《MATLAB应用与通信仿真》课程设计
4.4 攻击函数
对算法进行攻击测试是对水印鲁棒性检测的一种重要手段,一个好的水印算法必须经过各种攻击测试才能对之做出客观的评价。MATLAB中的许多函数可以直接用来做攻击测试。
1.旋转: ro2tate( )可以对图像进行任意角度的旋转。 2.剪裁: imcrop( )可以按精确定位的各点坐标进行剪裁。 3.滤波: filter( )和filter2( )可实现对一维信号和二维信号的滤波。 4.抖动: dither( )对图像进行抖动;抖动攻击考验水印鲁棒性的一个很好的攻击。
5.jpeg压缩:imwrite( )中jpg和quality参数能对图像进行可控jpg压缩。 6.加各种噪声:imnoise( )可以对图像加入各种噪声,如白噪声、椒盐噪声等,加入噪声是对水印鲁棒性考验的一种常见的攻击。
7.对比度调整:imadjust( )可以调整图象的对比度,来达到攻击目的。 8.放大/ 缩小:imresize( )可以以指定的插值方法来对图像进行放大和缩小。
4.5 本设计所用MATLAB函数
MATLAB含有丰富的库函数,大大简化了算法的实现,下面简要介绍本设计所用的一些常用MATLAB函数功能。
rand:产生随机序列。
randn:产生正态分布的随机序列。
imread:从文件读取图像,图像文件可以使bm ,pdf, jpeg,pcx,tiff,xwd等格式。 imwrite:把图像写成文件。 imshow:用于显示图像。 size:计算图像(矩阵)的大小。 im2col:重排图像块为矩阵列。 col2im:重排矩阵为图像块。 std:计算标准方差。 sum