【matlab】Gauss/Laplace Pyramid
Downsample1)对图像G_i进行高斯内核卷积2)将所有偶数行和列去除Upsample1)将图像在每个方向扩大为原来的两倍,新增的行和列以0填充2)放大后的图像卷积,获得 “新增像素”的近似值clearclcI = im2double(imread('1.png'));I=rgb2gray(I);N = 4; % layerf = [.05, .25, ...
·
Downsample
1)对图像G_i进行高斯内核卷积
2)将所有偶数行和列去除
Upsample
1)将图像在每个方向扩大为原来的两倍,新增的行和列以0填充
2)放大后的图像卷积,获得 “新增像素”的近似值
clear
clc
I = im2double(imread('1.png'));
I=rgb2gray(I);
N = 4; % layer
f = [.05, .25, .4, .25, .05]; % filter
f = f'*f;
G = cell(N,1);
G{1} = I;
for n = 2 : N
t = imfilter(G{n-1}, f, 'conv', 'same', 'replicate');
G{n} = t(1:2:end, 1:2:end); % 下采样
end
L = cell(N,1);
L{N} = G{N};
for n = 1 : N-1
t = imresize(G{n+1}, 2, 'bicubic');% 双上线性插值
%t = zeros(2*size(G{n+1}));
%t(1:2:end, 1:2:end) = G{n+1};
%t(2:2:end, 2:2:end) = G{n+1};
%t(1:2:end, 2:2:end) = G{n+1};
%t(2:2:end, 1:2:end) = G{n+1};% 上采样
I = imfilter(t, f, 'conv', 'same', 'replicate');
L{n} = G{n} - I;
end
%figure;
for n = 1 : N
figure(n);
%subplot(2,N,n)
imshow(G{n});
end
for n = 1 : N
figure(n+N);
%subplot(2,N,n+N)
imshow(L{n});
end
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)