【发布时间】:2018-04-25 17:19:41
【问题描述】:
我尝试修改代码 (Implementing IMFILTER in matlab) 以使用 5X5 高斯过滤器过滤图像。出了点问题,但我没找到。
gauss_kernel = fspecial('gaussian',5,2);
function [result] = evc_filter(input, kernel)
rsize = size(input);
r = zeros(rsize);
original=padarray(input,[2,2]);
for i = 3:rsize(1)+2
for j = 3:rsize(2)+2
temp = original(i-2:i+2,j-2:j+2) .* kernel;
r(i-2,j-2) = sum(temp(:));
end
end
result=r;
end
如果我使用 imshow 显示图片,如果我使用 imfilter 功能,它看起来会有所不同。有人可以帮忙吗?
【问题讨论】:
-
你的内核是如何定义的?
-
fspecial('gaussian',5,2);
-
使用 double(original) 将图像转换为双倍,然后执行剩余过程。
-
感谢提示,但结果图片没有任何变化
-
你永远不会在你的函数中定义
result。这是因为从您的代码复制粘贴到这篇文章吗?
标签: matlab