В этом примере показано, как обнаружить шаблон в шумном изображении с использованием 2-D непрерывного вейвлет-преобразования (CWT). В примере используются как изотропные (ненаправленные), так и анизотропные (направленные) вейвлеты. Изотропный вейвлет не чувствителен к ориентации признака, в то время как направленный вейвлет является.
Используйте изотропный (ненаправленный) мексиканский шляпный вейвлет, также известный как вейвлет Рикера, и анизотропный (направленный) вейвлет Морле. Продемонстрируйте, что действительное значение Mexican hat vullet не зависит от угла.
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');

Извлеките вейвлет, соответствующий углу δ/2 радиан. Вейвлет изотропен и поэтому не дифференцирует ориентированные признаки в данных.
surf(real(cwtmexh.cfs(:,:,1,1,2))); shading interp; title('Angle = pi/2 Radians');

Повторите предыдущие шаги для комплексного вейвлета Морле. Вейвлет Морле имеет большую пространственную поддержку, чем мексиканский хэт-вейвлет, поэтому в этом примере используется большая матрица. Вейвлет является комплекснозначным, поэтому модуль наносится на график.
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');

Извлеките вейвлет, соответствующий углу δ/2 радиан. В отличие от мексиканского шляпного вейвлета, морлетовский вейвлет не является изотропным и поэтому чувствителен к направлению признаков в данных.
surf(abs(cwtmorl.cfs(:,:,1,1,2))); shading interp; title('Angle = pi/2 Radians');

Применить Mexican hat и Morlet вейвлеты для обнаружения шаблона в шуме. Создайте массив, состоящий из отрезков, соединенных под углом 90 градусов. Амплитуда рисунка равна 3, и он встречается в аддитивном N (0,1) белом гауссовом шуме.
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;
Получить 2-D CWT на шкалах от 3 до 8 с шагом 0,5 с помощью Mexican hat wevelet. Визуализируют квадратичные 2-D вейвлет-коэффициенты в масштабе 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;

Используйте направленный импульс Морле для раздельного извлечения вертикальных и горизонтальных отрезков линии. Вертикальный отрезок линии выделяется одним углом. Сегмент горизонтальной линии выделяется другим углом.
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;
