[x,map]=imread('MUCS_新建文件夾_32603.ptl_208.bmp');
subplot(1,2,1);
imshow(x);
[c,s]=wavedec2(x,3,'sym4');
Csize=size(c);
for i=1:Csize(2)
if(c(i)>100) %低頻分量----s中第一維的長度
c(i)=1*c(i);
else
c(i)=0.9*c(i); %高頻分量
end
end
x1=waverec2(c,s,'sym4');
im=uint8(x1);
subplot(1,2,2);
imshow(im);
[c,s]=wavedec2(X,2,'bior3.7');%對圖像用小波進行層分解
cal=appcoef2(c,s,'bior3.7',1);%提取小波分解結構中的一層的低頻系數(shù)和高頻系數(shù)
ch1=detcoef2('h',c,s,1);%水平方向
cv1=detcoef2('v',c,s,1);%垂直方向
cd1=detcoef2('d',c,s,1);%斜線方向
a1=wrcoef2('a',c,s,'bior3.7',1);%各頻率成份重構
[c,s]=wavedec2(X,1,'sym4');
a1=appcoef2(c,s,'sym4',1);%小波分解結構中的一層的低頻系數(shù),下面是3個高頻系數(shù)
a1=2*a1;
h1=detcoef2('h',c,s,1);
v1=detcoef2('v',c,s,1);
d1=detcoef2('d',c,s,1);
h1=0.5*h1;
v1=0.5*v1;
d1=0.5*d1;
y=idwt2(a1,h1,v1,d1,'sym4');
load wbarb;
X1=X;map1=map;
subplot(2,2,1);
image(X1);colormap(map1);
title('圖像wbarb');
load woman;
X2=X;map2=map;
subplot(2,2,2);
image(X2);colormap(map2);
title('圖像woman');
%=====================================
%對上述二圖像進行分解
[c1,l1]=wavedec2(X1,2,'sym4');
[c2,l2]=wavedec2(X2,2,'sym4');
%對分解系數(shù)進行融合
c=c1+c2;
%=====================================
%應用融合系數(shù)進行圖像重構并顯示
XX=waverec2(c,l1,'sym4');
subplot(2,2,3);
image(XX);
title('融合圖像1');
Csize1=size(c1);
%=====================================
%對圖像進行增強處理
for i=1:Csize1(2)
c1(i)=1.2*c1(i);
end
Csize2=size(c2);
for j=1:Csize2(2)
c2(j)=0.8*c2(j);
end
%=====================================
%通過減小融合系數(shù)以減小圖像的亮度
c=0.5*(c1+c2);
%=====================================
%對融合系數(shù)進行圖像重構
XXX=waverec2(c,l2,'sym4');
%=====================================
%顯示重構結果
subplot(2,2,4);
image(XXX);
title('融合圖像2');
%本程序實現(xiàn)下述功能:首先讀入原始圖像,并對它使用db3小波進行2層分解,%然后對分解系數(shù)進行處理突出所需,弱化不需要的部分%裝載并顯示原始圖像
clear all;clc;load flujet;subplot(1,2,1);image(X);colormap(map);title('原始圖像');%=====================================%對圖像X用小波db3進行2層分解[c,l]=wavedec2(X,2,'db3');Csize=size(c);%=====================================%對分解系數(shù)作處理以突出所需部分并弱化不需要部分for i=1:Csize(2)if(c(i)>300) %低頻分量c(i)=2*c(i);elsec(i)=0.5*c(i); %高頻分量endend%=====================================%重構圖像并顯示X1=waverec2(c,l,'db3');subplot(1,2,2);image(X1);colormap(map);title('增強圖像');
[c,s]=wavedec2(x,2,'sym4');
Csize=size(c);
for i=1:Csize(2)
if(c(i)>169) %低頻分量----s中第一維的長度
c(i)=2*c(i);
else
c(i)=0.3*c(i); %高頻分量
end
end
x1=waverec2(c,s,'sym4');
im=uint8(x1);
imshow(im);
二維小波變換的 Matlab 實現(xiàn)
y j v z w %o u n\ { K*Y
二維小波變換的函數(shù)
a r T Q3Y r -------------------------------------------------
5B Y0x!Z9a9] 函數(shù)名 函數(shù)功能
h$H9q ` \ ---------------------------------------------------'d3d t B e'x6g
dwt2 二維離散小波變換
!t2B!I9L5S;q:r X wavedec2 二維信號的多層小波分解
!D o4B @2U Y,o!H#M l idwt2 二維離散小波反變換
o l!R H N_ G4M waverec2 二維信號的多層小波重構 z H!f6~)}-P _
wrcoef2 由多層小波分解重構某一層的分解信號0E,\ |.o | D T2@2b2K$U
upcoef2 由多層小波分解重構近似分量或細節(jié)分量
*^ Y4? T3R x(k3v detcoef2 提取二維信號小波分解的細節(jié)分量
2~ U W L8V appcoef2 提取二維信號小波分解的近似分量
0q l N7p a @ i Y C ] c b upwlev2 二維小波分解的單層重構
2y W_ ] h-i~ m(~ dwtpet2 二維周期小波變換4Y/a N&G q ] E B"H)W
idwtper2 二維周期小波反變換
7h"| Iv e -------------------------------------------------------------9O d7D ` b y
&lX { I g u s I `
(1) wcodemat 函數(shù)
` T f ?-[ c*e$M c d 功能:對數(shù)據(jù)矩陣進行偽彩色編碼
|4X C i5R$x6g 格式:Y=wcodemat(X,NB,OPT,ABSOL)'k#e C a I%H
Y=wcodemat(X,NB,OPT) i)E)p _!O-k j J ^
Y=wcodemat(X,NB)
A2z,q D'u'z*_.~/U Y=wcodemat(X)
Z5D"^ e5i |L'^4` 說明:Y=wcodemat(X,NB,OPT,ABSOL) 返回數(shù)據(jù)矩陣 X 的編碼矩陣 Y ;NB 偽編碼的最大值,即編碼范圍為 0~NB,缺省值 NB=16;
@ N6C Y p Y E OPT 指定了編碼的方式(缺省值為 'mat'),即: r(o ? L j(y e f N
OPT='row' ,按行編碼
-y q i H { o5e OPT='col' ,按列編碼
8X N*\.Z/c @ OPT='mat' ,按整個矩陣編碼
e j!l W b L ABSOL 是函數(shù)的控制參數(shù)(缺省值為 '1'),即: i x"^:| ~5{
ABSOL=0 時,返回編碼矩陣
2z x;^ l$q | _ Z ABSOL=1 時,返回數(shù)據(jù)矩陣的絕對值 ABS(X)
V l U1e r g3x'O%I
9z&c,A ]!T%y d s \.s (2) dwt2 函數(shù) D J ~0D/m S:O S"I
功能:二維離散小波變換 B c t _)h O X I
格式:[cA,cH,cV,cD]=dwt2(X,'wname')3A N _ W F
[cA,cH,cV,cD]=dwt2(X,Lo_D,Hi_D)
m(E j"[ _ @ 說明:[cA,cH,cV,cD]=dwt2(X,'wname')使用指定的小波基函數(shù) 'wname' 對二維信號 X 進行二維離散小波變幻;cA,cH,cV,cD 分別為近似分
.g(R @ E E Y'n 量、水平細節(jié)分量、垂直細節(jié)分量和對角細節(jié)分量;[cA,cH,cV,cD]=dwt2(X,Lo_D,Hi_D) 使用指定的分解低通和高通濾波器 Lo_D 和 Hi_D 分
j4F2} ~ Q e W 解信號 X 。$K v*S X2^
8G Q7? M _ d B(g"d
(3) wavedec2 函數(shù)
8y,x)u Q T N 功能:二維信號的多層小波分解 H F S)b p$G:i
格式:[C,S]=wavedec2(X,N,'wname')
+}+C M9i.p [C,S]=wavedec2(X,N,Lo_D,Hi_D)
U;| I h0\ J ^ } | 說明:[C,S]=wavedec2(X,N,'wname') 使用小波基函數(shù) 'wname' 對二維信號 X 進行 N 層分解;[C,S]=wavedec2(X,N,Lo_D,Hi_D) 使用指定
V.Y&@ i f G9c9t+G2V 的分解低通和高通濾波器 Lo_D 和 Hi_D 分解信號 X 。7Y j ~ q5a H S4e1r
W8f#`9D7m2l (4) idwt2 函數(shù)
_ L g-O2d p 功能:二維離散小波反變換
6t s t7q4a)b J |0U2G 格式:X=idwt2(cA,cH,cV,cD,'wname')
I O,q'Q W y X=idwt2(cA,cH,cV,cD,Lo_R,Hi_R)
;r"? f#p P Y o F X=idwt2(cA,cH,cV,cD,'wname',S)
$Y,\ w-o P b(L2\;U X=idwt2(cA,cH,cV,cD,Lo_R,Hi_R,S)
\ V Q b ~4A G } n Q 說明:X=idwt2(cA,cH,cV,cD,'wname') 由信號小波分解的近似信號 cA 和細節(jié)信號 cH、cH、cV、cD 經(jīng)小波反變換重構原信號 X
M X n c-O ? [!y5{ E ;X=idwt2(cA,cH,cV,cD,Lo_R,Hi_R) 使用指定的重構低通和高通濾波器 Lo_R 和 Hi_R 重構原信號 X ;X=idwt2(cA,cH,cV,cD,'wname',S)'z6Z e x;o
和 X=idwt2(cA,cH,cV,cD,Lo_R,Hi_R,S) 返回中心附近的 S 個數(shù)據(jù)點。
%d1D6g6j1p W3t x"m W g ?
(~;B R8} X ` (5) waverec2 函數(shù)
A A%U:y0x r 說明:二維信號的多層小波重構
$b+z/o Y ^)~ \ 格式:X=waverec2(C,S,'wname')
F s v8e j\$L#V o X=waverec2(C,S,Lo_R,Hi_R)
U:o!b t X5b b 說明:X=waverec2(C,S,'wname') 由多層二維小波分解的結果 C、S 重構原始信號 X ,'wname'
.v4G9i e _6l W(Z/T 為使用的小波基函數(shù);X=waverec2(C,S,Lo_R,Hi_R) 使用重構低通和高通濾波器 Lo_R 和 Hi_R 重構原信號。 s)A ?*n i ?+G