Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Comandos Comunes de Matlab para El Procesamiento de Imágen PDF
Comandos Comunes de Matlab para El Procesamiento de Imágen PDF
A=ones(n,m);
A=ones(n);
[n,m]=size(A);
B=ones(size(A));
A=zeros(n,m);
A=zeros(n);
B=zeros(size(A));
C=A.;
% C es la transpuesta de A
# Cuando se trabaja con matrices que no son reales se puede utilizar lo siguiente
C=A;
% C es la transpuesta conjugada de A
A=B+C;
A=B-C;
A=B.*C;
% Suma de matrices
% Resta de matrices
% Multiplicacin elemento a elemento de matrices
B=(A>umbral)*k;
1 2 3 4
5 6 7 8
A=
9 10 11 12
13 14 15 16
7 8
A( 2 : 3,3 : 4) =
11 12
Algunas sentencias:
Bucle for
Generalmente se utiliza en la siguiente forma:
for Variable=ValorInicial:Incremento:ValorFinal
....
end
Comandos comunes de Matlab para el procesamiento de imgenes
Ejemplos:
nU=10;
u=zeros(1,nU);
for i=2:2:nU
u(i)=u(i-1)+i;
end
Luego, u=[0 2 0 4 0 6 0 8 0 10].
# Si el incremento es 1 no es necesario explicitarlo (for i=2:nU).
Al igual que en la mayora de los lenguajes de programacin se pueden anidar los bucles for. Por ejemplo,
for i=1:nA
for j=1:mA
...........
end
end
Para establecer los lmites y el incremento de la variable que rige el bucle se pueden utilizar expresiones (siempre utilizando parntesis, como se indica en el ejemplo):
i=1;
j=1;
nU=10;
u=zeros(1,nU);
for i=(i+j):2:nU
u(i)=u(i-1)+i;
end
Condicional if
Su forma general es la que sigue:
if Expresin
....
elseif Expresin
....
else
....
end
Donde Expresin representa la condicin (o condiciones) que debe cumplirse para que
se ejecuten las instrucciones que siguen a continuacin. elseif se utiliza para evitar
colocar varios if...end. Tanto elseif como else son opcionales.
Para construir la Expresin se pueden utilizar los siguientes operadores: ==, <, >, <=,
>=, o ~= (distinto). Ejemplos:
Comandos comunes de Matlab para el procesamiento de imgenes
if I == J
A(I,J) = 2;
elseif abs(I-J) == 1
A(I,J) = -1;
else
A(I,J) = 0;
end
Tambin se pueden utilizar los operadores | o & que representan las operaciones or y
and, respectivamente. Ejemplo:
for i=1:nC
for j=1:mC
if (Ruido(i,j)<200 | Ruido(i,j)>255)
Ruido(i,j)=0;
end
end
end
Funciones y comandos relacionados con las transformadas:
Transformada discreta de Fourier en dos dimensiones
Fa=fft2(A);
Esta funcin mapea las frecuencias altas en el centro del espectro mientras que las
frecuencias ms bajas se encuentran en la periferia. Para colocar la frecuencia cero en el
centro del espectro se debe utilizar, adems, la funcin fftshift de la siguiente forma:
Fa=fft2(A);
Fa=fftshift(Fa);
o
Fa=fftshift(fft2(A));
Antitransformada discreta de Fourier en dos dimensiones
A=ifft2(Fa);
Debido a que Fa es una matriz compleja, al antitransformar pueden quedar ciertos residuos de nmeros imaginarios que se deben a la precisin limitada del clculo. Esto hace
que la imagen resultante est constituida por algunos pxeles con nivel de gris complejo,
algo que es absurdo.
Para evitar esto, se utiliza la funcin abs que devuelve el mdulo de los elementos de
una matriz.
A=abs(ifft2(Fa));
c=round(a);
255 45 178
B = 12 100 99
0
27 89
B=max(B,50);
B = min(B,100)
100 45 100
B = 12 100 99
0
27 89
100 45 100
B = 12 100 99
0
27 89
B = max(B,100)
100 50 100
B = 50 100 99
50 50 89
v=mean(u);
b=mean(A);
b=mean(mean(A));
v=sum(u);
b=sum(A);
b=sum(sum(A));
[I,J]=find(A);
pixval
H=hist(A);
imhist(A)
Aeq=histeq(A);
c=and(a,b);
c=and(a>1,b~=0);
% AND lgica
c=or(a,b);
c=or(a>1,b~=0);
% OR lgico
Algunos ejemplos:
for i=2:f-2
for j=2:col-2
C(i,j)=abs([1 1 1]*A((i-1):(i+1),j-1)-[1 1 1]*A((i-1):(i+1),j+1));
end
end
for i=2:f-2
for j=2:col-2
D(i,j)=abs([1 1 1]*(A(i,(j-1):(j+1)))'-[1 1 1]*(A(i+1,(j-1):(j+1)))');
end
end
for i=2:f-2
for j=2:col-2
E(i,j)=max(C(i,j),D(i,j));
end
Comandos comunes de Matlab para el procesamiento de imgenes
end
N2=ones(5)/25;
for i=4:f-4
for j=4:col-4
Aux=N2.*A((i-2):(i+2),(j-2):(j+2));
Aux1=0;
for h=1:25
Aux1=Aux(h)+Aux1;
end
H(i,j)=Aux1;
end
end