SlideShare una empresa de Scribd logo
1 de 7
Descargar para leer sin conexión
Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial
                    Cátedra: Visión Artificial      Septiembre de 2005


  Comandos de MatLab utilizados para el procesamiento de imágenes.

  Cargar imágenes en matrices:

  A=double(imread(NombreImagen,Formato));

    Donde NombreImagen representa el nombre de la imagen con el path completo y
Formato representa el formato de la imagen. La función double se utiliza para poder
realizar operaciones con la matriz A que implican números decimales (hay ciertas
operaciones que no se pueden hacer con variables del tipo uint8 como lo son los niveles
de gris de las imágenes que utilizamos generalmente). El formato de imagen comúnmente
utilizado es el tif .

  Ejemplo:

  A=double(imread('C:MATLAB6p5toolboximagesimdemoscircuit.tif','tif'));

  En el caso de imágenes en formato jpg, se debe hacer un paso más para obtener la i-
magen en escala de grises (debido a la forma en que se almacena la imagen jpg).

  Ejemplo:

  A=double(imread('C:MATLAB6p5toolboximagesimdemosfootball.jpg','jpg'));
  A=A(:,:,1);


  Visualizar imágenes a partir de una matriz:

  imshow(uint8(A))

  Donde A es la matriz que representa la imagen y uint8 se utiliza para convertir los ele-
mentos de A en enteros de 8 bits (256 niveles de gris). Si la imagen ya está en formato
uint8 no es necesario usar la función ‘uint8’.

  Visualizar más de una imagen en una misma ventana:

  subplot(2,2,1);imshow(uint8(A))
  subplot(2,2,2);imshow(uint8(B))
  subplot(2,2,3);imshow(uint8(C))
  subplot(2,2,4);imshow(uint8(D))

  En este caso, se visualiza un arreglo de imágenes de 2x2. Lo mismo se puede hacer
para ver otro tipo de gráficos.


  Operaciones con matrices:

  u=[1 2 3 4];             % Crea un vector columna
  u=[1;2;3;4];             % Crea un vector fila


          Comandos comunes de Matlab para el procesamiento de imágenes                   1
Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial
                   Cátedra: Visión Artificial      Septiembre de 2005



  A=[1 2 3;4 5 6];         % Crea una matriz de 2x3 con los elementos indicados

  A=ones(n,m);             % Crea una matriz de 1’s de nxm
  A=ones(n);               % Crea una matriz de 1’s de orden n

  [n,m]=size(A);           % Almacena en n y m el número de filas y columnas, respecti-
                           vamente, de A

  B=ones(size(A));         % Crea una matriz de 1’s del mismo tamaño de A

  A=zeros(n,m);            % Crea una matriz de 0’s de nxm
  A=zeros(n);              % Crea una matriz de 0’s de orden n

  B=zeros(size(A));        % Crea una matriz de 0’s del mismo tamaño de 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;                   % Suma de matrices
  A=B-C;                   % Resta de matrices
  A=B.*C;                  % Multiplicación elemento a elemento de matrices

  B=(A>umbral)*k;          % B será una matriz del mismo tamaño de A cuyos elementos
                           serán 0 o k dependiendo si los elementos análogos de A son
                           mayores que el umbral

  A(i,j) representa el elemento de la fila i y la columna j de la matriz A

  A(i:j,u:v) es la matriz formada por los elementos de la matriz A que se encuentran
entre las filas i y j y las columnas u y v.

  Ejemplo:                   1 2 3 4
                             5 6 7 8                                          7 8 
                           A=                             ⇒ A( 2 : 3,3 : 4) =      
                              9 10 11 12                                      11 12
                                        
                             13 14 15 16


  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 imágenes                    2
Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial
                    Cátedra: Visión Artificial      Septiembre de 2005



  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 mayoría de los lenguajes de programación se pueden anidar los bu-
cles for. Por ejemplo,

  for i=1:nA
    for j=1:mA
       ...........
    end
  end

    Para establecer los límites y el incremento de la variable que rige el bucle se pueden u-
tilizar expresiones (siempre utilizando paréntesis, 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 Expresión
  ....
  elseif Expresión
  ....
  else
  ....
  end

   Donde Expresión representa la condición (o condiciones) que debe cumplirse para que
se ejecuten las instrucciones que siguen a continuación. elseif se utiliza para evitar
colocar varios if...end. Tanto elseif como else son opcionales.
   Para construir la Expresión se pueden utilizar los siguientes operadores: ==, <, >, <=,
>=, o ~= (distinto). Ejemplos:


           Comandos comunes de Matlab para el procesamiento de imágenes                    3
Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial
                    Cátedra: Visión Artificial      Septiembre de 2005



  if I == J
     A(I,J) = 2;
  elseif abs(I-J) == 1
     A(I,J) = -1;
  else
     A(I,J) = 0;
  end

  También 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 función mapea las frecuencias altas en el centro del espectro mientras que las
frecuencias más bajas se encuentran en la periferia. Para colocar la frecuencia cero en el
centro del espectro se debe utilizar, además, la función 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 resi-
duos de números imaginarios que se deben a la precisión limitada del cálculo. Esto hace
que la imagen resultante esté constituida por algunos píxeles con nivel de gris complejo,
algo que es absurdo.
   Para evitar esto, se utiliza la función abs que devuelve el módulo de los elementos de
una matriz.

  A=abs(ifft2(Fa));




          Comandos comunes de Matlab para el procesamiento de imágenes                   4
Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial
                    Cátedra: Visión Artificial      Septiembre de 2005


  Visualización de la transformada discreta de Fourier

   En realidad, lo que se grafica en tres dimensiones es la magnitud de la transformada
discreta de Fourier.

  mesh(abs(Fa))

   Como en la mayoría de los casos, se utiliza una escala logarítmica en el espacio de
frecuencias. Esto se realiza de la siguiente forma:

  mesh(log(abs(Fa)))

  Filtro Digital: Y= filter2(B,X);

  La función filter2 filtra los datos en X con el núcleo dado por la matriz B. El resultado, Y,
es calculado por medio de una correlación en dos dimensiones y es del mismo tamaño
que X.

  Generalmente, se debe pasar a la función un parámetro adicional para que devuelva la
parte central de la correlación:

  Y= filter2(B,X,’same’);

  Filtro de Mediana:

  B=medfilt2(A,[M N]);               Realiza el filtro de mediana sobre la imagen B. M y N
                                     son el número de filas y el de columnas de la máscara


  Algunas funciones especiales:

  b=fix(a);          % Toma la parte entera del número a

  c=round(a);        % Redondea al entero más cercano

  B=min(B,100); % En este ejemplo, min devuelve el valor más bajo entre B y 100

          255 45 178                                          100 45 100
      B =  12 100 99 
                     
                                     B = min(B,100)       ⇒ B =  12 100 99 
                                                                           
           0
               27 89 
                                                                0
                                                                     27 89 
                                                                            


  B=max(B,50);       % En este ejemplo, max devuelve el valor más alto entre B y 50

          100 45 100                                          100 50 100
      B =  12 100 99                B = max(B,100)      ⇒ B =  50 100 99 
                                                                         
           0
               27 89 
                                                                50 50 89 
                                                                           



          Comandos comunes de Matlab para el procesamiento de imágenes                       5
Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial
                  Cátedra: Visión Artificial      Septiembre de 2005



v=mean(u);                % Calcula el promedio del vector u
b=mean(A);                % Calcula los promedios de las columnas de A. B es un vector
                          fila
b=mean(mean(A));          % Calcula el promedio de la matriz A

v=sum(u);                 % Calcula la suma de los elementos del vector u
b=sum(A);                 % Calcula la suma de las columnas de A. B es un vector fila
b=sum(sum(A));            % Calcula la suma de los elementos de A

[I,J]=find(A);            % Devuelve los índices de las filas y columnas de los
                          elementos distintos de cero de la matriz A

pixval                    % Muestra las coordenadas y el nivel de gris del píxel señalado
                          por el puntero del mouse cuando éste se ubica sobre la imagen
                          en una figura

H=hist(A);                % Calcula el histograma de A. A debe estar en formato uint8,
                          de lo contrario, se debe convertir: uint8(A)

imhist(A)                 % Muestra en una figura el histograma de A (que debe ser un
                          array uint8)

Aeq=histeq(A);            % Realza la imagen A (que debe ser una matriz de uint8)

c=and(a,b);               % AND lógica
c=and(a>1,b~=0);

c=or(a,b);                % OR lógico
c=or(a>1,b~=0);


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 imágenes                    6
Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial
                  Cátedra: Visión Artificial      Septiembre de 2005


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




        Comandos comunes de Matlab para el procesamiento de imágenes                  7

Más contenido relacionado

La actualidad más candente

Funciones reales en una variable
Funciones reales en una variableFunciones reales en una variable
Funciones reales en una variableasegura-b
 
Aplicaión de la derivada
Aplicaión de la derivadaAplicaión de la derivada
Aplicaión de la derivadaJose Virche
 
FUNCIONES REALES Y GRAFICAS
FUNCIONES  REALES  Y GRAFICASFUNCIONES  REALES  Y GRAFICAS
FUNCIONES REALES Y GRAFICASDiaz Fabian
 
Matlab scientific scilab_mathematics
Matlab scientific scilab_mathematicsMatlab scientific scilab_mathematics
Matlab scientific scilab_mathematicsCristian Cegelski
 
Graficas en matlab 2 d y 3d
Graficas en matlab 2 d y 3dGraficas en matlab 2 d y 3d
Graficas en matlab 2 d y 3dSebastian Cuenca
 
Operaciones matemáticas con arrays y aplicaciones
Operaciones matemáticas con arrays y aplicacionesOperaciones matemáticas con arrays y aplicaciones
Operaciones matemáticas con arrays y aplicacionesmelman00007
 
Cuestionario
CuestionarioCuestionario
Cuestionariofavalenc
 
aplicacion de las derivadas en el ambito economico
aplicacion de las derivadas en el ambito economicoaplicacion de las derivadas en el ambito economico
aplicacion de las derivadas en el ambito economicoGeraldine Palomino
 
Recordemos la definición de una función lineal
Recordemos la definición de una función linealRecordemos la definición de una función lineal
Recordemos la definición de una función linealsteven0911
 
Logica difusautilizandomatlab
Logica difusautilizandomatlabLogica difusautilizandomatlab
Logica difusautilizandomatlabrubi18
 
Proyecto de matematicas em2
Proyecto de matematicas em2Proyecto de matematicas em2
Proyecto de matematicas em2evelynalban05
 

La actualidad más candente (20)

Silabo programación ii 2015-i
Silabo programación ii 2015-iSilabo programación ii 2015-i
Silabo programación ii 2015-i
 
Funciones
FuncionesFunciones
Funciones
 
Tutorial De Matlab
Tutorial De MatlabTutorial De Matlab
Tutorial De Matlab
 
Funciones reales en una variable
Funciones reales en una variableFunciones reales en una variable
Funciones reales en una variable
 
Funcion lineal presentacion
Funcion lineal presentacionFuncion lineal presentacion
Funcion lineal presentacion
 
Aplicaión de la derivada
Aplicaión de la derivadaAplicaión de la derivada
Aplicaión de la derivada
 
FUNCIONES REALES Y GRAFICAS
FUNCIONES  REALES  Y GRAFICASFUNCIONES  REALES  Y GRAFICAS
FUNCIONES REALES Y GRAFICAS
 
Mat lab03
Mat lab03Mat lab03
Mat lab03
 
clase de matlab
clase  de   matlabclase  de   matlab
clase de matlab
 
Matlab scientific scilab_mathematics
Matlab scientific scilab_mathematicsMatlab scientific scilab_mathematics
Matlab scientific scilab_mathematics
 
Graficas en matlab 2 d y 3d
Graficas en matlab 2 d y 3dGraficas en matlab 2 d y 3d
Graficas en matlab 2 d y 3d
 
45905804 cd-u1-ev-ruvc
45905804 cd-u1-ev-ruvc45905804 cd-u1-ev-ruvc
45905804 cd-u1-ev-ruvc
 
Operaciones matemáticas con arrays y aplicaciones
Operaciones matemáticas con arrays y aplicacionesOperaciones matemáticas con arrays y aplicaciones
Operaciones matemáticas con arrays y aplicaciones
 
Cuestionario
CuestionarioCuestionario
Cuestionario
 
aplicacion de las derivadas en el ambito economico
aplicacion de las derivadas en el ambito economicoaplicacion de las derivadas en el ambito economico
aplicacion de las derivadas en el ambito economico
 
Recordemos la definición de una función lineal
Recordemos la definición de una función linealRecordemos la definición de una función lineal
Recordemos la definición de una función lineal
 
Integrales numericas
Integrales numericasIntegrales numericas
Integrales numericas
 
Funciones
FuncionesFunciones
Funciones
 
Logica difusautilizandomatlab
Logica difusautilizandomatlabLogica difusautilizandomatlab
Logica difusautilizandomatlab
 
Proyecto de matematicas em2
Proyecto de matematicas em2Proyecto de matematicas em2
Proyecto de matematicas em2
 

Similar a Archivos apuntes comandos comunes de matlab para el procesamiento de imágen

Similar a Archivos apuntes comandos comunes de matlab para el procesamiento de imágen (20)

Archivos apuntes-comandos comunes de matlab para el procesamiento de imágen
Archivos apuntes-comandos comunes de matlab para el procesamiento de imágenArchivos apuntes-comandos comunes de matlab para el procesamiento de imágen
Archivos apuntes-comandos comunes de matlab para el procesamiento de imágen
 
Electrónica: Tutorial de Matlab aplicado
Electrónica: Tutorial de Matlab aplicadoElectrónica: Tutorial de Matlab aplicado
Electrónica: Tutorial de Matlab aplicado
 
Matlab
MatlabMatlab
Matlab
 
Cursos de MATLAB
Cursos de MATLABCursos de MATLAB
Cursos de MATLAB
 
Tema 3
Tema 3Tema 3
Tema 3
 
Trabajo matlab
Trabajo matlabTrabajo matlab
Trabajo matlab
 
Seminario de matlab
Seminario de matlabSeminario de matlab
Seminario de matlab
 
Matlab1
Matlab1Matlab1
Matlab1
 
Taller 10-14-ii
Taller 10-14-iiTaller 10-14-ii
Taller 10-14-ii
 
Manual matlab
Manual matlabManual matlab
Manual matlab
 
Trabajo de computacion
Trabajo de computacionTrabajo de computacion
Trabajo de computacion
 
Matlab introducción-clase3
Matlab introducción-clase3Matlab introducción-clase3
Matlab introducción-clase3
 
Presentación1
Presentación1Presentación1
Presentación1
 
Matlab
MatlabMatlab
Matlab
 
Biseccion matlab
Biseccion matlabBiseccion matlab
Biseccion matlab
 
Matlab
MatlabMatlab
Matlab
 
Matlab
MatlabMatlab
Matlab
 
Matlab
MatlabMatlab
Matlab
 
Matlab
MatlabMatlab
Matlab
 
Matlab
MatlabMatlab
Matlab
 

Archivos apuntes comandos comunes de matlab para el procesamiento de imágen

  • 1. Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Septiembre de 2005 Comandos de MatLab utilizados para el procesamiento de imágenes. Cargar imágenes en matrices: A=double(imread(NombreImagen,Formato)); Donde NombreImagen representa el nombre de la imagen con el path completo y Formato representa el formato de la imagen. La función double se utiliza para poder realizar operaciones con la matriz A que implican números decimales (hay ciertas operaciones que no se pueden hacer con variables del tipo uint8 como lo son los niveles de gris de las imágenes que utilizamos generalmente). El formato de imagen comúnmente utilizado es el tif . Ejemplo: A=double(imread('C:MATLAB6p5toolboximagesimdemoscircuit.tif','tif')); En el caso de imágenes en formato jpg, se debe hacer un paso más para obtener la i- magen en escala de grises (debido a la forma en que se almacena la imagen jpg). Ejemplo: A=double(imread('C:MATLAB6p5toolboximagesimdemosfootball.jpg','jpg')); A=A(:,:,1); Visualizar imágenes a partir de una matriz: imshow(uint8(A)) Donde A es la matriz que representa la imagen y uint8 se utiliza para convertir los ele- mentos de A en enteros de 8 bits (256 niveles de gris). Si la imagen ya está en formato uint8 no es necesario usar la función ‘uint8’. Visualizar más de una imagen en una misma ventana: subplot(2,2,1);imshow(uint8(A)) subplot(2,2,2);imshow(uint8(B)) subplot(2,2,3);imshow(uint8(C)) subplot(2,2,4);imshow(uint8(D)) En este caso, se visualiza un arreglo de imágenes de 2x2. Lo mismo se puede hacer para ver otro tipo de gráficos. Operaciones con matrices: u=[1 2 3 4]; % Crea un vector columna u=[1;2;3;4]; % Crea un vector fila Comandos comunes de Matlab para el procesamiento de imágenes 1
  • 2. Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Septiembre de 2005 A=[1 2 3;4 5 6]; % Crea una matriz de 2x3 con los elementos indicados A=ones(n,m); % Crea una matriz de 1’s de nxm A=ones(n); % Crea una matriz de 1’s de orden n [n,m]=size(A); % Almacena en n y m el número de filas y columnas, respecti- vamente, de A B=ones(size(A)); % Crea una matriz de 1’s del mismo tamaño de A A=zeros(n,m); % Crea una matriz de 0’s de nxm A=zeros(n); % Crea una matriz de 0’s de orden n B=zeros(size(A)); % Crea una matriz de 0’s del mismo tamaño de 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; % Suma de matrices A=B-C; % Resta de matrices A=B.*C; % Multiplicación elemento a elemento de matrices B=(A>umbral)*k; % B será una matriz del mismo tamaño de A cuyos elementos serán 0 o k dependiendo si los elementos análogos de A son mayores que el umbral A(i,j) representa el elemento de la fila i y la columna j de la matriz A A(i:j,u:v) es la matriz formada por los elementos de la matriz A que se encuentran entre las filas i y j y las columnas u y v. Ejemplo: 1 2 3 4 5 6 7 8 7 8  A=  ⇒ A( 2 : 3,3 : 4) =    9 10 11 12 11 12   13 14 15 16 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 imágenes 2
  • 3. Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Septiembre de 2005 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 mayoría de los lenguajes de programación se pueden anidar los bu- cles for. Por ejemplo, for i=1:nA for j=1:mA ........... end end Para establecer los límites y el incremento de la variable que rige el bucle se pueden u- tilizar expresiones (siempre utilizando paréntesis, 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 Expresión .... elseif Expresión .... else .... end Donde Expresión representa la condición (o condiciones) que debe cumplirse para que se ejecuten las instrucciones que siguen a continuación. elseif se utiliza para evitar colocar varios if...end. Tanto elseif como else son opcionales. Para construir la Expresión se pueden utilizar los siguientes operadores: ==, <, >, <=, >=, o ~= (distinto). Ejemplos: Comandos comunes de Matlab para el procesamiento de imágenes 3
  • 4. Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Septiembre de 2005 if I == J A(I,J) = 2; elseif abs(I-J) == 1 A(I,J) = -1; else A(I,J) = 0; end También 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 función mapea las frecuencias altas en el centro del espectro mientras que las frecuencias más bajas se encuentran en la periferia. Para colocar la frecuencia cero en el centro del espectro se debe utilizar, además, la función 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 resi- duos de números imaginarios que se deben a la precisión limitada del cálculo. Esto hace que la imagen resultante esté constituida por algunos píxeles con nivel de gris complejo, algo que es absurdo. Para evitar esto, se utiliza la función abs que devuelve el módulo de los elementos de una matriz. A=abs(ifft2(Fa)); Comandos comunes de Matlab para el procesamiento de imágenes 4
  • 5. Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Septiembre de 2005 Visualización de la transformada discreta de Fourier En realidad, lo que se grafica en tres dimensiones es la magnitud de la transformada discreta de Fourier. mesh(abs(Fa)) Como en la mayoría de los casos, se utiliza una escala logarítmica en el espacio de frecuencias. Esto se realiza de la siguiente forma: mesh(log(abs(Fa))) Filtro Digital: Y= filter2(B,X); La función filter2 filtra los datos en X con el núcleo dado por la matriz B. El resultado, Y, es calculado por medio de una correlación en dos dimensiones y es del mismo tamaño que X. Generalmente, se debe pasar a la función un parámetro adicional para que devuelva la parte central de la correlación: Y= filter2(B,X,’same’); Filtro de Mediana: B=medfilt2(A,[M N]); Realiza el filtro de mediana sobre la imagen B. M y N son el número de filas y el de columnas de la máscara Algunas funciones especiales: b=fix(a); % Toma la parte entera del número a c=round(a); % Redondea al entero más cercano B=min(B,100); % En este ejemplo, min devuelve el valor más bajo entre B y 100 255 45 178 100 45 100 B =  12 100 99    B = min(B,100) ⇒ B =  12 100 99     0  27 89    0  27 89   B=max(B,50); % En este ejemplo, max devuelve el valor más alto entre B y 50 100 45 100 100 50 100 B =  12 100 99  B = max(B,100) ⇒ B =  50 100 99       0  27 89    50 50 89    Comandos comunes de Matlab para el procesamiento de imágenes 5
  • 6. Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Septiembre de 2005 v=mean(u); % Calcula el promedio del vector u b=mean(A); % Calcula los promedios de las columnas de A. B es un vector fila b=mean(mean(A)); % Calcula el promedio de la matriz A v=sum(u); % Calcula la suma de los elementos del vector u b=sum(A); % Calcula la suma de las columnas de A. B es un vector fila b=sum(sum(A)); % Calcula la suma de los elementos de A [I,J]=find(A); % Devuelve los índices de las filas y columnas de los elementos distintos de cero de la matriz A pixval % Muestra las coordenadas y el nivel de gris del píxel señalado por el puntero del mouse cuando éste se ubica sobre la imagen en una figura H=hist(A); % Calcula el histograma de A. A debe estar en formato uint8, de lo contrario, se debe convertir: uint8(A) imhist(A) % Muestra en una figura el histograma de A (que debe ser un array uint8) Aeq=histeq(A); % Realza la imagen A (que debe ser una matriz de uint8) c=and(a,b); % AND lógica c=and(a>1,b~=0); c=or(a,b); % OR lógico c=or(a>1,b~=0); 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 imágenes 6
  • 7. Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Septiembre de 2005 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 Comandos comunes de Matlab para el procesamiento de imágenes 7