公路卡口监控系统中的图像防伪设计(共18页)_第1页
公路卡口监控系统中的图像防伪设计(共18页)_第2页
公路卡口监控系统中的图像防伪设计(共18页)_第3页
公路卡口监控系统中的图像防伪设计(共18页)_第4页
公路卡口监控系统中的图像防伪设计(共18页)_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、山东建筑大学实验报告学院: 信电学院 班级:电信112 姓名: 王丙全 学号: 2011081245课程: 数字图像处理 实验日期:2014年 11月28日 成绩: PAGE PAGE 22 摘要(zhiyo) 随着数字技术和因特网的发展,各种形式的多媒体数字作品被通过网络进行传输,然而数字作品的便利性和不安全性是并存的,它可以低成本、高速度地被复制和传播,这样就为创造者和使用者都提供了很大的便利,但这些特性也容易被盗版者所利用,因而采取多种手段对数字作品进行保护、对侵权者进行惩罚已经成为十分迫切的工作。除了(ch le)与传统作品版权保护相类似的法律和管理手段外,还应该针对数字作品本身的特点

2、为其提供技术上的保护。数字水印技术的研究就是在这种应用要求下逐步发展起来成为国际上研究热门的课题。 一、设计目的(md)和要求根据已知设计要求分析监控视频中道路车流量检测系统设计功能,确定监控视频中道路车流量检测系统设计的方法,画出流程图,编写实现程序,并进行调试,完成系统软件设计。根据设计题目的要求,请设计卡口监控系统中图像的防伪算法,选择适当的保护信息做为水印,实现水印的嵌入、提取及真伪的鉴别。二、设计原理 1.载体图像和水印的选取卡口监控系统中,通常对抓拍得到的数字信息以图像的形式存储起来,以便日后的调查取证,为此载体图像可选择抓拍到的图像,通常在图像中会包含具体的违章信息。水印的选择主

3、要考虑两个方面:(1)用于图像的真实性鉴别,通常考虑嵌入抓拍机构的特有信息,比如印章图像,以便于图像在传输中遭受到某种篡改后,还能通过提取的水印来验证图像来源的真实性。(2)用于防止图像篡改,抓拍的图像在传输过程中可能会受到恶意篡改,例如更改违章车辆的车牌号码等信息,此时可以考虑把抓拍图像中的具体违章信息作为水印。2.嵌入(qin r)、提取(tq)方法 选择(xunz)水印算法时,一般要满足:安全性、隐蔽性和鲁棒性。(1)由于抓拍图片均为彩色图像,而对彩色图像进行处理较为复杂,建议首先对图片进行灰度化处理。(2)嵌入位置选取。水印嵌入通常可选择在空间域或变换域进行。空间域方法是直接修改像素值

4、。该类方法比较简单,但嵌入的水印信息不能太多,鲁棒性比较差;变换域方法首先对图像进行某种可逆的数学变换,然后对变换域的系数进行某种修改,再进行逆变换得到图像,目前大多数水印算法都采用傅立叶变换(FFT)、离散余弦变换(DCT)和离散小波变换(DWT)。本次设计建议选择DCT域嵌入水印。 图像在经过DCT变换后, DCT系数分布可分为低、中、高三个频带。其中交流分量的低频系数分布在矩阵的左上角,是三个频带中系数值较大的区域,集中了图像的大部分能量,中频、高频依次向外分布,如下图所示:DCT变换分布图将水印嵌入到高频中不易被人眼所察觉,然而经过图像处理或攻击,极易产生水印数据损失;低频中集中了图像

5、的绝大部分能量,相对来说拥有更大的嵌入容量,对于恶意攻击的鲁棒性较好,但嵌入时要考虑对图像隐蔽性的影响。设计中,要根据卡口监控系统的需要,选择嵌入在DCT变换的低频、中频或高频系数上。(3)嵌入(qin r)算法常见的嵌入算法(sun f)有加性、乘性规则、位平面、系数交换法等。乘性规则和系数交换法在时空领域中引起的变动较大,这里建议选择加性或位平面法。加性规则(guz) 通常在加性规则中都带有嵌入因子,以调整所嵌入水印的不可见性和鲁棒性: 其中为原始载体的变换系数(如DCT变换系数)为含水印图像的系数, 为水印,a为嵌入强度因子。对于嵌入强度a的选择,通常要求嵌入强度要满足不可见性,兼顾鲁棒

6、性,嵌入强度会影响含水印图像的质量,通常用psnr来衡量,人眼视觉可以接受的psnr值灰度约为32。 位平面 最初的位平面方法为空域的最低有效位(LSB)和最高有效位(MSB),LSB的鲁棒性较差,MSB的不可见性差,可以采取折中方案,嵌入在中间位平面,进而扩展到图象变换系数的位平面嵌入方法。(4)提取算法数字水印的提取是嵌入的逆过程,例如上面的加性嵌入,相应的水印提取应该为。3.算法分析通过编码实现水印的嵌入,并在无攻击测试的情况下进行水印的提取,通过主观的人眼观察和峰值信噪比(PSNR)分析水印的隐蔽性,比较原始水印和提取水印的相似程度(相似度NC)。峰值(fn zh)信噪比(PSNR)在

7、一定程度上反应图像数据处理前后的变化情况,一般用它作为评价水印嵌入过程造成图像失真的标准。其计算方法如下: 2 这里(zhl)的M、N为行像素(xin s)及列像素数。为嵌有水印的数字图像,为没有嵌入水印的原始图像。 相似度函数NC为: 其中表示提取的水印,表示原始水印,NC(01)越大说明图像之间的相似度越大。4.抗攻击性能分析 对含水印图像进行加噪、压缩、剪裁、替换等常规处理,提取水印,检测提取水印与原始水印的相似度,分析算法抵抗各种攻击的性能。附:主要的matlab函数 (1)数据输入输出函数imread( )和imwrite( ):可以读写bmp、jpg/jpeg、 tif/tiff、

8、 png、hdf、pcx、wxd格式文件。 (2)图像显示imshow( ):显示一幅图像;imfinfo( ):可以得到读入图像的信息。如文件的大小、格式、格式版本号、图像的高度、宽度、颜色类型(真彩色,灰度图还是索引图)等。(3)变换函数fft2( ):计算(j sun)二维快速傅立叶变换ifft2( ):计算(j sun)二维傅立叶变换的反变换dct2( ):计算二维离散(lsn)余弦变换idct2( ):计算二维离散余弦反变换blkproc( ):分块处理dwt2( ):一层二维离散小波变换idwt2( ):一层二维离散小波反变换(4) 攻击函数旋转:rotate( )可以对图像进行任

9、意角度的旋转;剪裁:imcrop ( )可以按精确定位的各点坐标进行剪裁;滤波:filter( )和filter2( )可实现对一维信号和二维信号的滤波;抖动:dither( )对图像进行抖动;抖动攻击考验水印鲁棒性的一个很好的攻击;jpeg压缩:imwrite( )中jpg和quality参数能对图像进行可控jpg压缩;加噪声:imnoise( )可以对图像加入各种噪声,如白噪声、椒盐噪声等。三、设计内容1、添加不同位置水印进行效果对比 1.1、方案设计流程图读取水印图像生成水印序列读取载体图象嵌入水印改变水印位置进行比较 1.2、编程与调试clear all; clc;start_time

10、=cputime;% 读取水印(shuyn)图像 % I=imread(C:Documents and Settingsvlab桌面(zhumin)DCT_watermark333.bmp);I=rgb2gray(I);I=double(I)/255; I=ceil(I);%显示(xinsh)水印图像%figure(1);subplot(2,3,1);imshow(I),title(水印图像)dimI=size(I);rm=dimI(1);cm=dimI(2);%5 以下生成水印信息 %mark=I;alpha=50,k1=randn(1,8);k2=randn(1,8);a0=imread(

11、C:Documents and Settingsvlab桌面DCT_watermarklena.bmp);psnr_cover=double(a0);subplot(2,3,2),imshow(a0,),title(载体图像);r,c=size(a0);cda0=blkproc(a0,8,8,dct2);% 嵌入 %cda1=cda0; % cda1 = 256_256for i=1:rm % i=1:32 for j=1:cm % j=1:32 x=(i-1)*8;y=(j-1)*8; if mark(i,j)=1 k=k1; else k=k2; end cda1(x+1,y+8)=cda

12、0(x+1,y+8)+alpha*k(1); cda1(x+2,y+7)=cda0(x+2,y+7)+alpha*k(2); cda1(x+3,y+6)=cda0(x+3,y+6)+alpha*k(3); cda1(x+4,y+5)=cda0(x+4,y+5)+alpha*k(4); cda1(x+5,y+4)=cda0(x+5,y+4)+alpha*k(5); cda1(x+6,y+3)=cda0(x+6,y+3)+alpha*k(6); cda1(x+7,y+2)=cda0(x+7,y+2)+alpha*k(7); cda1(x+8,y+1)=cda0(x+8,y+1)+alpha*k(8

13、); endend% 嵌入(qin r)水印后图像 %a1=blkproc(cda1,8,8,idct2); a_1=uint8(a1);imwrite(a_1,C:Documents and Settingsvlab桌面(zhumin)DCT_watermarkwithmark.bmp,bmp);subplot(2,3,3),imshow(a1,),title(嵌入水印(shuyn)后图像);disp(嵌入水印处理时间);embed_time=cputime-start_time,水印嵌在中频位置,如图1 图1(2)水印嵌在低频位置,如图2 图2(3)水印嵌在高频(o pn)位置,如图3 图

14、32、添加(tin ji)不同强度水印(shuyn)进行效果对比 2.1、方案设计流程图读取水印图像生成水印序列读取载体图象嵌入水印改变水印强度进行比较 2.2、编程与调试(dio sh)clear all; clc;start_time=cputime;% 读取水印(shuyn)图像 % I=imread(C:Documents and Settingsvlab桌面(zhumin)DCT_watermark333.bmp);I=rgb2gray(I);I=double(I)/255; I=ceil(I);%显示水印图像%figure(1);subplot(2,3,1);imshow(I),t

15、itle(水印图像)dimI=size(I);rm=dimI(1);cm=dimI(2);%5 以下生成水印信息 %mark=I;alpha=10,k1=randn(1,8);k2=randn(1,8);a0=imread(C:Documents and Settingsvlab桌面DCT_watermarklena.bmp);psnr_cover=double(a0);subplot(2,3,2),imshow(a0,),title(载体图像);r,c=size(a0);cda0=blkproc(a0,8,8,dct2);% 嵌入 %cda1=cda0; % cda1 = 256_256fo

16、r i=1:rm % i=1:32 for j=1:cm % j=1:32 x=(i-1)*8;y=(j-1)*8; if mark(i,j)=1 k=k1; else k=k2; end cda1(x+1,y+8)=cda0(x+1,y+8)+alpha*k(1); cda1(x+2,y+7)=cda0(x+2,y+7)+alpha*k(2); cda1(x+3,y+6)=cda0(x+3,y+6)+alpha*k(3); cda1(x+4,y+5)=cda0(x+4,y+5)+alpha*k(4); cda1(x+5,y+4)=cda0(x+5,y+4)+alpha*k(5); cda1(

17、x+6,y+3)=cda0(x+6,y+3)+alpha*k(6); cda1(x+7,y+2)=cda0(x+7,y+2)+alpha*k(7); cda1(x+8,y+1)=cda0(x+8,y+1)+alpha*k(8); endend% 嵌入水印(shuyn)后图像 %a1=blkproc(cda1,8,8,idct2); a_1=uint8(a1);imwrite(a_1,C:Documents and Settingsvlab桌面(zhumin)DCT_watermarkwithmark.bmp,bmp);subplot(2,3,3),imshow(a1,),title(alpha

18、 =10);disp(嵌入水印处理(chl)时间);embed_time=cputime-start_time,alpha=10,如图4 图4alpha=50,如图5 图5alpha=250,如图6 图63、抗攻击(gngj)效果对比(如加噪、压缩(y su)、剪切攻击(gngj)等) 3.1、方案设计流程图读取水印图像生成水印序列读取载体图象嵌入水印对水印图片进行攻击攻击比较 3.2、编程与调试(dio sh)clear all; clc;start_time=cputime;% 读取水印(shuyn)图像 % I=imread(C:Documents and Settingsvlab桌面(

19、zhumin)DCT_watermark333.bmp);I=rgb2gray(I);I=double(I)/255; I=ceil(I);%显示水印图像%figure(1);subplot(2,3,1);imshow(I),title(水印图像)dimI=size(I);rm=dimI(1);cm=dimI(2);%5 以下生成水印信息 %mark=I;alpha=50,k1=randn(1,8);k2=randn(1,8);a0=imread(C:Documents and Settingsvlab桌面DCT_watermarklena.bmp);psnr_cover=double(a0)

20、;subplot(2,3,2),imshow(a0,),title(载体图像);r,c=size(a0);cda0=blkproc(a0,8,8,dct2);% 嵌入 %cda1=cda0; % cda1 = 256_256for i=1:rm % i=1:32 for j=1:cm % j=1:32 x=(i-1)*8;y=(j-1)*8; if mark(i,j)=1 k=k1; else k=k2; end cda1(x+1,y+8)=cda0(x+1,y+8)+alpha*k(1); cda1(x+2,y+7)=cda0(x+2,y+7)+alpha*k(2); cda1(x+3,y+

21、6)=cda0(x+3,y+6)+alpha*k(3); cda1(x+4,y+5)=cda0(x+4,y+5)+alpha*k(4); cda1(x+5,y+4)=cda0(x+5,y+4)+alpha*k(5); cda1(x+6,y+3)=cda0(x+6,y+3)+alpha*k(6); cda1(x+7,y+2)=cda0(x+7,y+2)+alpha*k(7); cda1(x+8,y+1)=cda0(x+8,y+1)+alpha*k(8); endend% 嵌入水印(shuyn)后图像 %a1=blkproc(cda1,8,8,idct2); a_1=uint8(a1);imwri

22、te(a_1,C:Documents and Settingsvlab桌面(zhumin)DCT_watermarkwithmark.bmp,bmp);subplot(2,3,3),imshow(a1,),title(嵌入(qin r)水印后的图像);disp(嵌入水印处理时间);embed_time=cputime-start_time,% 攻击实验 测试鲁棒性 %disp(对嵌入水印的图像的攻击实验,请输入选择项:);disp(1-添加白噪声);disp(2-高斯低通滤波);disp(3-JPEG 压缩);disp(4-图像剪切);disp(5-旋转10度);disp(6-直接检测水印);

23、disp(其他-不攻击);d=input(请输入选择(1-6):);start_time=cputime; figure(1); switch d case 6 subplot(2,3,4); imshow(a1,); title(未受攻击的含水(hn shu)印图像); M1=a1; case 1 WImage2=a1; noise0=20*randn(size(WImage2); WImage2=WImage2+noise0; subplot(2,3,4); imshow(WImage2,); title(加入白噪声(zoshng)后图像); M1=WImage2; M_1=uint8(M

24、1); imwrite(M_1,whitenoise.bmp,bmp); case 2 WImage3=a1; H=fspecial(gaussian,4,4,0.2); WImage3=imfilter(WImage3,H); subplot(2,3,4); imshow(WImage3,); title(高斯(o s)低通滤波后图像); M1=WImage3; M_1=uint8(M1); imwrite(M_1,gaussian.bmp,bmp); case 4 WImage4=a1; WImage4(1:64,1:512)=512; %WImage4(224:256,1:256)=25

25、6; %WImage4(1:256,224:256)=256; %WImage4(1:256,1:32)=256; WImage4cl=mat2gray(WImage4); figure(2); subplot(1,1,1); %subplot(2,3,4); imshow(WImage4cl); title(部分(b fen)剪切后图像); figure(1); M1=WImage4cl; %M_1=uint8(M1); %imwrite(M_1,cutpart.bmp,bmp); case 3 WImage5=a1; WImage5=im2double(WImage5); cnum=10;

26、 dctm=dctmtx(8); P1=dctm; P2=dctm.; imageDCT=blkproc(WImage5,8,8,P1*x*P2,dctm,dctm.); DCTvar=im2col(imageDCT,8,8,distinct).; n=size(DCTvar,1); DCTvar=(sum(DCTvar.*DCTvar)-(sum(DCTvar)/n).2)/n; dum,order=sort(DCTvar); cnum=64-cnum; mask=ones(8,8); mask(order(1:cnum)=zeros(1,cnum); im88=zeros(9,9); im

27、88(1:8,1:8)=mask; im128128=kron(im88(1:8,1:8),ones(16); dctm=dctmtx(8); P1=dctm.; P2=mask(1:8,1:8); P3=dctm; WImage5=blkproc(imageDCT,8,8,P1*(x.*P2)*P3,dctm.,mask(1:8,1:8),dctm); WImage5cl=mat2gray(WImage5); %figure(2); subplot(2,3,4); imshow(WImage5cl); title(经JPEG压缩(y su)后图像); %figure(1); M1=WImag

28、e5cl; case 5 WImage6=a1; WImage6=imrotate(WImage6,10,bilinear,crop); WImage6cl=mat2gray(WImage6); figure(2); subplot(1,1,1); imshow(WImage6cl); title(旋转(xunzhun)10度后图像); figure(1); M1=WImage6cl; otherwise disp(你输入的是无效数字(shz),图像未受攻击,将直接检测水印); subplot(2,3,4); imshow(a1,); title(未受攻击的含水(hn shu)印图像); M1

29、=a1; end%888888888888888888888888888888888888888888 提取水印 %psnr_watermarked=M1;dca1=blkproc(M1,8,8,dct2);p=zeros(1,8);for i=1:dimI(1) for j=1:dimI(2) % j=1:32 x=(i-1)*8;y=(j-1)*8; p(1)=dca1(x+1,y+8); p(2)=dca1(x+2,y+7); p(3)=dca1(x+3,y+6); p(4)=dca1(x+4,y+5); p(5)=dca1(x+5,y+4); p(6)=dca1(x+6,y+3); p

30、(7)=dca1(x+7,y+2); p(8)=dca1(x+8,y+1); %sd1=sum(sum(p.*k1)/sqrt(sum(sum(p.2); %sd2=sum(sum(p.*k2)/sqrt(sum(sum(p.2); %if sd1sd2 if corr2(p,k1)corr2(p,k2),warning off MATLAB:divideByZero; mark1(i,j)=1; else mark1(i,j)=0; end endendsubplot(2,3,5);imshow(mark1,),title(提取(tq)的水印图像);subplot(2,3,6);imwrite(mark1,getmark.bmp,bmp);imshow(mark),title(原嵌入(qin r)水印比较);% time %disp(攻击与提取(tq)处理时间)attack_recover_time=cputime-start_time,% psnr %disp(载体图像与含水印图像峰值信噪比)PSNR=psnr(psnr_cover,psnr_watermarked,c,r),% Oringinal mark a

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论