pyramid_decomposition.m
来自「Matlab基于金字塔结构的图像处理 GUI界面」· M 代码 · 共 44 行
M
44 行
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 + =
减小字号Ctrl + -
显示快捷键?