精华内容
下载资源
问答
  • 图像小波分解

    2011-12-01 10:48:19
    图像处理,用小波进行层小波分解。很不错,推荐一下!~
  • VC_图像小波分解.rar

    2008-12-20 12:08:20
    VC_图像小波分解.rar 用小波分解处理图象的
  • C多级图像小波分解

    2012-06-10 10:25:47
    用C语言对图像进行小波分解和重建,小波滤波器参数可从matlab或其他途径获取,此例中滤波器长度为偶,因此无法避免延迟,可在重建处进行补偿
  • 老师布置的作业,对自己的自拍照进行二级小波重构与分解,并且对图像加高斯噪声、去燥
  • 对灰度图像进行小波分解,再对分解后的图像进行分块,提出低频信息,对图像的识别率有所提高。
  • 图像进行小波分解得到低频与高频图像........................
  • 基于OPENCV的图像小波分解

    热门讨论 2010-01-08 10:17:17
    利用OPENCV对输入的图像进行一层小波分解,采用第二代的小波变换,用的是S小波。
  • 图像小波分解与重构

    万次阅读 2017-05-03 22:57:43
     所谓的小波的小是针对傅里叶波而言,傅里叶波指的是在时域空间无穷震荡的正弦(或余弦波)。  相对而言,小波指的是一种能量在时域非常集中的波,它的能量有限,都集中在某一点附近,而且积分的值为零,这说明它...
    小波变换原理  

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

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


    可以看到,能量集中在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)重构:用处理后的系数重构信号。

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

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

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

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

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

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









    展开全文
  • 最近需要做小波分解相关的东西,博客这里做一个简单的记录 灰度图的小波分解与重构: from PIL import Image import matplotlib.pyplot as plt from matplotlib.pyplot import imshow import numpy as np # 小波库 ...

    最近需要做小波分解相关的东西,博客这里做一个简单的记录
    灰度图的小波分解与重构:

    from PIL import Image
    import matplotlib.pyplot as plt
    from matplotlib.pyplot import imshow
    import numpy as np
    # 小波库
    import pywt
    import cv2
    
    # 读取图像并转化为灰度图
    im = cv2.imread('LenaRGB.bmp')
    im = cv2.resize(im, (256, 256))
    img = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY).astype(np.float32)
    
    # 对图像进行小波分解
    coeffs = pywt.dwt2(img, 'bior1.3')
    LL, (LH, HL, HH) = coeffs
    
    # 查看分解结果
    plt.subplot(221), plt.imshow(LL, 'gray'), plt.title("LL")
    plt.subplot(222), plt.imshow(LH, 'gray'), plt.title("LH")
    plt.subplot(223), plt.imshow(HL, 'gray'), plt.title("HL")
    plt.subplot(224), plt.imshow(HH, 'gray'), plt.title("HH")
    plt.show()
    

    结果如下:
    在这里插入图片描述

    对图像进行小波重构

    	# 很简单,直接拿轮子来用
    	img_r = pywt.idwt2(coeffs, "bior1.3")
    	plt.imshow(img_r, 'gray')
    

    结果如下:
    在这里插入图片描述

    灰度图加指定半径噪声

    # 原灰度图除255,调轮子,再乘255就完事了
    # 非灰度图不需要这个操作,直接调random_noise就好
    def imnoise(img, sigma):
        return skimage.util.random_noise(img / 255, mode='gaussian', seed=None, var=(sigma/255.0)**2) * 255
    

    调用后的结果如下,这是半径为25的结果:
    在这里插入图片描述

    展开全文
  • 图像小波分解示意图

    千次阅读 2016-12-06 16:00:31
    fig = figure('NumberTitle', 'off', 'name', 'Happy'); hold on; LineWidth = 2; FontSize = 18; MarkerSize = 3;...plot([0 0 8 8 0], [0 8 8 0 0], 'k', 'LineWidth', LineWidth);...plot([4 4
    fig = figure('NumberTitle', 'off', 'name', 'Happy');    
    hold on;
    
    LineWidth = 2;    
    FontSize = 18;    
    MarkerSize = 3;    
        
    plot([0 0 8 8 0], [0 8 8 0 0], 'k', 'LineWidth', LineWidth);
    plot([4 4], [0 8], 'k', 'LineWidth', LineWidth); 
    plot([0 8], [4 4], 'k', 'LineWidth', LineWidth);
    plot([2 2], [4 8], 'k', 'LineWidth', LineWidth); 
    plot([0 4], [6 6], 'k', 'LineWidth', LineWidth);
        
    text(1, 7, 'A', 'FontSize', FontSize, 'FontWeight', 'bold', 'HorizontalAlignment', 'center');    
    for i = 0 : 1
        text(3+i*3, 7-i, ['H' num2str(i+1)], 'FontSize', FontSize, 'FontWeight', 'bold', 'HorizontalAlignment', 'center');    
        text(1+i, 5-i*3, ['V' num2str(i+1)], 'FontSize', FontSize, 'FontWeight', 'bold', 'HorizontalAlignment', 'center');    
        text(3+i*3, 5-i*3, ['D' num2str(i+1)], 'FontSize', FontSize, 'FontWeight', 'bold', 'HorizontalAlignment', 'center');    
    end    
    
    axis equal;    
    axis off; 

    展开全文
  • 真彩色图像小波分解

    千次阅读 2014-05-29 16:03:30
    clc;clear; a=imread('mm.jpg'); figure,imshow(a); map=colormap; nbcol=size(map,1); R=double(a(:,:,1)); % 真彩色图像的三个分量转换成double 格式 G=double(a(:,:,2));... % 选取的小波 t1=[];
    clc;clear;
    a=imread('mm.jpg');
    figure,imshow(a);
    map=colormap;
    nbcol=size(map,1);
    
    R=double(a(:,:,1)); % 真彩色图像的三个分量转换成double 格式
    G=double(a(:,:,2));
    B=double(a(:,:,3));
    tic;
    wname='db1'; % 选取的小波
    t1=[];
    n=2;
    [c_R,s_R]=wavedec2(R,n,wname);   %对图像的三个分量,分别进行二维小波多级分解
    [c_G,s_G]=wavedec2(G,n,wname);
    [c_B,s_B]=wavedec2(B,n,wname);
    for i=1:n
        ca_R=appcoef2(c_R,s_R,wname,i);%提取近似系数
        ca_G=appcoef2(c_G,s_G,wname,i);
        ca_B=appcoef2(c_B,s_B,wname,i);
        ca_R=mat2gray(ca_R);% 归一化
        ca_G=mat2gray(ca_G);
        ca_B=mat2gray(ca_B);
        Y=cat(3,ca_R,ca_G,ca_B);
        figure,imshow(Y);
        t1(end+1)=toc;
    end
    
    % 或者用dwt2 函数进行一步分解
    % [ca_R,ch_R,cv_R,cd_R]=dwt2(R,wname);   % [c,s]=wavedec2(R,1,wname);
    % [ca_G,ch_G,cv_G,cd_G]=dwt2(G,wname);
    % [ca_B,ch_B,cv_B,cd_B]=dwt2(B,wname);
    % ca_R=mat2gray(ca_R);
    % ca_G=mat2gray(ca_G);
    % ca_B=mat2gray(ca_B);
    % Y=cat(3,ca_R,ca_G,ca_B);
    % figure,imshow(Y);
    % t1(end+1)=toc;
    
    t2=[];
    tic;
    for n=1:2
    
    f1(:,:,1)=haarcolor(R,n);
    f1(:,:,2)=haarcolor(G,n);
    f1(:,:,3)=haarcolor(B,n);
    figure,imshow(f1);
    clear f1;
    t2(end+1)=toc;
    end
    t=t1./t2;
    function f1=haarcolor(f,n)
            % n=1,2,3,4 n次分解   
            % f 为 输入的图片矩阵
            P=size(f);
            G=[];
            k=2^n;   
            T1 = haar_kron(k);  % 计算haar 矩阵
            if mod(P(1),k)|| mod(P(2),k)    %  如果矩阵维度不为k 的倍数,则填充零到k 的倍数
               G1=zeros((fix(P(1)/k)+1)*k,(fix(P(2)/k)+1)*k);
               G1(1:P(1),1:P(2))=f;
            else     % 如果矩阵维度为k 的倍数
                G1=f; 
            end
            for i=1:size(G1,1)/k
                for j=1:size(G1,2)/k
                x1=(i-1)*k;
                x2=(j-1)*k;
                TT=T1*G1(x1+1:x1+k,x2+1:x2+k)*T1'; % 把图像分成很多小子块,对每一块 A 进行haar 矩阵变换  Y=T*A*T'
                % haar 反变换 为 A=T'*Y*T
                G(x1+1:x1+k,x2+1:x2+k)=TT;
                end
            end
            f1=G(1:k:end,1:k:end);  %取近似 
            f1=mat2gray(f1);      % 矩阵归一化
    
    end



    第一张图片:为原图截图大小603KB ;第二张图片为提取的一级近似截图大小为168KB; 第三张为二级近似大小为44KB

    haarcolor 函数为自己所写,效率不高,原因:

    1、在于对一小块进行haar 变换,而且图片还进行了填充,matlab 本来就对循环较慢,如果用其他语言改写的话,效率必定会大大提升;

    2、计算haar 矩阵时可以把计算好的haar矩阵直接放进去,不用每次都计算

    3、还有就是,如果对f进行多级分解时,n为1 时,f1=haarcolor(f,n) ;n为2时,f2=haarcolor(f,2),这里非常费时f2还可以用f2=haarcolor(f1,1) 计算 这样时间就可以节省下来

    另外:这里用haarcolor  函数分解的图片和用wavedec2 分解  appcoef2 函数提取近似的最后结果维度上稍有差别 ,原因在于matlab中的函数使用了wkeep 函数对卷积计算的结果进行了截断

    经测试:改进后的haarcolor 和用上一次分解得到的近似图片,做为下一次分解的图片,第二次分解效率会显著提升。

    初步应用想法:网络头像,以前的头像是截取一部分,在这里我们提取头像的二级或三 四级近似,存储,显示。

    展开全文
  • 我对一幅图进行三层小波分解,然后对其中的高频系数与低频系数进行了处理,我想利用新得到的这些系数矩阵重构出和原图像大小相同的图像,该怎么做? [C,S]=wavedec2(X,3,'db1'); %对图像三级分解 ca1 = appcoef2...
  • of course,小波系数本质是小波基与信号的内积,不管DWT用了滤波器组卷积来实现计算,数学本质还是内积,信号中与小波基相似的部分内积“正大”,与其越不相似的越“负小”。高频系数是细节,受小波函数的数学性质...
  • 图像小波分解

    2016-09-28 20:38:12
    图像小波分解
  • 图像处理小波分解

    2014-07-18 17:55:41
    matlab 小波分解 图像处理 阶数可调 源程序
  • 该算法根据图像小波分解的低频部分计算出相应的对比度信息,以实现自适应分层,然后依据分层的结果确定自适应增强函数,最后达到不同程度的增强效果。通过实际的实验表明,所提出的基于小波分解的分层自适应增强算法...
  • 小波图像分解

    2016-05-24 20:23:26
    小波图像分解
  • 用db2小波对lena图像进行一层小波分解
  • 对灰度图像进行小波分解,比如人耳、人脸等的图像,用matlab语言实现
  • 能够实现图像的三级小波分解与重构
  • 通过实验体会整数小波变换,由于MATLAB自身对矩阵操作的方便性,以及其丰富...要说明的是,这里并不是直接利用MATLAB中的wavelet工具箱中的已有小波函数对图象进行整数小波分解,而是用下面的已知分解公式进行小波分解
  • 给出一种寻找信号和图像的最佳小波分解方法.对正交小波、对称正交小波、双正交和对称双正交小波4种情形进行了讨论.结果表明,此方法可以提高压缩图像的信噪比和压缩比.
  • 基于DSP 的语音与图像小波分解与重构,基于DSP 的语音与图像小波分解与重构
  • 二维图像小波分解与重构,并画图显示。通过多分辨率分析实现。
  • 此程序是利用小波图像进行5级分解,单尺度分解
  • 小波分解图像应用

    千次阅读 2013-03-28 18:12:10
    最近学习了一段小波,对小波函数在信号处理中得应用有了大概的了解,对信号进行小波分解,主要过程就是求平均和细节,设{x1,x2}表示一个两元素的信号,a=(x1+x2)/2;d=(x1-x2)/2,二元素组{a,d}可表示原信号,...

空空如也

空空如也

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

图像小波分解