小波的秘密2_MATLAB图像多尺度分析
生活随笔
收集整理的這篇文章主要介紹了
小波的秘密2_MATLAB图像多尺度分析
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1.MATLAB程序編寫步驟
1.把小波w(t)和原函數(shù)f(t)的開始部分進(jìn)行比較,計算系數(shù)C。系數(shù)C表示該部分函數(shù)與小波的相似程度。2.把小波向右移k單位,得到小波w(t-k),重復(fù)1。重復(fù)該部知道函數(shù)f結(jié)束.
3.擴(kuò)展小波w(t),得到小波w(t/2),重復(fù)步驟1,2.
4.不斷擴(kuò)展小波,重復(fù)1,2,3.
這里使用的haar小波,縮放函數(shù)是[1 1],小波函數(shù)是[1 -1],是最簡單的小波了。
2.MATLAB源代碼及分析
clear all;close all;clc; img=double(imread('Ziheng.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/2for 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) function [LL,LH,HL,HH]=haar_dwt2D(img)[m,n]=size(img);for i=1:m %每一行進(jìn)行分解[L,H]=haar_dwt(img(i,:));img(i,:)=[L H];endfor j=1:n %每一列進(jìn)行分解[L,H]=haar_dwt(img(:,j));img(:,j)=[L H];end%本來分解不應(yīng)該加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:nL(i)=(f(2*i-1)+f(2*i))/sqrt(2);H(i)=(f(2*i-1)-f(2*i))/sqrt(2);end3.實(shí)驗(yàn)結(jié)果分析
? ? ? ? ? ? ? ? ? ? ??總結(jié)
以上是生活随笔為你收集整理的小波的秘密2_MATLAB图像多尺度分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Windows Mobile 数独游戏及
- 下一篇: XEIM 配置程序源代码