精华内容
下载资源
问答
  • 二维小波变换二级分解重构,里面没有用库函数,基本上都是手写卷积函数等等,直接下载实现即可!
  • 小波分解后,直接FFT发现多出不少错误【不应该存在】的频率,改进后能正确的重构。可以直接运行,对初学者是个不错的例子。
  • 从pudn上下载的,基于小波变换图像分解与重构,个人感觉不错,拿上来分享一下
  • matlab中实现图像的二维小波分解与重构,以及对图像的多尺度分解与重构
  • 老师布置的作业,对自己的自拍照进行二级小波重构与分解,并且对图像加高斯噪声、去燥
  • 小波变换图像分解与重构(含matlab代码)

    万次阅读 多人点赞 2019-02-23 14:22:01
    01 小波变换原理 所谓的小波的小是针对傅里叶波而言,傅里叶波指的是在时域空间无穷震荡的正弦(或余弦波)。 相对而言,小波指的是一种能量在时域非常集中的波,它的能量有限,都集中在某一点附近,而且积分的值...

                                                                               01 小波变换原理  

     

    所谓的小波的小是针对傅里叶波而言,傅里叶波指的是在时域空间无穷震荡的正弦(或余弦波)。

    相对而言,小波指的是一种能量在时域非常集中的波,它的能量有限,都集中在某一点附近,而且积分的值为零,这说明它与傅里叶波一样是正交波。举一些小波的例子:

    可以看到,能量集中在x轴0值附近,以y轴的0值为基线,上下两个区域的波形面积相等。

    众所周知,图像的傅里叶变换是将图像信号分解为各种不同频率的正弦波。同样,小波变换是将图像信号分解为由原始小波位移和缩放之后的一组小波。

    小波在图像处理里被称为图像显微镜,原因在于它的多分辨率分解能力可以将图片信息一层一层分解剥离开来。剥离的手段就是通过低通和高通滤波器,

    这里我们以一个图像的横向一维为例,讲讲小波的分解与还原,采用的是Haar小波做分解:

    图像原始像素矩阵:[6 4 8 7 5 9 3 2]

    分解低通滤波器:[ 1  1]/sqrt(2)

    分解高通滤波器:[-1 1]/sqrt(2)

    1. 用低通滤波器与原始像素矩阵做卷积得:[8 10 12 15 12 14 12 5]/sqrt(2)

    下采样得:[10 15 14 5]/sqrt(2)    ----->L

    2. 用高通滤波器与原始像素矩阵做卷积得:[-4 2 -4 1 2 -4 6 1]/sqrt(2)

    下采样得:[2 1 -4 1]/sqrt(2)    ----->H

    上例为一维情况,二维情况在做完横向滤波之后再进行纵向滤波即可。

    逆变换过程:

    重构低通滤波器:[1  1]/sqrt(2)

    重构高通滤波器:[1 -1]/sqrt(2)

    1. 对L数组插值得:[0 10 0 15 0 14 0 5]/sqrt(2)

    再用低通滤波器做卷积得:[10 10 15 15 14 14 5 5]/2

    2. 对H数组插值得:[0 2 0 1 0 -4 0 1]/sqrt(2)

    再用高通滤波器做卷积得:[2 -2 1 -1 -4 4 1 -1]/2

    两个数组求和得:[6 4 8 7 5 9 3 2] ,矩阵被还原了。

    二维图像信号

    对于二维图像信号,可以用分别在水平和垂直方向进行滤波的方法实现二维小波多分辨率分解。图2.5为经过二维离散小波变换的分解后子图像的划分。其中:

    (l) LL子带是由两个方向利用低通小波滤波器卷积后产生的小波系数,它是图像的近似表示。

    (2) HL子带是在行方向利用低通小波滤波器卷积后,再用高通小波滤波器在列方向卷积而产生的小波系数,它表示图像的水平方向奇异特性。(水平子带)

    (3) LH子带是在行方向利用高通小波滤波器卷积后,再用低通小波滤波器在列方向卷积而产生的小波系数,它表示图像的垂直方向奇异特性。(垂直子带)

    (4) HH子带是由两个方向利用高通小波滤波器卷积后产生的小波系数,它表示图像的对角边缘特性。(对角子带)

     (第一个字母表示列方向的处理,第二个字母表示行方向的处理,图像的奇异特性通过低通时保留,通过高通时被滤除)

    小波去噪方法也就是寻找从实际信号空间到小波函数空间的最佳映像,以便得到原信号的最佳恢复。

    目前,小波去噪的方法大概可以分为三大类:

    第一类方法(小波变换模极大值去噪法)是利用小波变换模极大值原理去噪,即根据信号和噪声在小波变换各尺度上的不同传播特性,剔除由噪声产生的模极大值点,保留信号所对应的模极大值点,然后利用所余模极大值点重构小波系数,进而恢复信号;

    第二类方法(小波系数相关性去噪法)是对含噪信号作小波变换之后,计算相邻尺度间小波系数的相关性,根据相关性的大小区别小波系数的类型,从而进行取舍,然后直接重构信号;

    第三类方法(小波变换阈值去造法)是小波阈值去噪方法,该方法认为信号对应的小波系数包含有信号的重要信息,其幅值较大,但数目较少,而噪声对应的小波系数是一致分布的,个数较多,但幅值小。

    这里主要主要小波阀值收缩去噪法:

    小波阀值去噪的基本思想:Donoho提出的小波阀值去噪的基本思想是将信号通过小波变换(采用Mallat算法)后,信号产生的小波系数含有信号的重要信息,将信号经小波分解后小波系数较大,噪声的小波系数较小,并且噪声的小波系数要小于信号的小波系数,通过选取一个合适的阀值,大于阀值的小波系数被认为是有信号产生的,应予以保留,小于阀值的则认为是噪声产生的,置为零从而达到去噪的目的。其基本步骤为:

    (1)分解:选定一种层数为N的小波对信号进行小波分解;

    (2)阀值处理过程:分解后通过选取一合适的阀值,用阀值函数对各层系数进行量化;

    (3)重构:用处理后的系数重构信号。

                                                       02 小波阀值去噪的基本问题

    小波阀值去噪的基本问题包括三个方面:小波基的选择,阀值的选择,阀值函数的选择。

    (1)小波基的选择:通常我们希望所选取的小波满足以下条件:正交性、高消失矩、紧支性、对称性或反对称性。但事实上具有上述性质的小波是不可能存在的,因为小波是对称或反对称的只有Haar小波,并且高消失矩与紧支性是一对矛盾,所以在应用的时候一般选取具有紧支的小波以及根据信号的特征来选取较为合适的小波。

    (2)阀值的选择:直接影响去噪效果的一个重要因素就是阀值的选取,不同的阀值选取将有不同的去噪效果。目前主要有通用阀值(VisuShrink)、SureShrink阀值、Minimax阀值、BayesShrink阀值等。

    (3)阀值函数的选择:阀值函数是修正小波系数的规则,不同的反之函数体现了不同的处理小波系数的策略。最常用的阀值函数有两种:一种是硬阀值函数,另一种是软阀值函数。还有一种介于软、硬阀值函数之间的Garrote函数。

    另外,对于去噪效果好坏的评价,常用信号的信噪比(SNR)与估计信号同原始信号的均方根误差(RMSE)来判断。

    附小波分解与重构图像的matlab程序

    
    clc;
    clear;
    % 装载图像
    load woman;
    % X包含载入的图像
    % 绘制原始图像
    figure(1);
    subplot(2,2,1);
    image(X);
    colormap(map);
    title('原始图像');
    % 使用sym5对X进行尺度为2的分解
    [c,s] = wavedec2(X,1,'sym5');
    % 从小波分解结构[c,s]进行尺度为1和2时的低频重构
    a1 = wrcoef2('a',c,s,'sym5',1); 
    a2 = wrcoef2('a',c,s,'sym5',1); 
    
    % 绘制尺度为1时的低频图像
    subplot(2,2,3);
    image(a1);colormap(map);
    title('尺度为1时的低频图像');
    % 绘制尺度为2时的低频图像
    subplot(2,2,4);
    image(a2);colormap(map);
    title('尺度为2时的低频图像');
    % 从小波分解结构[c,s]在尺度为2时重构高频
    % 'h' 是水平方向
    % 'v' 是垂直方向
    % 'd' 是对角方向
    hd2 = wrcoef2('h',c,s,'sym5',1); 
    vd2 = wrcoef2('v',c,s,'sym5',1); 
    dd2 = wrcoef2('d',c,s,'sym5',1);
    % 绘制高频图像
    figure(2);
    subplot(2,2,1);
    image(hd2);colormap(map);
    title('尺度为2时的水平高频图像');
    subplot(2,2,2);
    image(vd2);colormap(map);
    title('尺度为2时的垂直高频图像');
    subplot(2,2,3);
    image(dd2);colormap(map);
    title('尺度为2时的对角高频图像');
    subplot(2,2,4);
    image(hd2+dd2+vd2+a1);colormap(map);
    % 验证这些图像的长度都是sX
    sX = size(X)
    sa1 = size(a1)
    shd2 = size(hd2)
    norm(hd2+dd2+vd2+a1-X)

    展开全文
  • 1974年,法国工程师J.Morlet首先提出小波变换的概念,1986年著名数学家Y.Meyer偶然构造出一个真正的小波基,并S.Mallat合作建立了构造小波基的多尺度分析之后,小波分析才开始蓬勃发展起来。小波分析的应用领域...

    一、获取代码方式

    获取代码方式1:
    完整代码已上传我的资源:【图像压缩】基于matlab小波变换图像压缩【含Matlab源码 229期】

    获取代码方式2:
    通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码。

    备注:
    订阅紫极神光博客付费专栏,可免费获得1份代码(有效期为订阅日起,三天内有效);

    二、简介

    1974年,法国工程师J.Morlet首先提出小波变换的概念,1986年著名数学家Y.Meyer偶然构造出一个真正的小波基,并与S.Mallat合作建立了构造小波基的多尺度分析之后,小波分析才开始蓬勃发展起来。小波分析的应用领域十分广泛,在数学方面,它已用于数值分析、构造快速数值方法、曲线曲面构造、微分方程求解、控制论等。在信号分析方面的滤波、去噪声、压缩、传递等。在图像处理方面的图像压缩、分类、识别与诊断,去噪声等。本章将着重阐述小波在图像中的应用分析。
    1 小波变换原理
    小波分析是一个比较难的分支,用户采用小波变换,可以实现图像压缩,振动信号的分解与重构等,因此在实际工程上应用较广泛。小波分析与Fourier变换相比,小波变换是空间域和频率域的局部变换,因而能有效地从信号中提取信息。小波变换通过伸缩和平移等基本运算,实现对信号的多尺度分解与重构,从而很大程度上解决了Fourier变换带来的很多难题。
    小波分析作一个新的数学分支,它是泛函分析、Fourier分析、数值分析的完美结晶;小波分析也是一种“时间—尺度”分析和多分辨分析的新技术,它在信号分析、语音合成、图像压缩与识别、大气与海洋波分析等方面的研究,都有广泛的应用。
    (1)小波分析用于信号与图像压缩。小波压缩的特点是压缩比高,压缩速度快,压缩后能保持信号与图像的特征不变,且在传递中能够抗干扰。基于小波分析的压缩方法很多,具体有小波压缩,小波包压缩,小波变换向量压缩等。
    (2)小波也可以用于信号的滤波去噪、信号的时频分析、信噪分离与提取弱信号、求分形指数、信号的识别与诊断以及多尺度边缘检测等。
    (3)小波分析在工程技术等方面的应用概括的包括计算机视觉、曲线设计、湍流、远程宇宙的研究与生物医学方面。
    2 多尺度分析
    在这里插入图片描述
    3 图像的分解和量化
    在这里插入图片描述
    4 图像压缩编码
    在这里插入图片描述
    5 图像编码评价
    在这里插入图片描述

    三、部分源代码

    %第一层小波分解
    clc,clear
    load wbarb;
    image(X);
    colormap(map);
    colorbar;
    % 小波分解
    [cA1,cH1,cV1,cD1] = dwt2(X,'bior3.7');
    % 第一层小波逼近系数--cA1
    % 水平系数--cH1
    % 垂直系数--cV1
    % 对角系数--cD1
    A1 = upcoef2('a',cA1,'bior3.7',1);
    H1 = upcoef2('h',cH1,'bior3.7',1); 
    V1 = upcoef2('v',cV1,'bior3.7',1);
    D1 = upcoef2('d',cD1,'bior3.7',1);
    %显示第一层小波分解图形
    colormap(map);
    subplot(2,2,1); image(wcodemat(A1,192));
    title('第一层小波逼近系数A1')
    subplot(2,2,2); image(wcodemat(H1,192));
    title('第一层小波水平系数H1')
    subplot(2,2,3); image(wcodemat(V1,192));
    title('第一层小波垂直系数V1') 
    subplot(2,2,4); image(wcodemat(D1,192));
    title('第一层小波对角系数D1')
    
    
    %% 由单层逆小波变换重新产生一副图像
    % 逆变换
    Xsyn = idwt2(cA1,cH1,cV1,cD1,'bior3.7');
    %To perform a level 2 decomposition of the image
    [C,S] = wavedec2(X,2,'bior3.7'); 
    %To extract the level 2 approximation coefficients from C
    cA2 = appcoef2(C,S,'bior3.7',2);
    %To extract the first- and second-level detail coefficients from C
    cH2 = detcoef2('h',C,S,2);
    cV2 = detcoef2('v',C,S,2);
    cD2 = detcoef2('d',C,S,2);
    cH1 = detcoef2('h',C,S,1);
    cV1 = detcoef2('v',C,S,1);
    cD1 = detcoef2('d',C,S,1);
    %To reconstruct the level 2 approximation from C
    A2 = wrcoef2('a',C,S,'bior3.7',2);
    %To reconstruct the level 1 and 2 details from C
    H1 = wrcoef2('h',C,S,'bior3.7',1);
    V1 = wrcoef2('v',C,S,'bior3.7',1);
    D1 = wrcoef2('d',C,S,'bior3.7',1);
    H2 = wrcoef2('h',C,S,'bior3.7',2);
    V2 = wrcoef2('v',C,S,'bior3.7',2);
    D2 = wrcoef2('d',C,S,'bior3.7',2);
    end
    

    四、运行结果

    在这里插入图片描述

    五、matlab版本及参考文献

    1 matlab版本
    2014a

    2 参考文献
    [1] 蔡利梅.MATLAB图像处理——理论、算法与实例分析[M].清华大学出版社,2020.
    [2]杨丹,赵海滨,龙哲.MATLAB图像处理实例详解[M].清华大学出版社,2013.
    [3]周品.MATLAB图像处理与图形用户界面设计[M].清华大学出版社,2013.
    [4]刘成龙.精通MATLAB图像处理[M].清华大学出版社,2015.

    展开全文
  • 1974年,法国工程师J.Morlet首先提出小波变换的概念,1986年著名数学家Y.Meyer偶然构造出一个真正的小波基,并S.Mallat合作建立了构造小波基的多尺度分析之后,小波分析才开始蓬勃发展起来。小波分析的应用领域...

    一、获取代码方式

    获取代码方式1:
    通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码。

    获取代码方式2:
    完整代码已上传我的资源:【图像融合】基于matlab小波变换图像融合【含Matlab源码 392期】

    备注:
    订阅紫极神光博客付费专栏,可免费获得1份代码(有效期为订阅日起,三天内有效);

    二、小波变换图像融合技术简介

    1 案例背景
    图像融合,指通过对同一目标或同一场景用不同的传感器(或用同一传感器采用不同的方式)进行图像采集得到多幅图像,对这些图像进行合成得到单幅合成图像,而该合成图像是单传感器无法采集得到的。图像融合所输出的合成图像往往能够保持多幅原始图像中的关键信息,进而为对目标或场景进行更精确、更全面的分析和判断提供条件。图像融合属于数据融合范畴,是数据融合的子集,兼具数据融合和图像可视化的优点。因此,图像融合能够在一定程度上提高传感器系统的有效性和信息的使用效率,进而提高待分析目标的分辨率,抑制不同传感器所产生的噪声,改善图像处理的效果。
    图像融合最早是以数据融合理论为基础的,通过计算像素算术平均的方式得到合成图像。该方法忽略了像素间的相互关系,往往会产生融合图像的对比度差、可视化效果不理想等问题。因此,为了提高目标检测的分辨率,抑制不同传感器的检测噪声,本案例选择了一种基于小波变换的图像数据融合方法,首先通过小波变换将图像分解到高频、低频,然后分别进行融合处理,最后再逆变换到图像矩阵"。在融合过程中,为了尽可能保持多源图像的特征,在小波分解的高频域内,选择图像邻域平均绝对值较大的系数作为融合小波重要系数;在小波分解的低频域内,选择对多源图像的低频系数进行加权平均作为融合小波近似系数。在反变换过程中,利用重要小波系数和近似小波系数作为输入进行小波反变换。在融合图像输出后,对其做进一步的处理。实验结果表明,基于小波变换的图像数据融合方法运行效率高,具有良好的融合效果,并可用于广泛的研究领域,具有一定的使用价值。
    根据融合的作用对象,图像融合一般可以分为3个层次:像素级图像融合、特征级图像融合和决策级图像融合。其中,像素级融合是作用于图像像素点最底层的融合,本章所研究的图像融合是像素级图像融合。

    1.2理论基础
    传统的直接像素算术平均进行图像融合的方法往往会造成融合结果对比度降低、可视化效果不理想等问题,为此研究人员提出了基于金字塔的图像融合方法,其中包括拉普拉斯金字塔、梯度金字塔等多分辨率融合方法。20世纪80年代中期发展起来的小波变换技术为图像融合提供了新的工具,小波分解的紧致性、对称性和正交性使其相对于金字塔分解具有更好的图像融合性能。此外,小波变换具有“数学显微镜”聚焦的功能,能实现时间域和频率域的步调统一,能对频率域进行正交分解,因此小波变换在图像处理中具有非常广泛的应用,已经被运用到图像处理的几乎所有分支,如图像融合、边缘检测、图像压缩、图像分割等领域。
    假设对一维连续小波w…(t)和连续小波变换W,(a,b)进行离散化,其中,a表示尺度参数, b表示平移参数, 在离散化过程中分别取a=a{和b=bf, 其中, jeZ, a, >1,则对应的离散小波函数如下:
    在这里插入图片描述
    离散化的小波变换系数如下:
    在这里插入图片描述
    小波重构公式如下:
    在这里插入图片描述
    式中,C为常数且与数据信号无关。根据对连续函数进行离散化逼近的步骤,如果选择的a, 和b, 越小, 则生成的网格节点就越密集, 所计算的离散小波函数wj x® 和离散小波系数Cj就越多,进而数据信号重构的精确度也越高。
    由于数字图像是二维矩阵,所以需要将一维信号的小波变换推广到二维信号。假设(x)是一个一维的尺度函数,p(x)是相应的小波函数,那么可以得到一个二维小波变换的基础函数:
    v’(x,y)=0(x)v(y)w(x,y)=y(x)(y)v(x,y)=V(x)w(y)
    由于数字图像是二维矩阵, 一般假设图像矩阵的大小为NxN, 且N=2"(n为非负整数),所以经一层小波变换后,原始图像便分解为4个分辨率为原来尺寸一的子带区域,如图11-1所示,分别包含了相应频带的小波系数,这一过程相当于在水平方向和垂直方向上进行隔点采样。
    在这里插入图片描述
    进行下一层小波变换时,变换数据集中在LL子带上。说明了图像小波变换的数学原型。
    (1)LL频带保持了原始图像的内容信息,图像的能量集中于此频带:
    在这里插入图片描述
    对图像进行小波变换的原理就是通过低通滤波器和高通滤波器对图像进行卷积滤波,再进行二取一的下抽样。因此,图像通过一层小波变换可以被分解为1个低频子带和3个高频子带。其中,低频子带LL;通过对图像水平方向和垂直方向均进行低通滤波得到;高频子带HL通过对图像水平方向高通滤波和垂直方向低通滤波得到;高频子带LH通过对图像水平方向低通滤波和垂直方向高通滤波得到:高频子带HH通过对图像水平方向高通滤波和垂直方向高通滤波得到。各子带的分辨率为原始图像的,同理,对图像进行二层小波变换时只对低频子带LL进行, 可以将LLi子带分解为LL 2、LH 2、HL 2和HH, 各子带的分辨率为原始图像的一。,以此类推可得到三层及更高层的小波变换结果。所以,进行
    一层小波变换得到4个子带,进行二层小波变换得到7个子带,进行x层分解就得到3·x+1个子带。如图11-2所示为三层小波变换后的系数分布。
    在这里插入图片描述

    三、部分源代码

    clear
    [imA,map1] = imread('A.tif');
    M1 = double(imA) / 256;
    [imB,map2] = imread('B.tif');
    M2 = double(imB) / 256;
    
    
    zt= 4; 
    wtype = 'haar';
    %    M1 - input image A
    %    M2 - input image B
    %    wtype使用的小波类型
    %    Y  - fused image   
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    %%
    %%  小波变换图像融合
    %%
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    %%   小波变换的绝对值大的小波系数,对应着显著的亮度变化,也就是图像中的显著特征。所以,选择绝对值大
    %%   的小波系数作为我们需要的小波系数。【注意,前面取的是绝对值大小,而不是实际数值大小】
    %%
    %%   低频部分系数采用二者求平均的方法
    %%
    %%
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    
    [c0,s0] = wavedec2(M1, zt, wtype);%多尺度二维小波分解
    
    [c1,s1] = wavedec2(M2, zt, wtype);%多尺度二维小波分解
    
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    %%  后面就可以进行取大进行处理。然后进行重构,得到一个图像
    %%  的小波系数,然后重构出总的图像效果。
    %%  取绝对值大的小波系数,作为融合后的小波系数
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    KK = size(c1);
    Coef_Fusion = zeros(1,KK(2));
    Temp = zeros(1,2);
    Coef_Fusion(1:s1(1,1)) = (c0(1:s1(1,1))+c1(1:s1(1,1)))/2;  %低频系数的处理
                         %这儿,连高频系数一起处理了,但是后面处理高频系数的时候,会将结果覆盖,所以没有关系
    
       %处理高频系数
        MM1 = c0(s1(1,1)+1:KK(2));
        MM2 = c1(s1(1,1)+1:KK(2));
        mm = (abs(MM1)) > (abs(MM2));
      	Y  = (mm.*MM1) + ((~mm).*MM2);
        Coef_Fusion(s1(1,1)+1:KK(2)) = Y;
        %处理高频系数end
    

    四、运行结果

    在这里插入图片描述

    五、matlab版本及参考文献

    1 matlab版本
    2014a

    2 参考文献
    [1] 蔡利梅.MATLAB图像处理——理论、算法与实例分析[M].清华大学出版社,2020.
    [2]杨丹,赵海滨,龙哲.MATLAB图像处理实例详解[M].清华大学出版社,2013.
    [3]周品.MATLAB图像处理与图形用户界面设计[M].清华大学出版社,2013.
    [4]刘成龙.精通MATLAB图像处理[M].清华大学出版社,2015.

    展开全文
  • MATLAB小波变换图像处理简单示例

    万次阅读 多人点赞 2019-12-20 12:00:40
      从傅里叶变换到短时傅里叶变换再到小波变换,这些分析问题的方法是一代一代人的探索和积累得来的宝贵知识财富。比较常见的还有脊波变换,曲波变换,轮廓波变换。感觉一种方法弄懂了,在以后很有可能会再次用到。...

    前言

      从傅里叶变换到短时傅里叶变换再到小波变换,这些分析问题的方法是一代一代人的探索和积累得来的宝贵知识财富。比较常见的还有脊波变换,曲波变换,轮廓波变换。感觉一种方法弄懂了,在以后很有可能会再次用到。就像这次,本来本科毕设已经用到了小波变换和轮廓波变换,但是自己并没有把它完全弄懂,结果这次课程作业还是要重新看。。。虽然这一次也还是没搞懂。。这里主要记录MATLAB小波包中的函数的用法而已,也只记录了二维离散小波在图像分解和重构上的应用,小波变换好多基本概念自己还是没理解。

    正题

    图1图1
      二维离散小波变换最常见的应该是上面的图了。首先要明白,进行小波分解后得到的是一个低频分量和3个高频分量。其中LL1代表低频分量,HL1、HH1和LH1代表高频分量,后面的1代表是第一级分解。也经常用A(低频分量)、H(水平方向高频分量)、V(垂直方向高频分量)、D(对角线方向高频分量)来表示。

    wavedec2(X,N,‘wname’)

    例:[c,s]=wavedec2(X,2,'haar');
      这个函数就是将一幅图像X分解成小波系数存入c中,其中N代表分解的级数,wname代表所用的小波基函数。s 记录了每一级分解时各个小波系数的size,如下图,size记录的其实就是最开始那个图上,HH1,HH2,HH3…的边长,也就是像素大小。s最后一行是原始图像的大小。
    在这里插入图片描述

    detcoef2(O,C,S,N)

    例:[H1,V1,D1] = detcoef2('all',c,s,1);
      将c里面的高频系数重组成矩阵形式,参数N代表对第N级的分解系数进行操作。此函数只能重组高频系数,H1为水平方向,V1为垂直方向,D1为对角线方向。

    appcoef2(C,S,‘wname’,N)

    例:A2 = appcoef2(c,s,'haar',2);
      将c里面的低频系数重组成矩阵形式,N代表第几级分解。

    wrcoef2(‘type’,C,S,‘wname’,N)

    例:X_A2 = wrcoef2('a',c,s,'sym5',1)
      通过第N级分解的低频系数或高频系数重构图像。其中type是代表选择的是系数A,V,H,D中的哪一个进行重构。

    X = waverec2(C,S,‘wname’)

    例:waverec2(c_Recon1,s,'haar')
      直接通过c里面的所有系数来重构图像,但这里一般会将c里面部分系数置0,然后再重构图像。如果不置0的话,不就相当于重构回来的就是原来一模一样的图像了吗。
    下面是一个简单的图像重构的程序,先看一下部分图像
    在这里插入图片描述在这里插入图片描述在这里插入图片描述下面是代码

    %% 小波分解与重构
    clear;clc;close all;
    X = imread('standard_lena.bmp');
    % figure,imshow(X);
    [c,s]=wavedec2(X,2,'haar');%对图像X进行4级小波分解,分解得到的系数存到c,s是记录各个级系数的size
    %其实感觉这里可以把排序,从大到小,当然是H,D,A,V各排各的。在重构时,丢系数时从后面往前丢。
    
    [H1,V1,D1] = detcoef2('all',c,s,1);%将c里面的系数重组成矩阵形式,参数1代表对第一级的分解系数进行操作。都是高频系数,代表边缘
    % A1 = appcoef2(c,s,'haar',1);%一级分解低频系数
    [H2,V2,D2] = detcoef2('all',c,s,2);%将c里面的系数重组成矩阵形式,参数1代表对第一级的分解系数进行操作。都是高频系数,代表边缘
    A2 = appcoef2(c,s,'haar',2);%二级分解低频系数
    
    X_A2 = wrcoef2('a',c,s,'sym5',1); %通过二级分解后的低频系数重构图
    X_H1 = wrcoef2('h',c,s,'sym5',1); 
    X_V1 = wrcoef2('v',c,s,'sym5',1); 
    X_D1 = wrcoef2('d',c,s,'sym5',1); 
    X_H2 = wrcoef2('h',c,s,'sym5',2); 
    X_V2 = wrcoef2('v',c,s,'sym5',2); 
    X_D2 = wrcoef2('d',c,s,'sym5',2); 
    
    %% 保存各级分解重构图片
    figure(1);imshow(X_A2,[]);saveas(1,'picture/lena_A2.bmp');
    figure(2);imshow(X_H1,[]);saveas(2,'picture/lena_H1.bmp');
    figure(3);imshow(X_V1,[]);saveas(3,'picture/lena_V1.bmp');
    figure(4);imshow(X_D1,[]);saveas(4,'picture/lena_D1.bmp');
    figure(5);imshow(X_H2,[]);saveas(5,'picture/lena_H2.bmp');
    figure(6);imshow(X_V2,[]);saveas(6,'picture/lena_V2.bmp');
    figure(7);imshow(X_D2,[]);saveas(7,'picture/lena_D2.bmp');
    %% 图像重构
    c_RemainPortion = 0.05;%保留字带的系数所占百分比
    c_end = s(1,1)^2+round((length(c)-  s(1,1)^2)*c_RemainPortion);%在将系数c的后面部分设为0时,要考虑c的最前面是低频分量,是不可以去掉的;
    c_Recon1 =zeros(1,length(c));
    c_Recon1(1:c_end) = c(1:c_end);
    X_Recon1 = uint8(waverec2(c_Recon1,s,'haar'));
    figure(8);imshow(X_Recon1,[]);title('保留系数5%');saveas(8,'picture/lena_Recon1.bmp');
    
    c_RemainPortion = 0.1;%保留字带的系数所占百分比
    c_end = s(1,1)^2+round((length(c)-  s(1,1)^2)*c_RemainPortion);%在将系数c的后面部分设为0时,要考虑c的最前面是低频分量,是不可以去掉的;
    c_Recon2 =zeros(1,length(c));
    c_Recon2(1:c_end) = c(1:c_end);
    X_Recon2 = uint8(waverec2(c_Recon2,s,'haar'));
    figure(9);imshow(X_Recon2,[]);title('保留系数10%');saveas(9,'picture/lena_Recon2.bmp');
    
    c_RemainPortion = 0.2;%保留字带的系数所占百分比
    c_end = s(1,1)^2+round((length(c)-  s(1,1)^2)*c_RemainPortion);%在将系数c的后面部分设为0时,要考虑c的最前面是低频分量,是不可以去掉的;
    c_Recon3 =zeros(1,length(c));
    c_Recon3(1:c_end) = c(1:c_end);
    figure(10);X_Recon3 = uint8(waverec2(c_Recon3,s,'haar'));
    figure(9);imshow(X_Recon3,[]);title('保留系数20%');saveas(9,'picture/lena_Recon3.bmp');
    
    %% 计算熵和信噪比
    entropy(X);
    entropy(X_Recon1)
    MSE1 = mean(mean(X-X_Recon1).^2);
    PSNR1 = 20*log10(double(255/MSE1))
    entropy(X_Recon2)
    MSE2 = mean(mean(X-X_Recon2).^2);
    PSNR2 = 20*log10(double(255/MSE2))
    entropy(X_Recon3)
    MSE3 = mean(mean(X-X_Recon3).^2);
    PSNR3 = 20*log10(double(255/MSE3))
    
    
    
    展开全文
  • 本文详细分析了小波变换图像融合的相关理论,将小波变换的多分辨率分析的特点与图像融合相结合,最后用MATLAB软件进行实验仿真。结果表明,融合后的图像更清晰,图像质量大大提高,这种方法具有很好的实用性。...
  • 【实例简介】基于小波变换图像融合的MATLAB实现的大致算法,以及算法原理,并附有简答代码,可供新人使用。基于小波变换图像融合今小波变换的待点和应用领域小波变换具备良好的时频特性,因此在信号分析和处理中...
  • 小波分析是一个比较难的分支,用户采用小波变换,可以实现图像压缩,振动信号的分解与重构等,因此在实际工程上应用较广泛。小波分析Fourier变换相比,小波变换是空间域和频率域的局部变换,因而能有效地从信号中...
  • 另一方面在HSV色彩空间,对V分量进行小波变换处理,将分解得到的低频子带采取双边滤波处理的方式,而对多个高频子带进行非线性变换处理方式,将处理过的低频子带和多个高频子带,利用小波逆变换进行重构.最后将两幅...
  • 使用Matlab软件中的小波变换工具箱编写小波变换程序,对原始图像进行了各种仿真,包括对图像进行分解重构、阈值处理、图像降噪和图像压缩等。利用小波变换,我们获得了不同效果的处理图像,加深了我们进一步理解小波...
  • 其中X为输入图像,wname为小波函数名称,例如haar,cA,cH,cV,cD分别为,一次小波变换的近似图像,水平方向细节,竖直方向细节,对角方向细节。 2、wavedec2函数 进行N次分解 [C,S]=wavedec2(X,N,Lo_D,Hi_D) ...
  • 基于MATLAB小波变换的的图像压缩摘要:小波包分析理论作为新的时频分析工具,在信号分析和处理中得到了很好的应用,它在信号处理、模式识别、图像分析、数据压缩、语音识别合成等等许多方面都取得了很有意义的研究...
  • 使用Matlab7.3开发的使用整数小波变换图像进行3级分解重构的程序,具有详细的实验报告,和演示结果截图,目录下包含程序中用到的图像等所有文件。
  • 小波变换图像去噪matlab实现.doc 基于小波图像去噪的MATLAB实现一、论文背景数字图像处理DIGITALIMAGEPROCESSING,DIP是指用计算机辅助技术对图像信号进行处理的过程。数字图像处理最早出现于20世纪50年代,随着过去...
  • 原理书上都有,我就上代码了clc;clear all;close all; % 清理工作空间clear;X=imread('fish.jpg');X=rgb2gray(X);...%对图像用小波进行层小波分解[c,s]=wavedec2(X,2,'bior3.7');%提取小波分解结...
  • 小波变换图像压缩方面的实现应用一、实验图片的基本信息二、数据处理过程2.1小波函数的选择2.2图像压缩的基本思想三、不同小波函数压缩程度的对比四、MATLAB源码 一、实验图片的基本信息 小波变换作为一种新的...
  • matlab小波变换代码

    2021-04-19 06:11:19
    clear;clc;T=256; %图像维数SUB_T=T/2; %子图维数%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1.调原始图像矩阵load wbarb%下载图像f=X; %原始图像%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%...
  • WAVELIFT:基于提升方法的多级离散二维小波变换。 c = wavelift(x, nlevel, wname) 根据nlevel 的值: nlevel > 0:将二维矩阵 x 分解为 nlevel 级别; nlevel < 0:做逆变换到nlevel level; nlevel = 0:设置c...
  • 摘要:多媒体通信是一个伴随着应用要求不断增长而迅速发展的领域。...其次,对离散小波变换的mallat算法和基于小波阈值的压缩方法进行分析比较,指出了这两种算法的优点和不足;再次,结合最佳比特分配策略,...
  • 求基于小波变换图像融合Matlab算法时间:2020-1-4求基于小波变换图像融合Matlab算法需要从C盘调取图像1.jpg和2.jpg进行基于小波变换图像融合,然后输出融合后的图像相关问题:匿名网友:clear % 清理工作空间load...
  • 小波变换图像去噪MATLAB实现

    千次阅读 2021-08-31 12:00:39
    第4章 医学图像小波去噪的MATLAB实现4.1 小波基的确定不同的小波基具有不同的时频特征,用不同的小波基分析同一个问题会产生不同的结果,故小波分析在应用中便存在一个小波基或小波函数的选取和优化问题。...
  • 1974年,法国工程师J.Morlet首先提出小波变换的概念,1986年著名数学家Y.Meyer偶然构造出一个真正的小波基,并S.Mallat合作建立了构造小波基的多尺度分析之后,小波分析才开始蓬勃发展起来。小波分析的应用领域...
  • 小波变换实现图像压缩 代码 X=imread('a5.jpg'); X=rgb2gray(X); subplot(221); imshow(X); title('原始图像'); %对图像用小波进行层小波分解 [c,s]=wavedec2(X,2,'haar'); %提取小波分解结构中的一层的低频系数和...
  • 小波变换的原理所谓的小波的小是针对傅里叶波而言,傅里叶波指的是在时域空间无穷震荡的正弦(或余弦波)。相对而言,小波指的是一种能量在时域非常集中的波,它的能量有限,都集中在某一点附近,而且积分的值为零,这...
  • 小波变换的目的就是将图像从时域变换到频域,变换之后的图像具备某些鲜明的特点可以用于图像融合。这就是小波变换最简单的运用原理。 小波分解和小波重构 function wave=wtfusion(x1,x2,N,2name) x1=double(x1);x2=...
  • 小波变换是在短时傅里叶变换的基础上发展起来的一种新型变换方法,他是一种时—...小波变换由于具有很好的时—频特性而且可以匹配人类视觉系统的特性,因而得到图像压缩编码领域的极大关注。小波分析在图像领域的应...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,053
精华内容 421
关键字:

matlab小波变换图像分解与重构

matlab 订阅