欢迎来到沃文网! | 帮助中心 分享知识,传播智慧!
沃文网
全部分类
  • 教学课件>
  • 医学资料>
  • 技术资料>
  • 学术论文>
  • 资格考试>
  • 建筑施工>
  • 实用文档>
  • 其他资料>
  • ImageVerifierCode 换一换
    首页 沃文网 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    基于小波变换的数字水印技术研究0.doc

    • 资源ID:1011426       资源大小:237KB        全文页数:31页
    • 资源格式: DOC        下载积分:10积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录 微博登录
    二维码
    微信扫一扫登录
    下载资源需要10积分
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,下载更划算!
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于小波变换的数字水印技术研究0.doc

    1、基于小波变换的数字水印技术研究摘要:算法基于Haar小波变换,把小波系数分块,并计算每个块的平均值。在一系列信号处理之后,这些块(尤其是大的块)的平均值不会有很大改变,否则,重构的图像就与原始图像有很大差别。通过对这些块的平均值进行量化来嵌入水印;提取时也依赖于相应块的平均值,所以不需要原始图像参与。算法对有损压缩、小波压缩、噪声、中值滤波和剪裁等操作有较好的鲁棒性。关键词:信息隐藏;数字水印;小波变换引言 随着计算机和网络的飞速发展,人们的许多创作和成果都以数字形式进行存储和发布。然而,数字作品极易被非法拷贝、伪造和窜改,使得很多版权所有者不愿意利用网络公开其作品,从而阻碍其自身发展。目前,

    2、数字作品的版权保护不仅仅是立法问题,也是一个很重要的技术难题。从技术上看,数字媒体版权信息的嵌入和检测问题,是数字作品版权保护的两个关键问题,它综合了传统密码学的认证和鉴别问题的特点,又加入了稳健性要求。版权保护信息必须与被保护的数据密切结合,版权保护信息的鉴别过程必须具有了抗干扰能力。在这种情况下,数字水印技术应运而生。1.数字水印技术概述提到水印,人们都会想到钞票中的水印。钞票水印具有两条特性,首先,水印在通常情况下不可见,只有在特殊的观察条件下才可见(钞票中水印在光下可见)。其次,水印信息必须与载体对象相关(在这里表示纸币的真实性)。1.1数字水印技术的特性可证明性:能够为受到版权保护的

    3、数字产品提供完全可靠的证据。不可见性:即被嵌入水印信息的数字产品不会出现明显的质量下降,隐藏的数据不易被察觉;另外,不能用统计的方法恢复出水印。鲁棒性:添加的数字水印必须对施加于宿主图象的攻击具有一定的免疫能力,不能因为对宿主图象的某种操作而导致水印信息丢失。1.2数字水印技术的应用水印技术的应用极为广泛,主要有以下7种应用领域:广播监控、所有者识别、所有权验证、交易跟踪、内容真伪鉴别、拷贝控制以及设备控制。2.小波变换理论自1986年以来,小波分析的理论、方法与应用的研究一直方兴未艾。作为一种数学工具,小波变换是对人们熟知的傅立叶变换和窗口傅立叶变换的一个重大突破,为信号分析、图像处理及其它

    4、非线性科学研究领域带来了革命性的影响。人类视觉系统(HVS)的文理特性和照亮掩蔽特性表明,纹理越复杂,背景的亮度越亮,人类视觉对其轻微变化就越不敏感。大量的研究表明,人眼在处理图像信号时,将图像滤波成若干的子带信号,他们占据不同的频率范围,即图像在HVS中被认为是由不同频率范围的信息组成。其特征为:人眼对反映局部结构的边缘和轮廓不敏感;对低频信号,表现出较高的灵敏度。HVS在同一品大范围对不同方向纹理细节信号等表现出不同的灵敏度,这一特点与小波变换的多分辨率分析具有一定的相似性。小波变换是傅立叶变换的发展,是空间和频率的局部变换,它在频域和时域同时具有良好的局部化特征。小波变换在图像处理中的基

    5、本思想是把图像进行多分辨率分解成不同的空间和独立的频率带的子图像,然后对子图像的系数进行处理。根据S. Mallat的塔式分解算法,图像经过小波变换后分解成四个子图:水平方向LH、垂直方向HL和对角线方向HH的中高频细节子图和低频逼近子图LL。低频部分还可以继续分解,产生三个高频带系列LHn、HLn、HHn(n=1,2,3)和一个低频带LL3(见图1)。图1中的LL3表示小波变换分解级数决定的最大尺度、最小分辨率下对原始图像的最佳逼近,它的同级特征和原理图相似,图像大部分能量集中于此。高频带系列代表图像的边缘和纹理。3.DWT变换域数字水印技术3.1数字水印嵌入技术图像的水印技术根据水印嵌入的

    6、方式可以分为两类:时/空域技术(水印被直接嵌入在图像的亮度值中)和变换域技术(将图像做某种数学变换,然后水印被嵌入于变换系数中)。早期人们对水印的研究基本上是基于时空域的,算法相对简单,实时性较强,但在鲁棒性上不如变换域算法。目前变换域方法正日益普遍,有DCT、DWT、DFT变幻域算法。变换域算法的优点是:1、水印信息分布到空间域的所有像素上,有利于提高水印的不可见性。2、能方便的与HVS(人类视觉系统)的某些特性结合。3、很好的鲁棒性,对图像压缩、常用的图像滤波以及噪声均有一定的抵抗力。离散余弦变换是从图像空间到频率空间的全局变换,由于离散余弦变换的全局本质,在变换空间中任何一个数据的误差都

    7、会影响到图像中的每一个像素。利用小波变换把原始图像分解成多频段的图像,能适应人眼的视觉特性且使得水印的嵌入和检测可分多个层次进行,小波变换域数字水印方法见具有时空域方法和DCT变换域方法的优点。在一系列信号处理后,如果观察者的主观感觉图像的变化不大,那么图像处理前后低、中频的小波系数的改变幅度同样有限,另外系数幅值改变的方向(变大或变小)在多数情况下也不同,因此,低、中频系数的平均改变幅度十分有限。本算法选取部分低、中频系数并分成一定大小的系数块,通过量化系数块的平均值来嵌入水印序列。3.1.1选择系数设X(m,n)是一幅大小为M*N灰度级为2“的灰度图像(1mM ,1nN),其中M,N,a为

    8、正整数。对X(m,n)进行l层(l为正整数)小波分解,得到3l个细节图像和一个低频近似图像,用Xk,l(mi,nj)k=h,v ,d;l=1,2,l;mi=1,2,M2l ;nj=1,2,N2l 表示选择的小波系数,其中l表示分解的层次,k=h,v,d分别表示第l层水平、垂直和对角方向的子图像。考虑到量化低频子图可能产生较大失真,因此不在其中嵌入水印,而选择除低频外的中频系数3。3.1.2分块并计算每块的平均值根据嵌入的信息量和对算法鲁棒性的要求,块越大,水印的鲁棒性越好,但嵌入的水印比特少。把XK,l (mi,nj)分成一定大小的块,用Block (s,t)表示XK,l (mi,nj)中大小

    9、为st的系数块,其中s=1,2,mi ,t=1,2,nj,b为正整数,代表该块的编号。其平均值为Ave =Block(s,t)/(s*t):其中 Block 为块内系数幅值的累计和。3.1.3 量化水印序列w的嵌入是通过对Ave 的量化完成的,例如:量化成奇数代表嵌入“1”,量化成偶数相当于嵌入“0”。根据对鲁棒性和隐藏性的折中考虑,设量化间隔l,l=1,2,l表示分解层数,对于低频的第l层,由于系数幅值极大,可以作较大间隔的量化,对第l-1,1层次作间隔逐渐减小的量化,量化按下图进行:根据wi =0,1将Ave 量化到与之最近的奇、偶点。用Dat(i,j)表示Block 中的一个小波系数,量

    10、化后的该系数用Dat (i,j)表示,其中i=1,2,s;j=1,2,t。设T=Avel,Turdat=rem(T,2)其中表示四舍五入取整,rem 表示求T 除以2的余数。若Turdat与wi相同,则量化的小波系数为Dat(i,j)=Dat(i,j)+Tl -Ave若Turdat与wi不同,小波系数按下列量化Dat(i,j)=Dat(i,j)+(T+1)lAve,TT Dat(i,j)=Dat(i,j)+(T-1)l Ave,TT3.1.4重构使用相同的小波基,通过小波逆变换生成含有水印的图像,并将小波基、小波分解层数、选择的系数区域、分块方法、量化间隔、奇偶对应关系记录形成密钥 4。3.2

    11、数字水印提取技术水印的提取由嵌入方式来决定,它是嵌入方式的逆过程。首先对要检测的图像进行小波变换,根据密钥确定嵌入水印的位置,并对水印进行置乱处理的逆运算。可以通过计算归一化互相关函数Nc和峰值信噪比Rpsnr 来度量该水印算法的鲁棒性和透明性。归一化互相关函数Nc的定义式为峰值信噪比Rpsnr 的定义式为上两式中,Wij为原始水印,Wij为提取出来的数字水印,i,j分别是行和列的个数。4.实验结果分析在原图像中加入水印图像后,原图像与含水印图像相关系数为0.9644,原图像与提取水印后图像相关系数为0.9308。当对原图和含水印图进行JPEG压缩后,原图峰值信噪比为3370dB,含水印图峰值

    12、信噪比为3195dB。在对嵌入水印的图像进行JPEG压缩、污染、裁剪、添加高斯噪声、均匀噪声等常见破坏性实验后,仍检测出水印。从实验数据中可以看出,本文提出的算法对JEPG压缩、剪切、中值滤波具有较强的鲁棒性。同时嵌入水印的图像也有较好的透明性。在本文算法中仅仅根据小波系数块的特点来嵌入和提取水印,由于对图像水印的攻击手段多种多样,不同的攻击手段对小波系数块的改变幅度不同,会影响本文算法提取水印的可靠性;另外,小波系数分块后,对嵌入水印数据量有较大地限制。参考文献1数字水印技术及应用,孙圣和,陆哲明,科学出版社2基于离散小波变换的图像数字水印算法,刘淑青,于工,青岛科技大学学报3基于小波变换的

    13、彩色图像数字水印算法,严继利,陈明明,计算机与数字工程4基于小波多分辨率分解的数字图像水印算法,姜明新,迟学芬,吉林大学学报Digital Image Watermarking Algorithm Base on Haar Wavelet TransformAbstract:The algorithm deals with the calculating method that wavelet modules are divided into block calculating the average of every one basis on Haar wavelet transform H

    14、aving been wiped with by a series of signals,the image of reconstruction have great differences from the original one unless the average of the pieces(especially the big ones)can be changed greatlyBy being quantized and implanted water mark,the average of the pieces are depended on when collected so

    15、 as not to involve in the original imageThe algorithm have perfect robust to the operation damaging compression,wavelet compression,noise,median filtering,croppingKey words:information hiding;digital watermarking;wavelet transform附录1.matlab代码lena=imread(lena.bmp,bmp);subplot(2,2,1);imshow(lena);titl

    16、e(原图像);bict=imread(bict.bmp,bmp);subplot(2,2,2);imshow(bict); title(水印图像);lena1=double(lena);bict1=double(bict);Cwr,Swr=WAVEDEC2(bict1,1,haar);Cr,Sr=WAVEDEC2(lena1,2,haar);a=0.06;for k=0:1:size(Cr,2)/size(Cwr,2)-1Cr(1+size(Cr,2)/4+k*size(Cwr,2)/4:size(Cr,2)/4+(k+1)*size(Cwr,2)/4)=Cr(1+size(Cr,2)/4+k

    17、*size(Cwr,2)/4:size(Cr,2)/4+(k+1)*size(Cwr,2)/4)+a*Cwr(1+size(Cwr,2)/4:size(Cwr,2)/2);Cr(1+size(Cr,2)/2+k*size(Cwr,2)/4:size(Cr,2)/2+(k+1)*size(Cwr,2)/4)=Cr(1+size(Cr,2)/2+k*size(Cwr,2)/4:size(Cr,2)/2+(k+1)*size(Cwr,2)/4)+a*Cwr(1+size(Cwr,2)/2:3*size(Cwr,2)/4);Cr(1+3*size(Cr,2)/4+k*size(Cwr,2)/4:3*s

    18、ize(Cr,2)/4+(k+1)*size(Cwr,2)/4)=Cr(1+3*size(Cr,2)/4+k*size(Cwr,2)/4:3*size(Cr,2)/4+(k+1)*size(Cwr,2)/4)+a*Cwr(1+3*size(Cwr,2)/4:size(Cwr,2);end;Cr(1:size(Cwr,2)/4)=Cr(1:size(Cwr,2)/4)+a*Cwr(1:size(Cwr,2)/4);lena1=WAVEREC2(Cr,Sr,haar);output=uint8(round(lena1);subplot(2,2,3);imshow(output,);title(嵌入

    19、水印后的图像);J1=imnoise(output,salt & pepper,0.04);subplot(2,2,4);imshow(J1);title(加椒盐噪声后的图像);Ca,Sa=WAVEDEC2(lena1,2,haar);lena0=imread(lena.bmp,bmp);lena01=double(lena0(:,:,1);Ca1,Sa1=WAVEDEC2(lena01,2,haar);Cwr(1:size(Cwr,2)/4)=(Ca(1:size(Cwr,2)/4)-Ca1(1:size(Cwr,2)/4)/a;bict1=WAVEREC2(Cwr,Swr,haar);ou

    20、tput=uint8(round(bict1);figure,subplot(2,2,1);imshow(output,);title(提取的水印图像);Ca2,Sa2=WAVEDEC2(J1,2,haar);Cwr(1:size(Cwr,2)/4)=(Ca(1:size(Cwr,2)/4)-Ca1(1:size(Cwr,2)/4)/a;bict1=WAVEREC2(Cwr,Swr,haar);output2=uint8(round(bict1);subplot(2,2,2);imshow(output2,);title(提取加噪声后的水印图像);2.vc+代码#include stdafx.

    21、h#include resource.h#define MAX_LOADSTRING 100#include #include #include dibfile.h#include resource.h#define PI 3.1415926typedef struct tagComplex float re; float im;Complex;int fix(float t);void FFT(Complex *t,long nUm);void DCT(float *t,unsigned nUm);void IDCT(float *t,unsigned nUm);void DCT2(floa

    22、t *Cpic,unsigned nUm);void IDCT2(float *Cpic,unsigned nUm);Complex complexAdd(Complex a,Complex b);Complex complexMul(Complex a,Complex b);Complex complexSub(Complex a,Complex b);LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;void iWvltTrans(BYTE *tmp,long nWide,long nHeight,int n);void cWvl

    23、tTrans(BYTE *tmp,long nWide,long nHeight,int n);void shade(BYTE *pic,BYTE *tmp,long wide,long height,long nWide,long nHeight,int n);void getshade(BYTE *tpic,BYTE *tmp,long wide,long height,long nWide,long nHeight,int n);void noise(BYTE *tpic,long wide,long height);BYTE getvalue(BYTE *t,int n);void D

    24、ITONG(BYTE *pic,long wide,long height,int n);TCHAR szAppName = ShowDib1;TCHAR szAppName1 = ShowDib2;intpicopen=0;intshadeopen=0;intgetopen=0;intdonoise=0;intdozz=0;int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) HACCEL hAccel ; HWND hwnd ; MSG msg ; WN

    25、DCLASS wndclass ;wndclass.style = CS_HREDRAW | CS_VREDRAW ; wndclass.lpfnWndProc = WndProc ; wndclass.cbClsExtra = 0 ; wndclass.cbWndExtra = 0 ; wndclass.hInstance = hInstance ; wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION) ; wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ; wndclass.hbrBackgrou

    26、nd = (HBRUSH) GetStockObject (WHITE_BRUSH) ; wndclass.lpszMenuName = (LPCTSTR)IDC_DIBFILE ; wndclass.lpszClassName = szAppName ; if (!RegisterClass (&wndclass) MessageBox (NULL, TEXT (This program requires Windows NT!), szAppName, MB_ICONERROR) ; return 0 ; hwnd = CreateWindow (szAppName, TEXT (Show

    27、 DIB), WS_OVERLAPPEDWINDOW|WS_SYSMENU, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL) ; ShowWindow (hwnd, iCmdShow) ; UpdateWindow (hwnd) ; hAccel = LoadAccelerators (hInstance, szAppName) ; while (GetMessage (&msg, NULL, 0, 0) if (!TranslateAccelerator (hwn

    28、d, hAccel, &msg) TranslateMessage (&msg) ; DispatchMessage (&msg) ; return msg.wParam ;LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam,LPARAM lParam) static BITMAPFILEHEADER * pbmfh,*pbmfh1; static BITMAPINFO * pbmi,*pbmi1 ; static BYTE * pBits ;static BYTE * pBits1,*pBits2 ;static

    29、BYTE * pic ;static BYTE * sPic ; static long cxClient, cyClient, cxDib, cyDib ; static TCHAR szFileName MAX_PATH, szTitleName MAX_PATH ,szFileName1 MAX_PATH, szTitleName1 MAX_PATH; BOOLbSuccess ; HDC hdc ; PAINTSTRUCT ps ;intx,y,n=1;static longwide,height;static longnWide,nHeight;/水印图像/wide=height=n

    30、Wide=nHeight=0; switch (message) case WM_CREATE: DibFileInitialize (hwnd) ; return 0 ; case WM_SIZE: cxClient = LOWORD (lParam) ; cyClient = HIWORD (lParam) ; return 0 ; case WM_INITMENUPOPUP: EnableMenuItem (HMENU) wParam, IDM_FILE_SAVE, pbmfh ? MF_ENABLED : MF_GRAYED) ; return 0 ; case WM_COMMAND:

    31、 switch (LOWORD (wParam) case IDM_FILE_OPEN: / Show the File Open dialog box if (!DibFileOpenDlg (hwnd, szFileName, szTitleName) return 0 ; / If theres an existing DIB, free the memory if (pbmfh) free (pbmfh) ;pbmfh = NULL ; / Load the entire DIB into memory SetCursor (LoadCursor (NULL, IDC_WAIT) ;

    32、ShowCursor (TRUE) ; pbmfh = DibLoadImage (szFileName) ; ShowCursor (FALSE) ; SetCursor (LoadCursor (NULL, IDC_ARROW) ; / Invalidate the client area for later update if (pbmfh = NULL) MessageBox (hwnd, TEXT (Cannot load DIB file), szAppName, 0) ; return 0 ; / Get pointers to the info structure & the

    33、bits pbmi = (BITMAPINFO *) (pbmfh + 1) ;/the images information/pBits 存放图像的信息 pBits = (BYTE *) pbmfh + pbmfh-bfOffBits ; / Get the DIB width and height if (pbmi-bmiHeader.biSize = sizeof (BITMAPCOREHEADER) cxDib= (BITMAPCOREHEADER *) pbmi)-bcWidth ;cyDib= (BITMAPCOREHEADER *) pbmi)-bcHeight ; else c

    34、xDib= pbmi-bmiHeader.biWidth ; cyDib =abs(pbmi-bmiHeader.biHeight) ; wide=cxDib;height=cyDib;picopen=1;sPic=new BYTEwide*height;for(x=0;xheight;x+)for(y=0;ybfOffBits ; / Get the DIB width and height if (pbmi1-bmiHeader.biSize = sizeof (BITMAPCOREHEADER) nWide= (BITMAPCOREHEADER *) pbmi1)-bcWidth ;nH

    35、eight= (BITMAPCOREHEADER *) pbmi1)-bcHeight ; else nWide= pbmi1-bmiHeader.biWidth ; nHeight =abs(pbmi1-bmiHeader.biHeight) ; /nWide=cxDib;/nHeight=cyDib;shadeopen=1;if(picopen=1&shadeopen=1)/shade(pBits,pBits1,wide,height,nWide,nHeight,n);InvalidateRect (hwnd, NULL, TRUE) ;return 0 ;case IDD_GETSHADE:getopen=1;


    注意事项

    本文(基于小波变换的数字水印技术研究0.doc)为本站会员(精***)主动上传,沃文网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知沃文网(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服点击这里,给沃文网发消息,QQ:2622162128 - 联系我们

    版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

    Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1

    陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922