【求助】求matlab小波变换图像处理实现程序~ 50

希望能给个小波变换图像处理的实例程序谢谢~我邮箱是58085410@qq.com和7224029@163.com~... 希望能给个小波变换图像处理的实例程序谢谢~
我邮箱是58085410@qq.com
和7224029@163.com~
展开
 我来答
KITTENZTY
2010-04-27 · TA获得超过165个赞
知道答主
回答量:27
采纳率:0%
帮助的人:0
展开全部

%这个是2D-DWT的函数,是haar小波

%c是图像像素矩阵 steps是变换的阶数

function  dwtc = dwt_haar(c, steps)

% DWTC = CWT_HARR(C) - Discrete Wavelet Transform using Haar filter

%

% M D Plumbley Nov 2003

N = length(c)-1; % Max index for filter: 0 .. N

% If no steps to do, or the sequence is a single sample, the DWT is itself

if (0==N | steps == 0)

   dwtc = c;

   return

end

% Check that N+1 is divisible by 2

if (mod(N+1,2)~=0)

   disp(['Not divisible 2: ' num2str(N+1)]);

   return

end

% Set the Haar analysis filter

h0 = [1/2  1/2];  % Haar Low-pass filter

h1 = [-1/2 1/2];  % Haar High-pass filter

% Filter the signal

lowpass_c = conv(h0, c);

hipass_c  = conv(h1, c);

% Subsample by factor of 2 and scale

c1 = sqrt(2)*lowpass_c(2:2:end);

d1 = sqrt(2)*hipass_c(2:2:end);

% Recursively call dwt_haar on the low-pass part, with 1 fewer steps

dwtc1 = dwt_haar(c1, steps-1);

% Construct the DWT from c1 and d1

dwtc = [dwtc1 d1];

% Done

return

-------------------------- 分割线 --------------------------

调用这个函数的例子 下面的东西放在另一个文档里 

读入一个图像 ‘lena’ 应该是个最基础的图像了~

之后分别作0阶 和 1阶 2D-DWT 的变换

改变阶数 可以做更高阶的

clear all

im = imreadreal('lena.bmp');    %read image data

% Plot

figure

dwt2_step0=dwt2_haar(im, 0);    %2D DWT step=0

imagesc(dwt2_step0);

colormap gray; 

axis image;

figure

dwt2_step1=dwt2_haar(im, 1);    %2D DWT step=1

imagesc(dwt2_step1);

colormap gray; 

axis image;

--------------------- 分割线 ---------------------

结果如下 1阶的结果

这是我的一个实验  希望有所帮助

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sader1229
2015-04-03
知道答主
回答量:4
采纳率:0%
帮助的人:4919
展开全部
求正确答案
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式