【发布时间】:2016-02-26 11:54:17
【问题描述】:
我正在寻找一个很好的例子来展示引导滤波器和高斯滤波器之间的区别。该示例需要显示引导过滤器的好处,(例如:保留边缘......)。你能给我一些关于该任务的例子吗?提前致谢
我尝试了一些示例,但它没有显示与高斯进行引导比较的好处
% example: edge-preserving smoothing
% figure 1 in our paper
close all;
I = double(imread('.\img_smoothing\cat.bmp')) / 255;
I = imnoise(I,'gaussian',0.1,0);
p = I;
r = 4; % try r=2, 4, or 8
eps = 0.2^2; % try eps=0.1^2, 0.2^2, 0.4^2
q = guidedfilter(I, p, r, eps);
std_Gb=1;
beta=0.1;
%% Initialization
Ng=ceil(3*std_Gb)+1; Gaussian = fspecial('gaussian',[Ng Ng],std_Gb);
imsm = conv2(I,Gaussian,'same');
[Gx,Gy] = gradient(q );
NormGrad = sqrt(Gx.^2 + Gy.^2);
Gb1 = 1./ (1 + 1* NormGrad.^2);
[Gx,Gy] = gradient(imsm);
NormGrad = sqrt(Gx.^2 + Gy.^2);
Gb2= 1./ (1 + 1* NormGrad.^2);
figure();
subplot(2,1,1);imshow([I, q,imsm],[]);
subplot(2,1,2);imshow([Gb1,Gb2],[]);
【问题讨论】:
-
double(img)/255等于im2double -
没关系。这只是规范化
-
正确。 im2double 这样做。
-
但我很感兴趣为什么引导滤波器在左侧可以保留边缘而不是高斯在右侧
-
我的评论仅供参考。你可以忽略它。
标签: matlab image-processing filter computer-vision