To see the border effect in question, consider the following example.
inpict = imread('cameraman.tif');
hw = floor([size(fk,1) size(fk,2)]/2);
inpict = padarray(inpict,hw,'symmetric','both');
inpict = im2double(inpict);
outpict = conv2(inpict,fk,'same');
outpict = im2uint8(outpict);
outpict = outpict(hw(1)+1:end-hw(1),hw(2)+1:end-hw(2));
Assuming a zero-padded array, the edges of the result will be darkened by the padding.
This effect can be reduced by either replicating the edge content during padding:
inpict = padarray(inpict,hw,'replicate','both');
... or by reflecting the edge content:
inpict = padarray(inpict,hw,'symmetric','both');
... instead of using zero-padding.
Tools like imfilter() have options to specify which padding method is used internally. By default, imfilter() uses zero-padding.