我应该在MATLAB中为图像矩阵做一个非常简单的模糊算法。该函数的目的是采用m×n矩阵,并将每个元素及其相邻元素的平均值设为"模糊" m-2 x n-2。
我目前的代码如下:
function [out] = blurring(anImage)
tic;
[ny nx] = size(anImage);
out = zeros(ny-2, nx-2);
yv = 1:ny-2;
xv = 1:nx-2;
for iy=0:2;
for ix = 0:2;
out = out + anImage(yv + iy, xv + ix);
end
end
out = out/9;
toc
end
目标是通过消除代码的迭代部分来完全矢量化我的解决方案。我不介意,如果这只能让程序变慢一点。
答案 0 :(得分:3)
您实施的是卷积的特例:
conv2(anImage,ones(3,3)./9,'valid')