Пытаюсь написать функцию для размытия изображений. (Мне известна команда imfilter . Просто пытаюсь реализовать ее по-своему). У меня есть следующая функция, которая принимает в качестве аргумента матрицу uint8 img .
function output=bl(img,w)
row=size(img,1);
col=size(img,2);
g_size=(2*w+1)^2;
output=uint8(zeros(row,col));
for ii=1:row
for jj=1:col
s=0;
corner=[ii jj]-w;
for r=corner(1):(corner(1)+(2*w))
for c=corner(2):(corner(2)+(2*w))
if((r>0 && r<=row) && (c>0 && c<=col))
s=s+img(r,c); %PROBLEMATIC LINE
fprintf('The value of s is %d\n',s);
end
end
end
m=s/g_size;
output(ii,jj)=fix(m);
s=0;
end
end
end
У меня проблемы со строкой, отмеченной как «ПРОБЛЕМА * 1013. * ЛИНИЯ". Строка кода должна была добавить предыдущее значение s с img (c, r). Но, что удивительно, каждый раз при запуске строки предыдущее значение s становится равным 0. Что я здесь делаю не так? Как я могу это решить?