问题描述
我最近在 MATLAB 中实现了一个盒式平均滤波器。我发现这是一个有趣的练习。我想用高斯模糊滤镜做同样的事情,以最终解决一些超分辨率问题。但我发现这更具挑战性。关于这个话题,这里有几个问题。这些主题中的所有答案都非常有帮助。但是,我一直无法成功创建内核。目前我的代码只是实现了一个平均滤波器。高斯模糊的 Wiki 页面:https://en.wikipedia.org/wiki/Gaussian_blur
这是我的代码:
function out_im = GaussianBlur(in_im,sigma,N) %input image,Number of iterations
[rows,cols] = size(in_im);
orig_im = in_im;
Filter = zeros(rows,cols);
w2 = 0;
for k = 1 : N
for LR_ROWS = 2 : 1 : rows - 1
for LR_COLS = 2 : 1 : cols -1
for i = -1 : 1
for j = -1 : 1
w1 = exp(-(orig_im(LR_ROWS,LR_COLS).^2/(2*sigma^2)));
w2 = w2 + w1;
Filter(LR_ROWS,LR_COLS) = Filter(LR_ROWS,LR_COLS) + ...
w1*orig_im(LR_ROWS+i,LR_COLS+j);
end
end
Filter(LR_ROWS,LR_COLS)./w2;
w2 = 0;
end
end
orig_im = Filter;
Filter = zeros(rows,cols);
end
out_im = orig_im;
end
非常感谢任何建议或建议!谢谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)