function = convol2(I, K)
I = double(I);
%Se obtiene el tamaño en n,m y n1,m1 respectivamente, de la imagen (Ima) y del kernel (K).
[n m]=size(I);
[n1 m1]=size(K);
%Verifica que el tamaño del kernel sea mayor a la imagen.
if n>n1 && m>m1
%Se calcula el padding de cada kernel.
pad=(n1-1)/2;

%Rota el kernel a 180°.
K=rot90(K,2);

%Se crea una matriz que contendrá a la imagen, para insertarle ceros alrededor dependiendo del padding.
zIm=zeros(n+(pad*2), m+(pad*2));
zIm(pad+1:n+pad,pad+1:m+pad)=I;
[n m] = size(zIm);
%Se crean variables auxiliares

I0 = zeros();
for x = pad+1: n-pad
for y=pad+1: m-pad
aux1 = zIm(x-pad: x+pad, y-pad: y+pad);
aux2 = aux1 .* K;
I0(x,y) = sum(aux2();
end
end

%Devuelve la imagen a su tamaño original, quitandole el padding.
I = I0(pad+1: n-pad,pad+1: m-pad);
I = uint8(I);



%Error que envia al ser mayor el kernel que la imagen.
else
display('error');
end

end

Les anexo una pequeña función para hacer la convolución en matlab, aunque ya hay una predefinida. Espero les sirva.

Besos