小波包在边缘检测的应用
程序员文章站
2024-01-28 09:56:52
...
小波包用于边缘检测
小波包分解后得到的图像序列由近似部分和细节部分组成,近似部分去除了高频分量,因此可以检测到原图像中检测不到的边缘。
clear all;
load bust; %装载并显示原始图像
%加入含噪
init=2055615866;
% 用来控制随机数生成状态的。init代表随机数生成机所处的状态。
% 指定特定的init,则之后生成的随机数序列就是固定的。
randn('seed',init);
X1=X+20*randn(size(X));
subplot(2,2,1);image(X1);
colormap(map);
title('原始图像');
axis square;
%用小波db4对图像X进行一层小波包分解
%wpdec2完成对图像的一层小波分解
%T是小波包树
%小波包树左边的节点是上一层的低通滤波,右边的节点是高通滤波 [1 0]就是第一层分解的近似系数
T=wpdec2(X1,1,'db4');
%重构图像近似部分
A=wprcoef(T,[1 0]);
subplot(2,2,2);image(A);
title('图像的近似部分');
axis square;
%%原图像的边缘检测
BW1 = edge(X1,'prewitt');
subplot(2,2,3);imshow(BW1);
title('原图像的边缘');
axis square;
%%图像近似部分的边缘检测
BW2= edge(A,'prewitt');
subplot(2,2,4);imshow(BW2);
title('图像近似部分的边缘');
axis square;
哈哈哈,感觉两者都半斤八两,不咋好!