%wave2gray源程序
function w=wave2gray(c,s,scale,border)
%wave2gray展示小波重构系数
%展示和返回小波系数图像
%例如:
%wave2gray(c,s);展示w或默认值
%foo=wave2gray(c,s);展示和返回
%foo=wave2gray(c,s,4);放大细节
%foo=wave2gray(c,s,-1);放大绝对值
%foo=wave2gray(c,s,1,'append');保持边界值
%输入/输出:
%[c,s]是一个小波重构向量和簿记矩阵
%尺度 细节系数尺度
%0或1 最大值范围(默认)
%2,3,... 通过尺度因素放大默认值
%-1,-2,... 通过尺度的绝对值放大绝对值
%边界 小波重构结构
%'absorb' 边界取代图像(默认)
%'append' 边界增加图像宽度
%检查输入参数
error(nargchk(2,4,nargin));
if (ndims(c)~=2) | (size(c,1)~=1)
error('C must be a row vector.');end
if(ndims(s)~=2) | ~isreal(s) | ~isnumeric(s) | (size(s,2)~=2)
error('S must be a real,numeric two-column array.');end
elements=prod(s,2);
if (length(c)<elements(end)) | (elements(1)+3*sum(elements(2:end-1))>=elements(end))
error('[c s]must be a standard wavelet' 'decomposition structure.');
end
if (nargin>2) & (~isreal(scale) | ~isnumeric(scale))
error('SCALE must be character string.');
end
if (nargin>3) & (~ischar(border))
error('BORDER muat be character string.');
end
if nargin==2
scale=1;%默认尺度
end
if nargin<4
border='absorb';%默认边界
end
%尺度系数和确定满填充
absflag=scale<0;
scale=abs(scale);
if scale==0;
scale=1;
end
[cd,w]=wavecut('a',c,s);w=mat2gray(w);
cdx=max(abs(cd(:)))/scale;
if absflag
cd=mat2gray(abs(cd),[0,cdx]);fill=0;
else
cd=mat2gray(cd,[-cdx,cdx]);fill=0.5;
end
%按重构依次建立灰色图像
for i=size(s,1)-2:-1:1
ws=size(w);
h=wavecopy('h',cd,s,i);
pad=ws-size(h);frontporch=round(pad/2);
h=padarray(h,frontporch,fill,'pre');
h=padarray(h,pad-frontporch,fill,'post');
v=wavecopy('v',cd,s,i);
pad=ws-size(v);frontporch=round(pad/2);
v=padarray(v,frontporch,fill,'pre');
v=padarray(v,pad-frontporch,fill,'post');
d=wavecopy('d',cd,s,i);
pad=ws-size(d);frontporch=round(pad/2);
d=padarray(d,frontporch,fill,'pre');
d=padarray(d,pad-frontporch,fill,'post');
%加1像素给白色边界
switch lower(border)
case 'append'
w=padarray(w,[1 1],1,'post');
h=padarray(h,[1 0],1,'post');
v=padarray(v,[0 1],1,'post');
case 'absorb'
w(:,end)=1;w(end,:)=1;
h(end,:)=1;v(:,end)=1;
otherwise
error('Unrecognized BORDER parameter.');
end
w=[w h;v d];%级联辅材料
end
if nargout==0
imshow(w);%展示结果
end
wave2gray.m
猜你喜欢
转载自blog.csdn.net/YangYaYan/article/details/89958322
今日推荐
周排行