-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathconv2dm.m
28 lines (28 loc) · 851 Bytes
/
conv2dm.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
function [ImC]=conv2dz(Im,h)
[M,N]=size(Im);
[m,n]=size(h);
ImC=zeros(M,N,'uint8');
% Se agregan ceros a la imagen original y se obtiene el número de lineas
% agregadas
ampliado=floor(m/2);
nH=ampliado*2+M;
nW=ampliado*2+N;
zerosIm=zeros(nH,nW);
zerosIm(ampliado+1:end-ampliado,ampliado+1:end-ampliado)=Im;
[M,N]=size(zerosIm);
ImCZ=zeros(M,N,'uint8');
%Se genera la imagen nuevo, donde se almacenaran los resultados de la
%convolución
for i=ampliado+1:M-ampliado
for j=ampliado+1:N-ampliado
x=0;
for k=m:-1:1
for l=n:-1:1
x=x+zerosIm(i-k+ampliado+1,j-l+ampliado+1)*h(k,l);
end
end
ImCZ(i,j)=x;
end
end
ImC=ImCZ(ampliado+1:end-ampliado,ampliado+1:end-ampliado);
end