📄 pyramid_decomposition.m
字号:
function imgout = Pyramid_Decomposition(imgin,level)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% imgout = Pyramid_Decomposition(imgin,level)
%
% NOTE:
% Image Multi-resolution Decomposition based on neibourhood average
% Pyramid algorithm.
% The input image can be RGB or GRAYSCALE.
%
% ARGUMENT:
% INPUT: imgin - The input image.
% level - The number of level to which the image is
% decomposited.
% OUTPUT: imgout - A cell array that contain the original image
% and its n-level decomposition images.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
if (nargin == 1)
error('Please input the level');
return
end
if isrgb(imgin)
imgin = rgb2gray(imgin);
end
if isgray(imgin)
imgin = double(imgin);
end
imgout = cell(level+1,1);
imgout{1} = imgin;
for ii = 1:level
imgin11 = dyaddown(imgin,1,'m');
imgin22 = dyaddown(imgin,2,'m');
imgin12 = dyaddown(imgin,2,'c');
imgin12 = dyaddown(imgin12,1,'r');
imgin21 = dyaddown(imgin,1,'c');
imgin21 = dyaddown(imgin21,2,'r');
imgin22 = imresize(imgin22,size(imgin11));
imgin12 = imresize(imgin12,size(imgin11));
imgin21 = imresize(imgin21,size(imgin11));
imgin1 = imgin11+imgin12+imgin21+imgin22;
imgin1 = imgin1/4;
imgout{ii+1} = imgin1;
imgin = imgin1;
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -