function out = safe_conv(I, f) w = floor(size(f)/2); Ipad = C = zeros(size(I,1)+2*w(1), size(I,2)+2*w(2)); Ipad(w(1)+1:end-w(1), w(2)+1:end-w(2)) = I; C(w(1)+1:end-w(1), w(2)+1:end-w(2)) = 1; Ipad = conv2(Ipad, f, 'same'); C = conv2(C, f, 'same'); out = Ipad./C; endfunction