www.gusucode.com > wavelet 源码程序 matlab案例代码 > wavelet/TwoDimensionalCWTOfNoisyPatternExample.m

    %% Two-Dimensional CWT of Noisy Pattern
% This example shows how to detect a pattern in a noisy image using the 2-D
% CWT. The example uses both isotropic (non-directional) and anisotropic 
% (directional) wavelets. The isotropic wavelet is not sensitive to the 
% orientation of the feature, while the directional wavelet is.
%%
% Use the isotropic (non-directional) Mexican hat wavelet, also known as  
% the Ricker wavelet, and the anisotropic (directional) Morlet wavelet. 
% Demonstrate that the real-valued Mexican hat wavelet does not depend on
% the angle.
Y = zeros(32,32);
Y(16,16) = 1;
cwtmexh = cwtft2(Y,'wavelet','mexh','scales',1,...
    'angles',[0 pi/2]);
surf(real(cwtmexh.cfs(:,:,1,1,1)));
shading interp; title('Angle = 0 Radians');
%%
% Extract the wavelet corresponding to an angle of $\pi$/2 radians. The 
% wavelet is isotropic and therefore does not differentiate oriented 
% features in data.
surf(real(cwtmexh.cfs(:,:,1,1,2)));
shading interp; title('Angle = pi/2 Radians');
%%
% Repeat the preceding steps for the complex-valued Morlet wavelet. The 
% Morlet wavelet has a larger spatial support than the Mexican hat wavelet,
% therefore this example uses a larger matrix. The wavelet is 
% complex-valued, so the modulus is plotted.
Y = zeros(64,64);
Y(32,32) = 1;
cwtmorl = cwtft2(Y,'wavelet','morl','scales',1,...
    'angles',[0 pi/2]);
surf(abs(cwtmorl.cfs(:,:,1,1,1)));
shading interp; title('Angle = 0 Radians');
%%
% Extract the wavelet corresponding to an angle of $\pi$/2 radians. Unlike 
% the Mexican hat wavelet, the Morlet wavelet is not isotropic and 
% therefore is sensitive to the direction of features in the data.
surf(abs(cwtmorl.cfs(:,:,1,1,2)));
shading interp; title('Angle = pi/2 Radians');
%%
% Apply the Mexican hat and Morlet wavelets to the detection of a pattern 
% in noise. Create a pattern consisting of line segments joined at a 
% 90-degree angle. The amplitude of the pattern is 3 and it occurs in 
% additive N(0,1) white Gaussian noise.
X = zeros(256,256);
X(100:200,100:102) = 3;
X(200:202,100:125) = 3;
X = X+randn(size(X));
imagesc(X); axis xy;
%%
% Obtain the 2-D CWT at scales 3 to 8 in 0.5 increments with the Mexican 
% hat wavelet. Visualize the magnitude-squared 2-D wavelet coefficients at 
% scale 3. 
cwtmexh = cwtft2(X,'wavelet','mexh','scales',3:0.5:8);
surf(abs(cwtmexh.cfs(:,:,1,3,1)).^2);
view(0,90); shading interp; axis tight;
%% 
% Use a directional Morlet wavelet to extract the vertical and horizontal 
% line segments separately.  The vertical line segment is extracted by one 
% angle. The horizontal line segment is extracted by another angle.
cwtmorl = cwtft2(X,'wavelet','morl','scales',3:0.5:8,...
    'angles',[0 pi/2]);
surf(abs(cwtmorl.cfs(:,:,1,4,1)).^2);
view(0,90); shading interp; axis tight;
figure;
surf(abs(cwtmorl.cfs(:,:,1,4,2)).^2);
view(0,90); shading interp; axis tight;