InicioApuntes Y MonografiasConvolución en matlab

Convolución en matlab

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
Datos archivados del Taringa! original
25puntos
6,199visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
3visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

J
JaneyR🇦🇷
Usuario
Puntos0
Posts1
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.