如何在 MATLAB 中显示多级 wavedec2
how to display multi-level wavedec2 in MATLAB
图像的4级离散小波变换计算完成后,如何在matlab中显示这个多级变换?
以及如何绘制相应的 DWT 系数的直方图?
这是我目前所做的:
I = imread('image.png');
N = 4;
[C,S] = wavedec2(im2double(I),N,'haar');
A = appcoef2(C,S,'haar',1);
[H1,V1,D1] = detcoef2('all',C,S,1);
[H2,V2,D2] = detcoef2('all',C,S,2);
[H3,V3,D3] = detcoef2('all',C,S,3);
[H4,V4,D4] = detcoef2('all',C,S,4);
我会这样做:
N = 4;
img = imread('image.png');
img = im2double(img);
[C,S] = wavedec2(img,N,'haar');
for i = 1:N
lvl = ['Level ' num2str(i)];
A = appcoef2(C,S,'haar',i);
[H,V,D] = detcoef2('all',C,S,i);
figure('Name',['Images (' lvl ')']);
% Eventually, you can define a colormap for your images...
% colormap(pink(255));
subplot(2,2,1); imagesc(A);
title('Approximation')
subplot(2,2,2); imagesc(H);
title('Horizontal Detail');
subplot(2,2,3); imagesc(V);
title('Vertical Detail');
subplot(2,2,4); imagesc(D);
title('Diagonal Detail');
suptitle(lvl);
% tweak the histogram bins as you prefer
figure('Name',['Histograms (' lvl ')']);
subplot(2,2,1); hist(A(:),32);
subplot(2,2,2); hist(H(:),32);
subplot(2,2,3); hist(V(:),32);
subplot(2,2,4); hist(D(:),32);
suptitle(lvl);
end
实际上,由于我在数字图像处理方面不是很熟练,所以您可以调整我的示例以使其适合您的需要。
图像的4级离散小波变换计算完成后,如何在matlab中显示这个多级变换? 以及如何绘制相应的 DWT 系数的直方图?
这是我目前所做的:
I = imread('image.png');
N = 4;
[C,S] = wavedec2(im2double(I),N,'haar');
A = appcoef2(C,S,'haar',1);
[H1,V1,D1] = detcoef2('all',C,S,1);
[H2,V2,D2] = detcoef2('all',C,S,2);
[H3,V3,D3] = detcoef2('all',C,S,3);
[H4,V4,D4] = detcoef2('all',C,S,4);
我会这样做:
N = 4;
img = imread('image.png');
img = im2double(img);
[C,S] = wavedec2(img,N,'haar');
for i = 1:N
lvl = ['Level ' num2str(i)];
A = appcoef2(C,S,'haar',i);
[H,V,D] = detcoef2('all',C,S,i);
figure('Name',['Images (' lvl ')']);
% Eventually, you can define a colormap for your images...
% colormap(pink(255));
subplot(2,2,1); imagesc(A);
title('Approximation')
subplot(2,2,2); imagesc(H);
title('Horizontal Detail');
subplot(2,2,3); imagesc(V);
title('Vertical Detail');
subplot(2,2,4); imagesc(D);
title('Diagonal Detail');
suptitle(lvl);
% tweak the histogram bins as you prefer
figure('Name',['Histograms (' lvl ')']);
subplot(2,2,1); hist(A(:),32);
subplot(2,2,2); hist(H(:),32);
subplot(2,2,3); hist(V(:),32);
subplot(2,2,4); hist(D(:),32);
suptitle(lvl);
end
实际上,由于我在数字图像处理方面不是很熟练,所以您可以调整我的示例以使其适合您的需要。