97小波提升程序
- 格式:docx
- 大小:15.83 KB
- 文档页数:3
小波分析及其应用(学习总结)一、 初步认识小波小波(Wavelet)这一术语,顾名思义,是小的波形。
所谓“小”是指它具有衰减性;而称之为“波”则是指它的波动性,其振幅正负相间的震荡形式。
与Fourier 变换相比,小波变换是时间(空间)频率的局部化分析,它通过伸缩平移运算对信号(函数)逐步进行多尺度细化,最终达到高频处时间细分,低频处频率细分,能自动适应时频信号分析的要求,从而可聚焦到信号的任意细节,解决了Fourier 变换的困难问题,成为继Fourier 变换以来在科学方法上的重大突破。
小波变换被人们称为“数学显微镜”。
从数学的角度来看,小波实际上是在特定空间内按照称之为小波的基函数(通常具有鲜明的物理意义)对数学表达式的展开与逼近。
作为一种快速高效、高精度的近似方法,小波理论构成调和分析领域中Fourier 分析的重要发展。
与Fourier 变换由三角基函数构成相比,小波基函数大多具有快速衰减、充分光滑、能量集中在一个局部区域的函数()x ψ经过伸缩与平移得到的函数集合,其中b 起到平移的作用,而a 为伸缩因子(a 作为一种尺度在变化时产生多分辨特性)。
因此,从信号处理的角度来看,作为一种新的时频分析工具,小波克服了Fourier 分析方法表示信息时能够清晰的揭示出信号的频率特性而不能反映时间域上的局部信息的缺陷,而局部性质的描述无论是在理论上还是在实际应用方面都十分重要。
当利用小波实施视频分析时,由于同时具有时间和频率的局部特性以及多分辨分析特性,使得对非平稳信号的处理变得相对容易。
二、 第一代小波由L 2(R)空间的正交分解和变换相关知识,对于给定信号f(t),关键是选择合适的标准正交基g i (t),使得f(t)在这组基下的表现呈现出我们需要的特性,但是如果某一个基不满足要求,可通过变换将函数转换到另一个基下表示,才能得到我们需要的函数表示。
常用的变换有:(1) K-L 变换 (2) Walsh 变换 (3) Fourier 变换 (4) 小波变换如图1所示是信号f(t)的Fourier 变换示意图。
Chapter 4 第二代小波—提升格式参考文献:1.W.Sweldens “The Lifting Scheme: A Custom_design Construction of Biorthorgonal Wavelets ”2.I.Daubichies ﹠W.Sweldens “Factoring Wavelet Transform into Lifting Steps ”.3.W.Swedens “The Lifting Scheme: A New Philosophy in Biorthogonal Wavelets Construction ”.From http://cm.bell_/who/wim/papers/Wavelets are building blocks that can quickly decorrelate data.Fourier 变换在小波变换中起着决定作用,小波本质上到底是什么?能否不用Fourier 变换而直接研究小波变换,由此形成三点共识:1. 小波首先是一个构造块)()(,x d x f k j Z j Zk jk ψ∑∑∈∈=;可以是一组基,也可以是框架2. 能够解相关性,使数据间的相关性减弱。
{}11,,+++=J K J J J d d C C ;3. 小波变换拥有快速算法。
小波变换分三步走:X —原始信号(离散)1. Split :e X X X ⋃=0,(Φ=⋂e X X 0)2. Prediction:)(⋅P 预测算子)(0e X P X ≈ P 的构造最终取决于原来的数据模型,不依赖数据;)(:00e X P X X -=3. Update :更新算子)(⋅U)(:0X U X X e e +=还可以对e X 在进行小波变换,分割、预测、更新……若P 、U 为非线性算子,则得到的为非线性小波变换。
逆小波变换(Inverse Wavelet Transform ):(1)(求e X ))(:0X U X X e e -=(2)(求o X ))(:00e X P X X +=(3)Joint :e X X X ⋃=0第二代小波变换的优点:1. 小波分析可以不再建立在Fourier 变换分析基础上;2. 引入新的小波变换,如非线性小波变换,自适应小波变换等,有限区间上的小波变换曲线,曲面上的小波、加权小波;3. 逆变换简单;4. 与Mallat 算法相比,计算速度快,存储小。
基于提升方案小波和混沌映射的盲水印算法
陈东方;张有清
【期刊名称】《计算机工程与设计》
【年(卷),期】2008(29)20
【摘要】数字水印技术是多媒体信息安全领域的一个重要研究课题.在研究HVS 对图像掩蔽特性的基础上,提出一种利用提升方案小波对载体图像进行多个金字塔分解,结合纹理块的确定方法选取小波系数,提高水印信息的嵌入量,结合新的混沌方法对水印信息进行映射加密嵌入.嵌入水印时,先对水印信息进行扩频,然后利用新的量化运算方法嵌入水印.实验结果表明,该算法简单高效,增强了水印信息的安全性,在抗JPEG压缩、锐化、扭曲变形、各种剪切等攻击上有很好鲁棒性,同时具有较好的透明性.
【总页数】4页(P5372-5375)
【作者】陈东方;张有清
【作者单位】武汉科技大学计算机学院,湖北武汉,430065;武汉科技大学计算机学院,湖北武汉,430065
【正文语种】中文
【中图分类】TP391.72
【相关文献】
1.提升方案小波和DCT下的图像盲水印算法 [J], 楼偶俊;王相海
2.基于提升方案小波和水印加密的盲水印算法 [J], 陈东方;张有清
3.基于广义Arnold混沌映射和Hénon混沌映射的小波水印算法 [J], 赵立强;李艳坡;孔令富;周铁军
4.基于混沌映射和离散变换的盲水印算法 [J], 苏鹏
5.一种基于提升方案小波和小波块的图像水印算法 [J], 王艳辉;王相海
因版权原因,仅展示原文概要,查看原文内容请购买。
小波图像分解程序:function coef=mywavedec2(x,N,wname) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 函数MYWA VEDEC2() 对输入矩阵x 进行dim 层分解,得到相应的分解系数矩阵y% 输入参数:x ——输入矩阵% N ——分解级数% wname ——分解所用的小波函数% 输出参数:coef ——分解系数矩阵,其结构如下:% coef = {cA_N;cV_N;cH_N;cD_N;cV_N-1;cH_N-1;cD_N-1;……;cV_1;cH_1;cD_1}% Copyright by Zou Yuhua ( chenyusiyuan ), original : 2007-11-10, modified: 2008-06-04 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 求出小波函数的滤波器组系数向量[Lo_D,Hi_D] = wfilters(wname,'d');% 画出原始图像imshow(x);title('Original Image');% 标明图像大小[r,c]=size(x);xlabel(['Size : ',num2str(r),'*',num2str(c)]);% 将矩阵x的数据格式转换为适合数值处理的double格式xd=double(x);coef=[];for i=1:N[cA,cV,cH,cD]=mydwt2(xd,Lo_D,Hi_D);% 第i 级小波分解xd=cA;% 将第i 级分解得到的低频系数矩阵作为第i+1 级分解的源矩阵outmp={cV;cH;cD};% 将第i 级分解得到的高频系数矩阵cV,cH,cD存入细胞矩阵outmp % 注意细胞矩阵的赋值是用大括号“{}”的,而普通矩阵赋值是用方括号“[]”% 细胞矩阵不要求其中的子矩阵的行列数都相同coef=[outmp;coef];% 将细胞矩阵outmp 存入输出矩阵coef,coef将由空矩阵变为细胞矩阵% 注意这里的方括号不能用大括号取代% 否则,使用大括号会将初始的coef空矩阵也作为细胞矩阵的子矩阵% 而且,在迭代中coef 将是一个不断嵌套的细胞矩阵,不便于后续处理和读取% 上面这个语句是一种有效的在迭代过程中保存数据的方法% 设待存数据为data,可以是单个数、向量或矩阵% 保存数据的矩阵为mat,初始为空矩阵:mat=[]% 则可按以下格式保存迭代过程产生的数据% mat=[mat;data];% 方括号内的分号“;”表示数据data 是按“列”排序的方式存入矩阵mat% mat=[mat,data];% 方括号内的逗号“,”表示数据data 是按“行”排序的方式存入矩阵mat% data 也可以在mat 前嵌入,即mat=[data;mat] 或mat=[data,mat]end% 迭代结束后,矩阵coef 中保存的是各级分解中的高频系数矩阵% 故需将迭代后得到的矩阵cA,即第dim 级低频矩阵存入矩阵coefcoef=[cA;coef];% 最后,小波系数矩阵coef 的结构如下% coef = {cA_N;cV_N;cH_N;cD_N;cV_N-1;cH_N-1;cD_N-1;……;cV_1;cH_1;cD_1}% 画出各级低频、高频系数矩阵% 首先建立一个名为“Wavelet Decomposition -- Wavelet Type: , Levels: ”的图像窗口figure('Name',['Wavelet Decomposition -- Wavelet Type: ',wname,' , Levels: ',num2str(N)]);% 图像的第1行显示低频系数,置中,左右两个subplot为空subplot(N+1,3,2);yt=uint8(coef{1});[yrow,ycol]=size(yt);imshow(yt);title( ['Approximation A',num2str(N)]);xlabel(['Size : ',num2str(yrow),'*',num2str(ycol)]);% 第2-(N+1)行显示各级高频系数titllist={['Vertical Detail V'];['Horizontal Detail H'];['Diagonal Detail D']};pn=2;% pn 是子图的显示序号for pr=1:Nfor pc=1:3subplot(N+1,3,pn+2);yt=[];% 为了使高频细节内容(轮廓、边缘)更清晰,将高频系数增加100灰度值yt=uint8(coef{pn})+100;[yrow,ycol]=size(yt);imshow(yt);title([ titllist{pc},num2str(N-pr+1)]);xlabel(['Size : ',num2str(yrow),'*',num2str(ycol)]);% 每行的第一个图像的Y轴,显示该行高频系数对应的分解级别if mod(pn+2,3)==1ylabel(['Level ',num2str(N-pr+1)]);endpn=pn+1;endendfunction [cA,cV,cH,cD]=mydwt2(x,Lo_D,Hi_D) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 函数MYDWT2() 对输入的r*c维矩阵x 进行二维小波分解,输出四个分解系数子矩阵[LL,HL,LH,HH]% 输入参数:x ——输入矩阵,为r*c维矩阵。
97小波提升程序
function output_signal = bldwt9_7(app_sig,det_sig)
%
% output_signal= bldwt9_7(app_sig,det_sig)
%
% The back lifting discrete wavelet transform (BLDWT) using the 9-7
Antonini filters
% Contact me : swf000117@163.com,http://guohanwei.51.net,QQ:461414909
[x,y] = size(app_sig);
if x~=1
app_sig = app_sig';
det_sig = det_sig';
end
tt=length(app_sig);
alp = -1.586134342;
bet = -0.05298011854;
gam = 0.8829110762;
delt = 0.4435068522;
psi = 1.149604398;
%d0=det_sig.*psi;
%s0=app_sig./psi;
d0=det_sig;
s0=app_sig;
d0 = [d0(1) d0];
s0 = s0(1:tt);
s0 = s0 - floor(delt*(d0(2:length(d0)) + d0(1:length(d0)-1))+0.5);
d0 = d0(2:tt+1);
s0 = [s0 s0(tt-1)];
d0 = d0 - floor(gam*(s0(1:length(s0)-1) + s0(2:length(s0)))+0.5);
s0 = s0(1:tt);
d0 = [d0(1) d0];
s0 = s0 - floor(bet*(d0(2:length(d0)) + d0(1:length(d0)-1))+0.5);
s0 = [s0 s0(tt-1)];
d0 = d0(2:tt+1);
d0 = d0 -floor( alp*(s0(1:length(s0)-1) + s0(2:length(s0)))+0.5);
s0=s0(1:tt);
output_signal(1:2:2*tt)=s0;
output_signal(2:2:2*tt)=d0;
if x~=1
output_signal=output_signal';
end
function img=d2bldwt9_7(dwt_img,level)
%
% img=d2bldwt9_7(dwt_img,level)
%
% The forward lifting discrete 2-D wavelet transform (D2BLDWT) using the
9-7 Antonini filters
% Contact me : swf000117@163.com,http://guohanwei.51.net,QQ:461414909
[x,y]=size(dwt_img);
xx=x/(2^level);
yy=y/(2^level);
img=dwt_img;
for i=1:level
for k=1:2*yy
app_sig=img(1:xx,k);
det_sig=img(xx+1:2*xx,k);
img(1:2*xx,k)= bldwt9_7(app_sig,det_sig);
end
for l=1:2*xx
app_sig=img(l,1:xx);
det_sig=img(l,xx+1:2*xx);
img(l,1:2*xx)= bldwt9_7(app_sig,det_sig);
end
xx=2*xx;
yy=2*yy;
end
function [cn,dn]=lifting_db97(x)
%=====该程序对向量进行小波变换,所用的小波为利用提升方案实现的
Daubechies 9/7小波=====
% 这是一维小波分解
% cn和dn分别是分解得到的低频向量(概貌系数)和高频向量(细节系数)
% x为待分解的向量
L=floor(length(x)/2);
s0=zeros(1,L); d0=zeros(1,L);
alpha = -1.586134342; beta = -0.05298011854; gamma = 0.8829110762; delta
= 0.4435068522;
K = 1.149604398; %设定参数值
for i=1:L %进行奇偶二抽取
s0(i)=x(2*i-1);
d0(i)=x(2*i);
end
s1=s0(2:L);
s1=[s1,s0(L)];
d0=d0+alpha*(s0+s1);
d1=d0(1:L-1);
d1=[d0(1),d1];
s0=s0+beta*(d0+d1);
s1=s0(2:L);
s1=[s1,s0(L)];
d0=d0+gamma*(s0+s1);
d1=d0(1:L-1);
d1=[d0(1),d1];
s0=s0+delta*(d0+d1);
cn=K*s0; dn=d0/K; %求出 cn 和 dn
if L length(x)/2 %保持原向量的长度不变
dn = [dn,dn(L)];
end