zoukankan      html  css  js  c++  java
  • paper 42 :图像的小波变换

    关于小波变换我只是有一个很朴素了理解。不过小波变换可以和傅里叶变换结合起来理解。

    傅里叶变换是用一系列不同频率的正余弦函数去分解原函数,变换后得到是原函数在正余弦不同频率下的系数。

    小波变换使用一系列的不同尺度的小波去分解原函数,变换后得到的是原函数在不同尺度小波下的系数。

    不同的小波通过平移与尺度变换分解,平移是为了得到原函数的时间特性,尺度变换是为了得到原函数的频率特性。

    小波变换步骤:

    1.把小波w(t)和原函数f(t)的开始部分进行比较,计算系数C。系数C表示该部分函数与小波的相似程度。

    2.把小波向右移k单位,得到小波w(t-k),重复1。重复该部知道函数f结束.

    3.扩展小波w(t),得到小波w(t/2),重复步骤1,2.

    4.不断扩展小波,重复1,2,3.

    我这里使用的haar小波,缩放函数是[1 1],小波函数是[1 -1]。是最简单的小波了。

    先看看分解的效果,这次我选用了大图:

     

    尺度为2的全分解小波包:

    下面是matlab代码:

    main.m

    clear all;
    close all;
    clc;

    img=double(imread('Lena (2).jpg'));
    [m n]=size(img);

    [LL LH HL HH]=haar_dwt2D(img); %当然dwt2(img,'haar')是一样的,我只是想明白细节
    img=[LL LH;HL HH]; %一层分解

    imgn=zeros(m,n);
    for i=0:m/2:m/2
    for j=0:n/2:n/2
    [LL LH HL HH]=haar_dwt2D(img(i+1:i+m/2,j+1:j+n/2)); %对一层分解后的四个图像分别再分解
    imgn(i+1:i+m/2,j+1:j+n/2)=[LL LH;HL HH];
    end
    end

    imshow(imgn)

    haar_dwt2D.m

    function [LL LH HL HH]=haar_dwt2D(img)
    [m n]=size(img);
    for i=1:m %每一行进行分解
    [L H]=haar_dwt(img(i,:));
    img(i,:)=[L H];
    end
    for j=1:n %每一列进行分解
    [L H]=haar_dwt(img(:,j));
    img(:,j)=[L H];
    end
    %本来分解不应该加mat2gray的,不过为了有好的显示效果就加上了
    LL=mat2gray(img(1:m/2,1:n/2)); %行列都是低频
    LH=mat2gray(img(1:m/2,n/2+1:n)); %行低频列高频
    HL=mat2gray(img(m/2+1:m,1:n/2)); %行高频列低频
    HH=mat2gray(img(m/2+1:m,n/2+1:n)); %行列都是高频

    end

    haar_dwt.m

    function [L H]=haar_dwt(f)  %显然,我没有做边界处理,图片最好是2^n*2^n型的
    n=length(f);
    n=n/2;
    L=zeros(1,n); %低频分量
    H=zeros(1,n); %高频分量
    for i=1:n
    L(i)=(f(2*i-1)+f(2*i))/sqrt(2);
    H(i)=(f(2*i-1)-f(2*i))/sqrt(2);
    end

    end

    参考来源:

    http://amath.colorado.edu/courses/5720/2000Spr/Labs/Haar/haar.html

    http://www.cs.ucf.edu/~mali/haar/

    http://wenku.baidu.com/view/7839b821aaea998fcc220eed.html

  • 相关阅读:
    evernote100个做笔记的好方法
    平衡二叉树的调整模版
    晨间日记的奇迹
    hdu 2952 Counting Sheep
    hdu 1535 Invitation Cards
    poj 3259 Wormholes(spfa)
    poj 2263 Heavy Cargo(floyd)
    poj 3268 Silver Cow Party(SPFA)
    hdu 1690 Bus System
    hdu 3631 Shortest Path(Floyd)
  • 原文地址:https://www.cnblogs.com/molakejin/p/5279491.html
Copyright © 2011-2022 走看看