登录论坛

查看完整版本 : [MATLAB图像处理] 求load wbarb 中map的定义,为何将load wbarb替换为imread的图就不行了


huizaiyqi
2012-06-05, 17:17
:confused:clear;
load wbarb;
%I=imread('asd.bmp'); %将图像2000.jpg读入到矩阵A中,MM不在当前目录的话要给出完整的路径
%imshow(I); %显示A,也就是显示图像2000
nbc=size(map,1);
subplot(221); %窗口1
image(I); %显示图像
colormap(map); %设置色彩索引图
title('原始图像'); %标题
init=2055615866; %初始值
randn('seed',init); %随机值
II=I+20.*randn(size(I)); %添加随机噪声
subplot(222); %窗口2
image(II); %显示图像
colormap(map); %设置色彩索引图
title('含噪图像'); %标题
wname='coif2';lev=3;
[c,s]=wavedec2(II,lev,wname); %用小波函数coif2对图像XX进行3层分解
det1=detcoef2('compact',c,s,1);
sigma=median(abs(det1))/0.6745; %由的高频系数第一层估计噪声标准差
alpha=1.2;
thr=wbmpen(c,1,sigma,alpha) %使用软阈值和保存的低频信号进行降噪
keepapp = 1;
xd = wdencmp('gbl',c,s,wname,lev,thr,'s',keepapp); % 画出原始图像和降噪图像
colormap(pink(nbc));
subplot(223);
image(wcodemat(xd,nbc));
colormap(map); %设置色彩索引图
title('降噪图像');