📄 wavelet2d.m
字号:
%lowf 为最大尺度分解后的低频系数
%highH为最大尺度分解后水平方向高频系数
%highV为最大尺度分解后垂直方向高频系数
%highD为最大尺度分解后对角方向高频系数
%C为全部分解的频率系数
%S为各尺度分解下的道德频率系数的长度
%signal为原始2维信号
%wavelet为使用小波类型
%level为分解尺度
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%example:
%lenna=imread('\lena.bmp','bmp');
%[lowf,highfH,highfV,highfD,C,S]=wavelet2D(lenna,'db1',3);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 作者:王宇 %
% 学号:2006211021 17/06/07 %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function [lowf,highH,highV,highD,C,S]=wavelet2D(signal,wavelet,level);
%二维小波分解
[C,S]=wavedec2(signal,level,wavelet);
%提取最大尺度分解后低频部分
lowf=appcoef2(C,S,wavelet,level);
%提取最大尺度分解后高频部分
highH=detcoef2('h',C,S,level);
highV=detcoef2('v',C,S,level);
highD=detcoef2('d',C,S,level);
%重构最大尺度下低频部分
A=wrcoef('a',C,S,wavelet,level);
%重构最大尺度下高频部分
Dh=wrcoef2('h',C,S,wavelet,level);
Dv=wrcoef2('v',C,S,wavelet,level);
Dd=wrcoef2('d',C,S,wavelet,level);
%下面代码可作参考可以不用
%显示重够效果
subplot(2,2,1),image(A);title('低频平滑信号');
subplot(2,2,2),imshow(Dh);title([int2str(level),'尺度下水平高频平滑信号']);
subplot(2,2,3),imshow(Dv);title([int2str(level),'尺度下垂直高频平滑信号']);
subplot(2,2,4),imshow(Dd);title([int2str(level),'尺度下对角高频平滑信号']);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -