SlideShare ist ein Scribd-Unternehmen logo
1 von 61
Downloaden Sie, um offline zu lesen
PROCESAMIENTO DE
             IMÁGENES CON MATLAB
                                1




http://lonely113.blogspot.com
Lectura de Imágenes
                                    2


Mediante el comando:
                       Imagen=imread(‘nombre.extensión’)
La imagen a leer debe encontrarse en la carpeta de trabajo de
Matlab. Los formatos de imagen soportados por Matlab son:

                   Formato              Extensión
                   TIFF                 .tiff
                   JPEG                 .jpg
                   GIF                  .gif
                   BMP                  .bmp
                   PNG                  .png
                   XWD                  .xwd


http://lonely113.blogspot.com
Ejemplo: Lectura de una imagen *.jpg
                                        3


La imagen "fruta.jpg" se encuentra en el directorio de
trabajo.




       >> Im_RGB=imread('fruta.jpg');




http://lonely113.blogspot.com
Representación de Imágenes en Matlab
                                4


En Matlab una imagen en formato de color RGB se
representa por tres matrices bidimensionales,
correspondientes a los planos R, G y B.




                       1=R
                       2=G
                       3=B

http://lonely113.blogspot.com
Obtención de los Planos RGB
                                5


Para obtener los planos R, G y B se ejecutan los comandos:
                   Im_R=Imagen(:,:,1)
                   Im_G=Imagen(:,:,2)
                   Im_B=Imagen(:,:,3)
Ejemplo:

       >> Im_R=Im_RGB(:,:,1);
       >> Im_G=Im_RGB(:,:,2);
       >> Im_B=Im_RGB(:,:,3);




http://lonely113.blogspot.com
Tamaño de la Imagen
                                             6


Obtención del tamaño de Imagen:
                                >> [m,n,p]=size(Im_RGB)
                                m=
                                 600
                                n=
                                 800
                                p=
                                  3


       Im_RGB: 600x800
             3 planos (R,G y B)

http://lonely113.blogspot.com
Despliegue de Imágenes
                                       7


Se realiza con el comando:
                                     Imshow(Imagen)

  Dónde: Imagen es del tipo uint8.




               >> imshow(Im_RGB)




http://lonely113.blogspot.com
Escritura de Imágenes
                                          8


Con el comando:
                       imwrite(Imagen,’nombre.extensión’)




       >> imwrite(Im_RGB,'imagen.jpg');




http://lonely113.blogspot.com
Lectura de Valor de Pixeles
                                                  9

Obtención de valor de pixel
  Imagen(m,n)               ; Cuando Imagen está en escala de grises (un solo plano).
  Imagen(m,n,p) ; Para imagen RGB. Devuelve el valor del pixel
                 correspondiente al plano p (1, 2 ó 3).

  Dónde: m,n son las coordenadas del pixel.

                                       >> Im_RGB(300,300,1)
                                       ans =
                                         255
                                       >> Im_RGB(300,300,2)
                                       ans =
                                         178
                                       >> Im_RGB(300,300,3)
                                       ans =
                                         10

http://lonely113.blogspot.com
Selección manual y Lectura de Valor de
                   Pixel
                                10


 Mostrar la imagen con el comando imshow.
 Escribir el comando: pixel=impixel;
 Clic en el pixel y Enter.



        >> imshow(Im_RGB)
        >> pixel=impixel
        pixel =
          252 144 115




http://lonely113.blogspot.com
Edición de Pixeles
                                        11


Para modificar el valor de un pixel:
          Imagen(m,n)=x ; Para una imagen en escala de grises.
          imagen(m,n,p)=x ; Para una imagen RGB.
     Dónde: x es un número entero entre 0 y 255 correspondiente a
          escala de grises (0=negro y 255=Blanco)



        >> Im_RGB(200,750,1)=255;
        >> Im_RGB(200,750,2)=255;
        >> Im_RGB(200,750,3)=255;




http://lonely113.blogspot.com
Perfil de Imagen
                                                  12

    Mostrar la imagen con el comando: imshow.
    Escribir el comando: improfile
    Trazar la línea para obtener el perfil en la imagen (clic en inicio y clic en final) y Enter.
    Si se desea se puede guardar el perfil en una variable. Ejecutando:
                                         perfil=improfile;
                                                   300
              >> imshow(Im_RGB)
              >> improfile                         250



                                                   200



                                                   150



                                                   100



                                                   50



                                                    0
                                                         0   50   100   150    200    250     300      350   400   450   500
                                                                              Distance along profile


    http://lonely113.blogspot.com
Submuestreo
                                                13


Submuestrear una imagen reduce su tamaño y permite que
el procesamiento posterior de la imagen se agilice.
                   a11      a12   a13   a14   a15    a16   a17   a18   …   a1n


Se toman pixeles equidistantes (muestras), dependiendo del
factor elegido, y se desecha el resto de pixeles.

           Imagen_ sub=Imagen(1:a:end,1:a:end,1:1:end)

    Dónde: a es el factor de muestreo.
           Si a=2 la imagen se reduce a la mitad.

http://lonely113.blogspot.com
Ejemplo: Submuestreo de la imagen Im_RGB
por un factor de 4.
                                              14


                        >> Im_sub=Im_RGB(1:4:end,1:4:end,1:1:end);
                        >> imshow(Im_sub)




http://lonely113.blogspot.com
Transformación Uint8 - Double
                                 15


 En algunos casos es necesario que la imagen a procesar
  sea del tipo "double", ya que uint8 admite sólo valores
  enteros entre 0 y 255.
 Para transformar de uint8 a double y viceversa:

           Imagen_double=double(Imagen_uint8)
           Imagen_uint8=uint8(Imagen_double)
 El comando imshow sólo muestra imágenes del tipo
  uint8.

 http://lonely113.blogspot.com
Ejemplo: Se requiere resaltar el gris en una
imagen por un factor 0.25.
                                16




>> Im_double=double(Im_RGB);
>> Im_double=Im_double*0.25;
>> Im_uint8=uint8(Im_double);
>> Imshow(Im_uint8)




http://lonely113.blogspot.com
Filtraje
                                               17


Se realiza mediante convolución de matrices.


 Dónde: Imagen es la matríz a filtrar.

            f es la matríz filtro.

           b11,b12,…,bmn son los
           elementos de la matríz de salida.




http://lonely113.blogspot.com
Filtraje
                                            18



 Se puede utilizar el comando:
                                imagen2=filter2(filter,Imagen);
    Dónde: filter es la matriz filtro.
                  El comando filter2 no admite uint8, por lo tanto la
                  imagen a filtrar se debe convertir al tipo double.
                  El filtraje se debe realizar plano por plano en una
                  imagen RGB.

 Se agrega ruido a una imagen con el comando imnoise.
  Revisar los archivos de ayuda de Matlab para mas
  información.
http://lonely113.blogspot.com
Ejemplo: Filtraje promedio
                                            19


Para eliminar o reducir el ruido de una imagen.
   >> foto=imread('fruta.jpg');
   >> foto=imnoise(foto,'salt & pepper');
   >> foto_R=foto(:,:,1);
   >> foto_G=foto(:,:,2);
   >> foto_B=foto(:,:,3);
   >> filtro=1/9*[1 1 1;1 1 1;1 1 1];
   >> foto2_R=filter2(filtro,double(foto_R));
   >> foto2_G=filter2(filtro,double(foto_G));
   >> foto2_B=filter2(filtro,double(foto_B));
   >> foto2(:,:,1)=foto2_R;
   >> foto2(:,:,2)=foto2_G;
   >> foto2(:,:,3)=foto2_B;
   >> imshow(uint8(foto))
   >> figure,imshow(uint8(foto2))


http://lonely113.blogspot.com
Ejemplo: Detección de bordes.
                                                             20

    Se puede realizar similar al caso anterior, definiendo un filtro para detección de bordes.

    La imagen a filtrar debe estar en escala de grises.

    Para convertir RGB a escala de grises se utiliza el comando:

                           Imagen_gray=rgb2gray(Imagen_RGB);




            >> filter=[1 2 1;0 0 0;-1 -2 -1];
            >> Im_RGB=imread('medusa.jpg');
            >> Im_gray=rgb2gray(Im_RGB);
            >> Im_edge=filter2(filter,Im_gray);
            >> imshow(Im_RGB);
            >>figure,imshow(Im_edge);




    http://lonely113.blogspot.com
Filtro Mediana
                                            21


 Se realiza para atenuar el ruido de una imagen.
 Usualmente se aplica a imágenes en escala de grises.
                                 Imagen2=medfilt2(Imagen)

  Ejemplo:


  >> Im_RGB=imread('fruta.jpg');
  >> Im_gray=rgb2gray(Im_RGB);
  >> Im_gray=imnoise(Im_gray, 'salt
  & pepper');
  >> imshow(Im_gray)
  >> Im_filt=medfilt2(Im_gray);
  >> figure, imshow(Im_filt)




 http://lonely113.blogspot.com
Detección de Bordes
                                     22




 Se realiza con el comando:

   imagen_edge=edge(imagen_gray,’mascara’);
 Se requiere que la imagen esté en escala de grises.

 mascara es el tipo de mascara a utilizar (sobel,
  canny,prewit, …) ya predefinidas en Matlab.




http://lonely113.blogspot.com
Ejemplo:
                                               23

Se realiza la detección de bordes de una imagen utilizando la máscara de
"sobel".
                                >> Im_RGB=imread('Penguins.jpg');
                                >> Im_gray=rgb2gray(Im_RGB);
                                >> Im_edge=edge(Im_gray,'sobel');
                                >> imshow(Im_edge)




http://lonely113.blogspot.com
Binarización
                                        24


 Conversión de una imagen en escala de grises a una
  imagen lógica (0=negro, 1=blanco).
 Se realiza con el comando:
                        Imagen_bin=imagen<=Umbral

        Dónde: Umbral es un número entre 0 y 255.

 También se puede usar el siguiente comando cuando se
  requiere binarizar una imagen RGB directamente.
                        Imagen_bin=im2bw(Imagen,level)
        Dónde: level es el nivel de umbral entre 0 y 1.


http://lonely113.blogspot.com
Ejemplo: Método 1.
                                        25


Binarización de una imagen con un umbral de 128.

                                >> Im_bin=Im_gray>=128




http://lonely113.blogspot.com
Ejemplo: Método 2.
                                          26




                                >> Im_bin=im2bw(Im_RGB,0.5)




http://lonely113.blogspot.com
Erosión y Dilatación
                                     27


Son las operaciones morfológicas más utilizadas.

DILATACIÓN: Adiciona pixeles en las fronteras de la
  imagen.

EROSIÓN: Remueve pixeles de las fronteras de la
  imagen.

Ambas operaciones se aplican a imágenes binarizadas.


http://lonely113.blogspot.com
Dilatación
                                    28


Se utiliza el comando:
                        Result=imdilate(Imagen,SE)
  Dónde: SE es la estructura del arreglo a utilizar como
         rejilla.
         Imagen es previamente binarizada.
Existen varias maneras de obtener una estructura SE.
Se realiza mediante el comando "strel". Revisar los
archivos de ayuda de Matlab.

http://lonely113.blogspot.com
Dilatación
                                           29


Suponiendo que se utiliza una matriz identidad de orden 3 como rejilla (mostrada con
bordes resaltados en la imagen), el resultado de aplicar la operación de dilatación en el
pixel que se traslapa con el elemento central de la rejilla es:




"Si alguno de los pixeles de la rejilla configurados como 1 coincide con al menos uno de
la imagen el pixel resultante es 1".

http://lonely113.blogspot.com
Ejemplo:
                                        30


Aplicando dilatación a una imagen binarizada, utilizando una
estructura generada a partir de una matriz cuadrada de "1" de
orden 30.


       >> SE=strel('square',30);
       >> Im_RGB=imread('imagen.jpg');
       >> Im_gray=rgb2gray(Im_RGB);
       >> Im_edge=edge(Im_gray,'sobel');
       >> Im_dilate=imdilate(Im_edge,se);
       >> imshow(Im_edge);
       >> figure,imshow(Im_dilate)




http://lonely113.blogspot.com
Erosión
                                      31




Se utiliza el comando:

                        Result=imerode(Imagen,SE)

   Dónde: SE es la estructura del arreglo a utilizar
          como rejilla.
                        Imagen es previamente binarizada.




http://lonely113.blogspot.com
Erosión
                                           32


Suponiendo que se utiliza una matriz identidad de orden 3 como rejilla (mostrada con
bordes resaltados en la imagen), el resultado de aplicar la operación de erosión en el
pixel que se traslapa con el elemento central de la rejilla es:




"Todos los pixeles de la rejilla configurados como 1 deben coincidir con todos los de la
imagen, si esto no sucede el resultado del pixel es 0".

http://lonely113.blogspot.com
Ejemplo:
                                       33

Aplicando la operación de erosión a la imagen dilatada utilizando una
estructura generada por una matriz cuadrada de "1" de orden 15.




       >> SE=strel('square',15);
       >> Im_erode=imerode(Im_dilate,SE);
       >> imshow(Im_dilate)
       >> figure,imshow(Im_erode)




http://lonely113.blogspot.com
Vecindad
                                         34


Para determinar si dos pixeles son vecinos o no (adyacentes).
Vecindad-4: Se consideran pixeles conectados en direcciones
perpendiculares (arriba, abajo, derecha, izquierda).
Vecindad-8: Se consideran también los pixeles vecinos
diagonales.




                                Vecindad-4    Vecindad-8


http://lonely113.blogspot.com
Conectividad
                                                 35


Dos pixeles están con la misma etiqueta están conectados si existe un camino del uno al otro a través
de pixeles vecinos con la misma etiqueta.
La conectividad en Matlab puede ser:
    Conexión-4: Se toma en cuenta la vecindad-4 para determinar la conectividad de pixeles.
    Conexión-8: Se toma en cuenta la vecindad-8 para determinar la conectividad de pixeles.
ETIQUETADO: Agrupación de pixeles con características similares




           Si se elige conectividad conexión-4 se
           consideraría como dos objetos diferentes,
           pero si se elige conectividad conexión-8 se
           consideraría como un solo objeto (vecindad
           diagonal).




http://lonely113.blogspot.com
Cuenta y Etiquetado de Objetos en una
                    Imagen
                                           36


Para contar la cantidad de objetos presentes en una imagen se realiza el procedimiento:
  1. Leer la imagen.
  2. Convertirla a escala de grises y posteriormente binarizarla.
  3. En la imagen binarizada se requiere que los objetos a contar estén en blanco (1) y con
     fondo negro (0), si no fuera así se puede aplicar el comando:
                                   Im_bin=not(Im_bin)

  4. Ejecutar el siguiente comando para etiquetar los objetos. Cada objeto encontrado se
     etiqueta con un número entero: 1, 2, 3,…:
                                Im_label=bwlabel(Im_bin,C)

         Dónde: C=4 u 8 (Conexión)
  5. Para obtener el número de objetos:
                                  n=max(max(Im_label))

http://lonely113.blogspot.com
Ejemplo:
                                        37

Se contará el número de objetos de la siguiente imagen:


      >> Im_RGB=imread('imagen.jpg');
      >> Im_bin=im2bw(Im_RGB,0.5)
      >>imshow(Im_bin)
      >> Im_bin=not(Im_bin);
      >> imshow(Im_bin)
      >> Im_label=bwlabel(Im_bin,8);
      >> n=max(max(Im_label))
      n=
       5




http://lonely113.blogspot.com
Selección de un Objeto
                                        38


Para seleccionar manualmente un objeto y aislarlo se realiza
el procedimiento:
   1. Mostrar la imagen binarizada con el comando imshow.
   2. ejecutar el comando:
                                Im_sel=bwselect(C)
          Dónde: C=4 u 8 (Conexión)
    3. Clic en el objeto y Enter.
    4. Si se desea, desplegar el objeto seleccionado Im_sel.

http://lonely113.blogspot.com
Ejemplo:
                                      39

Se selecciona el objeto inferior derecho y se aísla en la
variable Im_sel.




             >> imshow(Im_bin)
             >> Im_sel=bwselect(8);
             >> imshow(Im_sel)




http://lonely113.blogspot.com
Captura de Imágenes Mediante Cámaras
            Conectadas a la Pc
                                40


Resulta de suma utilidad para implementar algoritmos
de visión o adquisición de imágenes en tiempo real
utilizando dispositivos simples y de bajo costo tales
como las webcams.

Matlab incluye el toolbox "Image Acquisition" para
este fin.

El toolbox incluye la herramienta Image Aquisition tool
"imaqtool" que se utilizará posteriormente.

http://lonely113.blogspot.com
Obtención de Información del Dispositivo
                                     41

Comandos a utilizar:
Imaqhwinfo
    Devuelve la información del hardware y software disponibles, tales como:
    Adaptador de video instalado, versión de Matlab, Toolbox (nombre y
    versión).
Imaqhwinfo(‘adaptor’)
    Donde adaptor es el nombre del adaptador instalado, por lo general
    winvideo. Este comando devuelve información relacionada al adaptador.
Imaqhwinfo(‘adaptor’,DeviceID)
    Donde DeviceID es el ID del dispositivo a utilizar obtenido con el
    comando anterior. Si sólo se cuenta con un dispositivo conectado el
    DeviceID será 1. Este comando muestra información del dispositivo
    conectado (cámara) .

http://lonely113.blogspot.com
Ejemplo: Ejecutando los comandos
                                                          42

    >> imaqhwinfo
    ans =
      InstalledAdaptors: {'winvideo'}
                                                               El adaptador instalado es
         MATLABVersion: '7.8 (R2009a)'                         "winvideo".
           ToolboxName: 'Image Acquisition Toolbox'
         ToolboxVersion: '3.3 (R2009a)‘

    >> imaqhwinfo('winvideo')                                  Hay un dispositivo de
    ans =
        AdaptorDllName: [1x81 char]                            adquisición de imágenes
      AdaptorDllVersion: '3.3 (R2009a)'
          AdaptorName: 'winvideo'
                                                               instalado (DeviceID).
              DeviceIDs: {[1]}
             DeviceInfo: [1x1 struct]

    >> imaqhwinfo('winvideo',1)
                                                               El dispositivo instalado es
    ans =
            DefaultFormat: 'RGB24_640x480'
                                                               una webcam "ilook300".
      DeviceFileSupported: 0                                   Soporta 13 formatos de
               DeviceName: 'iLook 300'
                  DeviceID: 1
                                                               adquisición. Formato por
         ObjectConstructor: 'videoinput('winvideo', 1)'
        SupportedFormats: {1x13 cell}
                                                               defecto: RGB 640x480.

http://lonely113.blogspot.com
Preparación del Dispositivo
                                          43

 Crear la estructura:

                       cam=imaqhwinfo(‘adaptor’,DeviceID)
    Para poder obtener las características del dispositivo con facilidad.
    Por ejemplo, para obtener los formatos soportados:
                                 cam.SupportedFormats
 Ejecutar el comando:

              video=videoinput(‘adaptor’,DeviceID,’Format’)
    Construye un objeto de entrada de video (nexo entre el dispositivo y
    Matlab). Si no se especifica Format se asume el formato por defecto.



 http://lonely113.blogspot.com
Ejemplo: Preparación de dispositivo
                                              44


               >> cam=imaqhwinfo('winvideo',1);

               >> cam.SupportedFormats

               ans =
                 Columns 1 through 4
                  'I420_160x120' 'I420_176x144' 'I420_320x240' 'I420_352x288'
                 Columns 5 through 8
                  'I420_640x480' 'RGB24_1280x960' 'RGB24_1600x1200'
               'RGB24_160x120'
                 Columns 9 through 12
                  'RGB24_176x144' 'RGB24_320x240' 'RGB24_352x288'
               'RGB24_640x480'
                 Column 13
                  'RGB24_800x600'

               >> video=videoinput('winvideo',1,'RGB24_640x480');


http://lonely113.blogspot.com
Pre - Visualización
                                          45


Para desplegar la pre-visualización de las imágenes a capturar ejecutar el
comando:
                                     preview(video)




       >> preview(video)




http://lonely113.blogspot.com
Captura
                                           46


Para capturar una imagen ejecutar:
                                Image=getsnapshot(‘cam’)




       >> foto=getsnapshot(video);
       >> imshow(foto)




http://lonely113.blogspot.com
Image Acquisition tool
                                            47


Facilita el trabajo de realizar la captura de imágenes mediante línea de comandos.
Para acceder a esta herramienta ejecutar:
                                       imaqtool




                  >> imaqtool




http://lonely113.blogspot.com
Aplicaciones
                                     48

 Se presentan 3 aplicaciones sencillas del procesamiento de
 imágenes:

 1. Detección de bordes de una imagen.
 2. Cuenta    de objetos de características similares
    presentes en una imagen.
 3. Reconocimiento Óptico de Caracteres (OCR) mediante
    un algoritmo implementado por terceros.

 En todos los casos las imágenes serán obtenidas mediante
 una cámara web.

http://lonely113.blogspot.com
1. Detección de bordes de una imagen
                                                49


                                >> cam=imaqhwinfo(‘winvideo’,1);
                                >> video=videoinput('winvideo',1);
                                >> preview(video)
                                >> Im_RGB=getsnapshot(video);
                                >> imshow(Im_RGB)
                                >> Im_gray=rgb2gray(Im_RGB);
                                >> Im_gray=medfilt2(Im_gray);
                                >> figure,imshow(Im_gray)
                                >> Im_edge=edge(Im_gray,'sobel');
                                >> figure,imshow(Im_edge)
                                >>Im_edge2=not(Im_edge);
                                >> figure,imshow(Im_edge2)


    No se especifica formato de captura, entonces se asume el formato por
    defecto (RGB 640x480).

    Las imágenes obtenidas paso a paso se muestran en la siguiente
    diapositiva.
http://lonely113.blogspot.com
1. Detección de Bordes de una Imagen
                                50




 Im_RGB                              Im_gray




 Im_edge                             Im_edge2




http://lonely113.blogspot.com
2. Conteo de Objetos
                                51

 Se desea contar el número de transistores en la
   imagen.

 Para ello se utiliza el etiquetado de objetos, pero el
   problema es que si no se realiza tratamiento previo
   también se etiquetarán los pines de cada transistor.

 Para resolver este problema primero se aplican las
   operaciones de erosión (hasta que desaparezcan los
   pines y solo quede el cuerpo) y luego dilatación (para
   obtener objetos a contar de regular tamaño).

http://lonely113.blogspot.com
2. Conteo de Objetos
                                                     52


                                >> cam=imaqhwinfo(‘winvideo’,1);
                                >> video=videoinput(‘winvideo’,1);
                                >> Im_RGB=getsnapshot(video);
                                >> imshow(Im_RGB)
                                >> Im_bin=im2bw(Im_RGB,0.5);
                                >> figure, imshow(Im_bin)
                                >> Im_bin2=not(Im_bin);
                                >> figure, imshow(Im_bin2)
                                >> SE=strel('square',10);
                                >> Im_erode=imerode(Im_bin2,SE);
                                >> figure, imshow(Im_erode)
                                >> Im_dilate=imdilate(Im_erode,SE);
                                >> figure,imshow(Im_dilate)
                                >> Im_label=bwlabel(Im_dilate,8);
                                >> n=max(max(Im_label))
                                n=
                                  10


http://lonely113.blogspot.com
2. Conteo de Objetos
                                    53




                           Im_RGB        Im_bin



http://lonely113.blogspot.com
2. Conteo de Objetos
                                     54




                                          La imagen se invierte para
                                          poder    seguir    con    el
                                          procedimiento de tratamiento
                                          de imagen.

                                          Si no se aplica erosión se
                                          etiquetaría     cada   objeto
                                          aislado, dando como resultado
                                          un número de objetos muy
                                          superior al real.




                           Im_bin2


http://lonely113.blogspot.com
2. Conteo de Objetos
                                           55




                      Im_erode                               Im_dilate
   Con estas dos operaciones se obtiene sólo el cuerpo de los transistores en su
   tamaño original, los pines ya fueros desechados. La imagen está lista ahora para el
   etiquetado y conteo.

http://lonely113.blogspot.com
3. Reconocimiento de Caracteres
                                     56


   Se desea reconocer los caracteres presentes en una imagen
      adquirida mediante la webcam y almacenar el texto en un archivo
      .txt.
   El algoritmo OCR utilizar se obtuvo de la página:
       http://www.matpic.com/esp/matlab/ocr.html.
   Para usar el algoritmo los archivos a descargados se deben copiar
       a la carpeta de trabajo de Matlab.
   La imagen se debe guardar con el nombre "TEST_1.jpg". Los
       caracteres deben estar en mayúsculas en negro y fondo blanco.
   Una vez hecho esto ejecutar el comando:

                                    OCR


http://lonely113.blogspot.com
3. Reconocimiento de Caracteres
                                                 57


                                >> cam=imaqhwinfo('winvideo',1);
                                >> video=videoinput('winvideo',1);
                                >> preview(video)
                                >> text=getsnapshot(video);
                                >> imshow(text)
                                >> text_bin=im2bw(text,0.5);
                                >> figure,imshow(text_bin)
                                >> SE=strel('square',5);
                                >> text_erode=imerode(text_bin,SE);
                                >> figure,imshow(text_erode)
                                >> text_dilate=imdilate(text_erode,SE);
                                >> figure,imshow(text_dilate)
                                >> text_fin=not(text_dilate);
                                >> figure,imshow(text_fin)
                                >> imwrite(text_fin,'TEST_1.jpg');
                                >> ocr


http://lonely113.blogspot.com
3. Reconocimiento de Caracteres
                                             58




                         text                                      text_bin
  text_bin contiene elementos no deseados (puntos blancos) que podrían perjudicar el proceso
  de reconocimiento de caracteres. Estos elementos se eliminan aplicando la operación de
  erosión.

http://lonely113.blogspot.com
3. Reconocimiento de Caracteres
                                   59




                    text_erode                    text_dilate

  Enseguida se aplica la operación de dilatación para contrarrestar el
  efecto de la erosión en el texto.
http://lonely113.blogspot.com
3. Reconocimiento de Caracteres
                                  60




                       text_fin

  Es necesario que el texto esté en negro con fondo blanco para
  aplicar el algoritmo.

http://lonely113.blogspot.com
http://lonely113.blogspot.com   61

Weitere ähnliche Inhalte

Was ist angesagt?

Circuitos secuenciales sincronos y asincronos
Circuitos secuenciales sincronos y asincronosCircuitos secuenciales sincronos y asincronos
Circuitos secuenciales sincronos y asincronosAlexa Ramirez
 
47427701 ejercicios-cinematica-soluciones
47427701 ejercicios-cinematica-soluciones47427701 ejercicios-cinematica-soluciones
47427701 ejercicios-cinematica-solucionespedreroguadarramaerik
 
Series de fourier 22 Ejercicios Resueltos
Series de fourier 22 Ejercicios ResueltosSeries de fourier 22 Ejercicios Resueltos
Series de fourier 22 Ejercicios ResueltosJoe Arroyo Suárez
 
05 respuesta en el tiempo de un sistema de control
05   respuesta en el tiempo de un sistema de control05   respuesta en el tiempo de un sistema de control
05 respuesta en el tiempo de un sistema de controlreneej748999
 
Clasificación de las ecuaciones diferenciales
Clasificación de las ecuaciones diferencialesClasificación de las ecuaciones diferenciales
Clasificación de las ecuaciones diferencialesjesusamigable
 
Diferentes tipos de flip flops (jk, sr, d, t) sus tablas de verdad,
Diferentes tipos de flip flops (jk, sr, d, t) sus tablas de verdad,Diferentes tipos de flip flops (jk, sr, d, t) sus tablas de verdad,
Diferentes tipos de flip flops (jk, sr, d, t) sus tablas de verdad,Miguel Brunings
 
S9. transformada inversa-de_laplace
S9. transformada inversa-de_laplaceS9. transformada inversa-de_laplace
S9. transformada inversa-de_laplaceNeil Sulca Taipe
 
Ejercicios resueltos edo homogéneas
Ejercicios resueltos edo homogéneasEjercicios resueltos edo homogéneas
Ejercicios resueltos edo homogéneasYerikson Huz
 
08 instrucciones latch_y_unlatch_plc__40490__
08 instrucciones latch_y_unlatch_plc__40490__08 instrucciones latch_y_unlatch_plc__40490__
08 instrucciones latch_y_unlatch_plc__40490__zfsasfasd
 
Programacion en WinCupl
Programacion en WinCuplProgramacion en WinCupl
Programacion en WinCuplGilbert_28
 
Sumador de dos números de 8bits
Sumador de dos números de 8bitsSumador de dos números de 8bits
Sumador de dos números de 8bitsLaura Donoso
 
Acondicionar la señal del sensor (lm35) para obtener una salida de 0.7 v a 5v
Acondicionar la señal del sensor (lm35) para obtener una salida de 0.7 v a 5vAcondicionar la señal del sensor (lm35) para obtener una salida de 0.7 v a 5v
Acondicionar la señal del sensor (lm35) para obtener una salida de 0.7 v a 5vCARLOS MARANI
 
Sensores opticos
Sensores opticosSensores opticos
Sensores opticostorito2691
 
Análisis cinemático de un brazo robótico de 4GDL con lenguaje Python
Análisis cinemático de un brazo robótico de 4GDL con lenguaje PythonAnálisis cinemático de un brazo robótico de 4GDL con lenguaje Python
Análisis cinemático de un brazo robótico de 4GDL con lenguaje PythonRoberto Sanz Benito
 
Análisis básico de sistemas de control y ecuaciones
Análisis básico de sistemas de control y ecuacionesAnálisis básico de sistemas de control y ecuaciones
Análisis básico de sistemas de control y ecuacionesYair Alexis Muñoz Rojas
 
Transformada Zeta, Definicion y Usos en la Vida Real
Transformada Zeta, Definicion y Usos en la Vida RealTransformada Zeta, Definicion y Usos en la Vida Real
Transformada Zeta, Definicion y Usos en la Vida RealCesar Daniel Salazar Pérez
 
4.metodo de la biseccion
4.metodo de la biseccion4.metodo de la biseccion
4.metodo de la biseccionrjvillon
 

Was ist angesagt? (20)

Circuitos secuenciales sincronos y asincronos
Circuitos secuenciales sincronos y asincronosCircuitos secuenciales sincronos y asincronos
Circuitos secuenciales sincronos y asincronos
 
47427701 ejercicios-cinematica-soluciones
47427701 ejercicios-cinematica-soluciones47427701 ejercicios-cinematica-soluciones
47427701 ejercicios-cinematica-soluciones
 
Series de fourier 22 Ejercicios Resueltos
Series de fourier 22 Ejercicios ResueltosSeries de fourier 22 Ejercicios Resueltos
Series de fourier 22 Ejercicios Resueltos
 
05 respuesta en el tiempo de un sistema de control
05   respuesta en el tiempo de un sistema de control05   respuesta en el tiempo de un sistema de control
05 respuesta en el tiempo de un sistema de control
 
Clasificación de las ecuaciones diferenciales
Clasificación de las ecuaciones diferencialesClasificación de las ecuaciones diferenciales
Clasificación de las ecuaciones diferenciales
 
Programación de microcontroladores
Programación de microcontroladoresProgramación de microcontroladores
Programación de microcontroladores
 
Diferentes tipos de flip flops (jk, sr, d, t) sus tablas de verdad,
Diferentes tipos de flip flops (jk, sr, d, t) sus tablas de verdad,Diferentes tipos de flip flops (jk, sr, d, t) sus tablas de verdad,
Diferentes tipos de flip flops (jk, sr, d, t) sus tablas de verdad,
 
S9. transformada inversa-de_laplace
S9. transformada inversa-de_laplaceS9. transformada inversa-de_laplace
S9. transformada inversa-de_laplace
 
Ejercicios resueltos edo homogéneas
Ejercicios resueltos edo homogéneasEjercicios resueltos edo homogéneas
Ejercicios resueltos edo homogéneas
 
08 instrucciones latch_y_unlatch_plc__40490__
08 instrucciones latch_y_unlatch_plc__40490__08 instrucciones latch_y_unlatch_plc__40490__
08 instrucciones latch_y_unlatch_plc__40490__
 
Programacion en WinCupl
Programacion en WinCuplProgramacion en WinCupl
Programacion en WinCupl
 
Ejercicios
EjerciciosEjercicios
Ejercicios
 
Sumador de dos números de 8bits
Sumador de dos números de 8bitsSumador de dos números de 8bits
Sumador de dos números de 8bits
 
Acondicionar la señal del sensor (lm35) para obtener una salida de 0.7 v a 5v
Acondicionar la señal del sensor (lm35) para obtener una salida de 0.7 v a 5vAcondicionar la señal del sensor (lm35) para obtener una salida de 0.7 v a 5v
Acondicionar la señal del sensor (lm35) para obtener una salida de 0.7 v a 5v
 
Sensores opticos
Sensores opticosSensores opticos
Sensores opticos
 
Métodos De Los Cuadrados Medios
Métodos De Los Cuadrados MediosMétodos De Los Cuadrados Medios
Métodos De Los Cuadrados Medios
 
Análisis cinemático de un brazo robótico de 4GDL con lenguaje Python
Análisis cinemático de un brazo robótico de 4GDL con lenguaje PythonAnálisis cinemático de un brazo robótico de 4GDL con lenguaje Python
Análisis cinemático de un brazo robótico de 4GDL con lenguaje Python
 
Análisis básico de sistemas de control y ecuaciones
Análisis básico de sistemas de control y ecuacionesAnálisis básico de sistemas de control y ecuaciones
Análisis básico de sistemas de control y ecuaciones
 
Transformada Zeta, Definicion y Usos en la Vida Real
Transformada Zeta, Definicion y Usos en la Vida RealTransformada Zeta, Definicion y Usos en la Vida Real
Transformada Zeta, Definicion y Usos en la Vida Real
 
4.metodo de la biseccion
4.metodo de la biseccion4.metodo de la biseccion
4.metodo de la biseccion
 

Andere mochten auch

Segmentación de imagenes
Segmentación de imagenesSegmentación de imagenes
Segmentación de imagenesOmar Sanchez
 
Reconocimiento de placas matlab
Reconocimiento de placas matlabReconocimiento de placas matlab
Reconocimiento de placas matlabJhon Guapacha
 
Utp pd_iy_va_sap8 transformaciones geometricas
 Utp pd_iy_va_sap8 transformaciones geometricas Utp pd_iy_va_sap8 transformaciones geometricas
Utp pd_iy_va_sap8 transformaciones geometricasjcbp_peru
 
Numero de coordinacion
Numero de coordinacionNumero de coordinacion
Numero de coordinacionAdan Aguirre
 
KITTEL INTRODUCCION A LA FISICA DEL ESTADO SOLIDO
KITTEL INTRODUCCION A LA FISICA DEL ESTADO SOLIDOKITTEL INTRODUCCION A LA FISICA DEL ESTADO SOLIDO
KITTEL INTRODUCCION A LA FISICA DEL ESTADO SOLIDONoilaly Cabana
 
Elementos de electromagnetismo 3ra edición - matthew n. o. sadiku
Elementos de electromagnetismo   3ra edición - matthew n. o. sadikuElementos de electromagnetismo   3ra edición - matthew n. o. sadiku
Elementos de electromagnetismo 3ra edición - matthew n. o. sadikuJuan JO
 

Andere mochten auch (8)

Segmentación de imagenes
Segmentación de imagenesSegmentación de imagenes
Segmentación de imagenes
 
SCR, DIAC y TRIAC
SCR, DIAC y TRIACSCR, DIAC y TRIAC
SCR, DIAC y TRIAC
 
Reconocimiento de placas matlab
Reconocimiento de placas matlabReconocimiento de placas matlab
Reconocimiento de placas matlab
 
Descriptores de Textura
Descriptores de TexturaDescriptores de Textura
Descriptores de Textura
 
Utp pd_iy_va_sap8 transformaciones geometricas
 Utp pd_iy_va_sap8 transformaciones geometricas Utp pd_iy_va_sap8 transformaciones geometricas
Utp pd_iy_va_sap8 transformaciones geometricas
 
Numero de coordinacion
Numero de coordinacionNumero de coordinacion
Numero de coordinacion
 
KITTEL INTRODUCCION A LA FISICA DEL ESTADO SOLIDO
KITTEL INTRODUCCION A LA FISICA DEL ESTADO SOLIDOKITTEL INTRODUCCION A LA FISICA DEL ESTADO SOLIDO
KITTEL INTRODUCCION A LA FISICA DEL ESTADO SOLIDO
 
Elementos de electromagnetismo 3ra edición - matthew n. o. sadiku
Elementos de electromagnetismo   3ra edición - matthew n. o. sadikuElementos de electromagnetismo   3ra edición - matthew n. o. sadiku
Elementos de electromagnetismo 3ra edición - matthew n. o. sadiku
 

Ähnlich wie Procesamiento de imágenes con Matlab

Utp pdi_2014-2 lab2
 Utp pdi_2014-2 lab2 Utp pdi_2014-2 lab2
Utp pdi_2014-2 lab2jcbp_peru
 
Utp 2015-2_pdi_lab2
 Utp 2015-2_pdi_lab2 Utp 2015-2_pdi_lab2
Utp 2015-2_pdi_lab2jcbp_peru
 
Utp 2015-2_pdi_lab2
 Utp 2015-2_pdi_lab2 Utp 2015-2_pdi_lab2
Utp 2015-2_pdi_lab2jcbp_peru
 
Utp va_sl4_procesamiento digital de imagenes con matlab iii
 Utp va_sl4_procesamiento digital de imagenes con matlab iii Utp va_sl4_procesamiento digital de imagenes con matlab iii
Utp va_sl4_procesamiento digital de imagenes con matlab iiijcbenitezp
 
Manejo basico de imagenes matlab
Manejo basico de imagenes matlabManejo basico de imagenes matlab
Manejo basico de imagenes matlabAbner Chavez
 
Utp va_sl2 procesamiento de imagenes con mat_lab i
 Utp va_sl2 procesamiento de imagenes con  mat_lab i Utp va_sl2 procesamiento de imagenes con  mat_lab i
Utp va_sl2 procesamiento de imagenes con mat_lab ijcbenitezp
 
Utp pdi_2014-2 lab2
 Utp pdi_2014-2 lab2 Utp pdi_2014-2 lab2
Utp pdi_2014-2 lab2jcbp_peru
 
Utp pdiva_lab3_ introduccion al procesamiento de imagenes con mat_lab
 Utp pdiva_lab3_ introduccion al procesamiento de imagenes con  mat_lab Utp pdiva_lab3_ introduccion al procesamiento de imagenes con  mat_lab
Utp pdiva_lab3_ introduccion al procesamiento de imagenes con mat_labjcbenitezp
 
Informe proyecto señales y sistemas ,ingenieria electronica-UNSAAC
Informe proyecto señales y sistemas ,ingenieria electronica-UNSAACInforme proyecto señales y sistemas ,ingenieria electronica-UNSAAC
Informe proyecto señales y sistemas ,ingenieria electronica-UNSAACAndres Ccolque Sandy
 
Práctica 4 matlab 20_noviembre_2017
Práctica 4 matlab 20_noviembre_2017Práctica 4 matlab 20_noviembre_2017
Práctica 4 matlab 20_noviembre_2017Mafer Pinto
 
Procesamiento de imagenes
Procesamiento de imagenesProcesamiento de imagenes
Procesamiento de imagenesDayana Guzman
 
65 Php. Diagramas De Sectores
65 Php. Diagramas De Sectores65 Php. Diagramas De Sectores
65 Php. Diagramas De SectoresJosé M. Padilla
 

Ähnlich wie Procesamiento de imágenes con Matlab (20)

Clase 4
Clase 4Clase 4
Clase 4
 
Clase 4
Clase 4Clase 4
Clase 4
 
Utp pdi_2014-2 lab2
 Utp pdi_2014-2 lab2 Utp pdi_2014-2 lab2
Utp pdi_2014-2 lab2
 
Utp 2015-2_pdi_lab2
 Utp 2015-2_pdi_lab2 Utp 2015-2_pdi_lab2
Utp 2015-2_pdi_lab2
 
C05
C05C05
C05
 
C05
C05C05
C05
 
Utp 2015-2_pdi_lab2
 Utp 2015-2_pdi_lab2 Utp 2015-2_pdi_lab2
Utp 2015-2_pdi_lab2
 
Utp va_sl4_procesamiento digital de imagenes con matlab iii
 Utp va_sl4_procesamiento digital de imagenes con matlab iii Utp va_sl4_procesamiento digital de imagenes con matlab iii
Utp va_sl4_procesamiento digital de imagenes con matlab iii
 
62 Php. Creando Imagenes
62 Php. Creando Imagenes62 Php. Creando Imagenes
62 Php. Creando Imagenes
 
Manejo basico de imagenes matlab
Manejo basico de imagenes matlabManejo basico de imagenes matlab
Manejo basico de imagenes matlab
 
Utp va_sl2 procesamiento de imagenes con mat_lab i
 Utp va_sl2 procesamiento de imagenes con  mat_lab i Utp va_sl2 procesamiento de imagenes con  mat_lab i
Utp va_sl2 procesamiento de imagenes con mat_lab i
 
Utp pdi_2014-2 lab2
 Utp pdi_2014-2 lab2 Utp pdi_2014-2 lab2
Utp pdi_2014-2 lab2
 
Utp pdiva_lab3_ introduccion al procesamiento de imagenes con mat_lab
 Utp pdiva_lab3_ introduccion al procesamiento de imagenes con  mat_lab Utp pdiva_lab3_ introduccion al procesamiento de imagenes con  mat_lab
Utp pdiva_lab3_ introduccion al procesamiento de imagenes con mat_lab
 
Informe proyecto señales y sistemas ,ingenieria electronica-UNSAAC
Informe proyecto señales y sistemas ,ingenieria electronica-UNSAACInforme proyecto señales y sistemas ,ingenieria electronica-UNSAAC
Informe proyecto señales y sistemas ,ingenieria electronica-UNSAAC
 
Práctica 4 matlab 20_noviembre_2017
Práctica 4 matlab 20_noviembre_2017Práctica 4 matlab 20_noviembre_2017
Práctica 4 matlab 20_noviembre_2017
 
Procesamiento de imagenes
Procesamiento de imagenesProcesamiento de imagenes
Procesamiento de imagenes
 
Entorno visual p2
Entorno visual p2Entorno visual p2
Entorno visual p2
 
Imagenes
ImagenesImagenes
Imagenes
 
Imagenes
ImagenesImagenes
Imagenes
 
65 Php. Diagramas De Sectores
65 Php. Diagramas De Sectores65 Php. Diagramas De Sectores
65 Php. Diagramas De Sectores
 

Mehr von Percy Julio Chambi Pacco (8)

Control PID de un levitador magnético
Control PID de un levitador magnéticoControl PID de un levitador magnético
Control PID de un levitador magnético
 
GPRS - EDGE
GPRS - EDGEGPRS - EDGE
GPRS - EDGE
 
Diseño de antena microstrip
Diseño de antena microstripDiseño de antena microstrip
Diseño de antena microstrip
 
Sensores Inductivos
Sensores InductivosSensores Inductivos
Sensores Inductivos
 
Sensores inductivos
Sensores inductivosSensores inductivos
Sensores inductivos
 
Programación del ATmega8
Programación del ATmega8Programación del ATmega8
Programación del ATmega8
 
Programación PIC16F84A
Programación PIC16F84AProgramación PIC16F84A
Programación PIC16F84A
 
Programación del PIC18F2550
Programación del PIC18F2550Programación del PIC18F2550
Programación del PIC18F2550
 

Kürzlich hochgeladen

describimos como son afectados las regiones naturales del peru por la ola de ...
describimos como son afectados las regiones naturales del peru por la ola de ...describimos como son afectados las regiones naturales del peru por la ola de ...
describimos como son afectados las regiones naturales del peru por la ola de ...DavidBautistaFlores1
 
HISPANIDAD - La cultura común de la HISPANOAMERICA
HISPANIDAD - La cultura común de la HISPANOAMERICAHISPANIDAD - La cultura común de la HISPANOAMERICA
HISPANIDAD - La cultura común de la HISPANOAMERICAJesus Gonzalez Losada
 
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docxEJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docxFabianValenciaJabo
 
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...Martin M Flynn
 
NUEVO PLAN Y PROGRAMAS DE ESTUDIO 2022.pdf
NUEVO PLAN Y PROGRAMAS DE ESTUDIO  2022.pdfNUEVO PLAN Y PROGRAMAS DE ESTUDIO  2022.pdf
NUEVO PLAN Y PROGRAMAS DE ESTUDIO 2022.pdfEDNAMONICARUIZNIETO
 
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...Carol Andrea Eraso Guerrero
 
HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).
HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).
HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).hebegris04
 
Fichas de Matemática TERCERO DE SECUNDARIA.pdf
Fichas de Matemática TERCERO DE SECUNDARIA.pdfFichas de Matemática TERCERO DE SECUNDARIA.pdf
Fichas de Matemática TERCERO DE SECUNDARIA.pdfssuser50d1252
 
SESIÓN DE APRENDIZAJE Leemos un texto para identificar los sinónimos y los an...
SESIÓN DE APRENDIZAJE Leemos un texto para identificar los sinónimos y los an...SESIÓN DE APRENDIZAJE Leemos un texto para identificar los sinónimos y los an...
SESIÓN DE APRENDIZAJE Leemos un texto para identificar los sinónimos y los an...GIANCARLOORDINOLAORD
 
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...YobanaZevallosSantil1
 
ENSEÑAR ACUIDAR EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
ENSEÑAR ACUIDAR  EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.ENSEÑAR ACUIDAR  EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
ENSEÑAR ACUIDAR EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.karlazoegarciagarcia
 
historieta materia de ecologías producto
historieta materia de ecologías productohistorieta materia de ecologías producto
historieta materia de ecologías productommartinezmarquez30
 
TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)
TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)
TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)jlorentemartos
 
Cuadernillo de actividades eclipse solar.pdf
Cuadernillo de actividades eclipse solar.pdfCuadernillo de actividades eclipse solar.pdf
Cuadernillo de actividades eclipse solar.pdflizcortes48
 
PRIMER GRADO SOY LECTOR PART1- MD EDUCATIVO.pdf
PRIMER GRADO SOY LECTOR PART1- MD  EDUCATIVO.pdfPRIMER GRADO SOY LECTOR PART1- MD  EDUCATIVO.pdf
PRIMER GRADO SOY LECTOR PART1- MD EDUCATIVO.pdfGabrieldeJesusLopezG
 
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024gharce
 
Acuerdo 05_04_24 Lineamientos del CTE.pdf
Acuerdo 05_04_24 Lineamientos del CTE.pdfAcuerdo 05_04_24 Lineamientos del CTE.pdf
Acuerdo 05_04_24 Lineamientos del CTE.pdfmiriamguevara21
 

Kürzlich hochgeladen (20)

describimos como son afectados las regiones naturales del peru por la ola de ...
describimos como son afectados las regiones naturales del peru por la ola de ...describimos como son afectados las regiones naturales del peru por la ola de ...
describimos como son afectados las regiones naturales del peru por la ola de ...
 
HISPANIDAD - La cultura común de la HISPANOAMERICA
HISPANIDAD - La cultura común de la HISPANOAMERICAHISPANIDAD - La cultura común de la HISPANOAMERICA
HISPANIDAD - La cultura común de la HISPANOAMERICA
 
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docxEJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
 
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...
 
NUEVO PLAN Y PROGRAMAS DE ESTUDIO 2022.pdf
NUEVO PLAN Y PROGRAMAS DE ESTUDIO  2022.pdfNUEVO PLAN Y PROGRAMAS DE ESTUDIO  2022.pdf
NUEVO PLAN Y PROGRAMAS DE ESTUDIO 2022.pdf
 
Sesión ¿Amor o egoísmo? Esa es la cuestión
Sesión  ¿Amor o egoísmo? Esa es la cuestiónSesión  ¿Amor o egoísmo? Esa es la cuestión
Sesión ¿Amor o egoísmo? Esa es la cuestión
 
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...
 
Acuerdo segundo periodo - Grado Noveno.pptx
Acuerdo segundo periodo - Grado Noveno.pptxAcuerdo segundo periodo - Grado Noveno.pptx
Acuerdo segundo periodo - Grado Noveno.pptx
 
El Bullying.
El Bullying.El Bullying.
El Bullying.
 
HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).
HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).
HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).
 
Fichas de Matemática TERCERO DE SECUNDARIA.pdf
Fichas de Matemática TERCERO DE SECUNDARIA.pdfFichas de Matemática TERCERO DE SECUNDARIA.pdf
Fichas de Matemática TERCERO DE SECUNDARIA.pdf
 
SESIÓN DE APRENDIZAJE Leemos un texto para identificar los sinónimos y los an...
SESIÓN DE APRENDIZAJE Leemos un texto para identificar los sinónimos y los an...SESIÓN DE APRENDIZAJE Leemos un texto para identificar los sinónimos y los an...
SESIÓN DE APRENDIZAJE Leemos un texto para identificar los sinónimos y los an...
 
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...
 
ENSEÑAR ACUIDAR EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
ENSEÑAR ACUIDAR  EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.ENSEÑAR ACUIDAR  EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
ENSEÑAR ACUIDAR EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
 
historieta materia de ecologías producto
historieta materia de ecologías productohistorieta materia de ecologías producto
historieta materia de ecologías producto
 
TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)
TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)
TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)
 
Cuadernillo de actividades eclipse solar.pdf
Cuadernillo de actividades eclipse solar.pdfCuadernillo de actividades eclipse solar.pdf
Cuadernillo de actividades eclipse solar.pdf
 
PRIMER GRADO SOY LECTOR PART1- MD EDUCATIVO.pdf
PRIMER GRADO SOY LECTOR PART1- MD  EDUCATIVO.pdfPRIMER GRADO SOY LECTOR PART1- MD  EDUCATIVO.pdf
PRIMER GRADO SOY LECTOR PART1- MD EDUCATIVO.pdf
 
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
 
Acuerdo 05_04_24 Lineamientos del CTE.pdf
Acuerdo 05_04_24 Lineamientos del CTE.pdfAcuerdo 05_04_24 Lineamientos del CTE.pdf
Acuerdo 05_04_24 Lineamientos del CTE.pdf
 

Procesamiento de imágenes con Matlab

  • 1. PROCESAMIENTO DE IMÁGENES CON MATLAB 1 http://lonely113.blogspot.com
  • 2. Lectura de Imágenes 2 Mediante el comando: Imagen=imread(‘nombre.extensión’) La imagen a leer debe encontrarse en la carpeta de trabajo de Matlab. Los formatos de imagen soportados por Matlab son: Formato Extensión TIFF .tiff JPEG .jpg GIF .gif BMP .bmp PNG .png XWD .xwd http://lonely113.blogspot.com
  • 3. Ejemplo: Lectura de una imagen *.jpg 3 La imagen "fruta.jpg" se encuentra en el directorio de trabajo. >> Im_RGB=imread('fruta.jpg'); http://lonely113.blogspot.com
  • 4. Representación de Imágenes en Matlab 4 En Matlab una imagen en formato de color RGB se representa por tres matrices bidimensionales, correspondientes a los planos R, G y B. 1=R 2=G 3=B http://lonely113.blogspot.com
  • 5. Obtención de los Planos RGB 5 Para obtener los planos R, G y B se ejecutan los comandos: Im_R=Imagen(:,:,1) Im_G=Imagen(:,:,2) Im_B=Imagen(:,:,3) Ejemplo: >> Im_R=Im_RGB(:,:,1); >> Im_G=Im_RGB(:,:,2); >> Im_B=Im_RGB(:,:,3); http://lonely113.blogspot.com
  • 6. Tamaño de la Imagen 6 Obtención del tamaño de Imagen: >> [m,n,p]=size(Im_RGB) m= 600 n= 800 p= 3 Im_RGB: 600x800 3 planos (R,G y B) http://lonely113.blogspot.com
  • 7. Despliegue de Imágenes 7 Se realiza con el comando: Imshow(Imagen) Dónde: Imagen es del tipo uint8. >> imshow(Im_RGB) http://lonely113.blogspot.com
  • 8. Escritura de Imágenes 8 Con el comando: imwrite(Imagen,’nombre.extensión’) >> imwrite(Im_RGB,'imagen.jpg'); http://lonely113.blogspot.com
  • 9. Lectura de Valor de Pixeles 9 Obtención de valor de pixel Imagen(m,n) ; Cuando Imagen está en escala de grises (un solo plano). Imagen(m,n,p) ; Para imagen RGB. Devuelve el valor del pixel correspondiente al plano p (1, 2 ó 3). Dónde: m,n son las coordenadas del pixel. >> Im_RGB(300,300,1) ans = 255 >> Im_RGB(300,300,2) ans = 178 >> Im_RGB(300,300,3) ans = 10 http://lonely113.blogspot.com
  • 10. Selección manual y Lectura de Valor de Pixel 10  Mostrar la imagen con el comando imshow.  Escribir el comando: pixel=impixel;  Clic en el pixel y Enter. >> imshow(Im_RGB) >> pixel=impixel pixel = 252 144 115 http://lonely113.blogspot.com
  • 11. Edición de Pixeles 11 Para modificar el valor de un pixel: Imagen(m,n)=x ; Para una imagen en escala de grises. imagen(m,n,p)=x ; Para una imagen RGB. Dónde: x es un número entero entre 0 y 255 correspondiente a escala de grises (0=negro y 255=Blanco) >> Im_RGB(200,750,1)=255; >> Im_RGB(200,750,2)=255; >> Im_RGB(200,750,3)=255; http://lonely113.blogspot.com
  • 12. Perfil de Imagen 12  Mostrar la imagen con el comando: imshow.  Escribir el comando: improfile  Trazar la línea para obtener el perfil en la imagen (clic en inicio y clic en final) y Enter.  Si se desea se puede guardar el perfil en una variable. Ejecutando: perfil=improfile; 300 >> imshow(Im_RGB) >> improfile 250 200 150 100 50 0 0 50 100 150 200 250 300 350 400 450 500 Distance along profile http://lonely113.blogspot.com
  • 13. Submuestreo 13 Submuestrear una imagen reduce su tamaño y permite que el procesamiento posterior de la imagen se agilice. a11 a12 a13 a14 a15 a16 a17 a18 … a1n Se toman pixeles equidistantes (muestras), dependiendo del factor elegido, y se desecha el resto de pixeles. Imagen_ sub=Imagen(1:a:end,1:a:end,1:1:end) Dónde: a es el factor de muestreo. Si a=2 la imagen se reduce a la mitad. http://lonely113.blogspot.com
  • 14. Ejemplo: Submuestreo de la imagen Im_RGB por un factor de 4. 14 >> Im_sub=Im_RGB(1:4:end,1:4:end,1:1:end); >> imshow(Im_sub) http://lonely113.blogspot.com
  • 15. Transformación Uint8 - Double 15  En algunos casos es necesario que la imagen a procesar sea del tipo "double", ya que uint8 admite sólo valores enteros entre 0 y 255.  Para transformar de uint8 a double y viceversa: Imagen_double=double(Imagen_uint8) Imagen_uint8=uint8(Imagen_double)  El comando imshow sólo muestra imágenes del tipo uint8. http://lonely113.blogspot.com
  • 16. Ejemplo: Se requiere resaltar el gris en una imagen por un factor 0.25. 16 >> Im_double=double(Im_RGB); >> Im_double=Im_double*0.25; >> Im_uint8=uint8(Im_double); >> Imshow(Im_uint8) http://lonely113.blogspot.com
  • 17. Filtraje 17 Se realiza mediante convolución de matrices. Dónde: Imagen es la matríz a filtrar. f es la matríz filtro. b11,b12,…,bmn son los elementos de la matríz de salida. http://lonely113.blogspot.com
  • 18. Filtraje 18  Se puede utilizar el comando: imagen2=filter2(filter,Imagen); Dónde: filter es la matriz filtro. El comando filter2 no admite uint8, por lo tanto la imagen a filtrar se debe convertir al tipo double. El filtraje se debe realizar plano por plano en una imagen RGB.  Se agrega ruido a una imagen con el comando imnoise. Revisar los archivos de ayuda de Matlab para mas información. http://lonely113.blogspot.com
  • 19. Ejemplo: Filtraje promedio 19 Para eliminar o reducir el ruido de una imagen. >> foto=imread('fruta.jpg'); >> foto=imnoise(foto,'salt & pepper'); >> foto_R=foto(:,:,1); >> foto_G=foto(:,:,2); >> foto_B=foto(:,:,3); >> filtro=1/9*[1 1 1;1 1 1;1 1 1]; >> foto2_R=filter2(filtro,double(foto_R)); >> foto2_G=filter2(filtro,double(foto_G)); >> foto2_B=filter2(filtro,double(foto_B)); >> foto2(:,:,1)=foto2_R; >> foto2(:,:,2)=foto2_G; >> foto2(:,:,3)=foto2_B; >> imshow(uint8(foto)) >> figure,imshow(uint8(foto2)) http://lonely113.blogspot.com
  • 20. Ejemplo: Detección de bordes. 20  Se puede realizar similar al caso anterior, definiendo un filtro para detección de bordes.  La imagen a filtrar debe estar en escala de grises.  Para convertir RGB a escala de grises se utiliza el comando: Imagen_gray=rgb2gray(Imagen_RGB); >> filter=[1 2 1;0 0 0;-1 -2 -1]; >> Im_RGB=imread('medusa.jpg'); >> Im_gray=rgb2gray(Im_RGB); >> Im_edge=filter2(filter,Im_gray); >> imshow(Im_RGB); >>figure,imshow(Im_edge); http://lonely113.blogspot.com
  • 21. Filtro Mediana 21  Se realiza para atenuar el ruido de una imagen.  Usualmente se aplica a imágenes en escala de grises. Imagen2=medfilt2(Imagen) Ejemplo: >> Im_RGB=imread('fruta.jpg'); >> Im_gray=rgb2gray(Im_RGB); >> Im_gray=imnoise(Im_gray, 'salt & pepper'); >> imshow(Im_gray) >> Im_filt=medfilt2(Im_gray); >> figure, imshow(Im_filt) http://lonely113.blogspot.com
  • 22. Detección de Bordes 22  Se realiza con el comando: imagen_edge=edge(imagen_gray,’mascara’);  Se requiere que la imagen esté en escala de grises.  mascara es el tipo de mascara a utilizar (sobel, canny,prewit, …) ya predefinidas en Matlab. http://lonely113.blogspot.com
  • 23. Ejemplo: 23 Se realiza la detección de bordes de una imagen utilizando la máscara de "sobel". >> Im_RGB=imread('Penguins.jpg'); >> Im_gray=rgb2gray(Im_RGB); >> Im_edge=edge(Im_gray,'sobel'); >> imshow(Im_edge) http://lonely113.blogspot.com
  • 24. Binarización 24  Conversión de una imagen en escala de grises a una imagen lógica (0=negro, 1=blanco).  Se realiza con el comando: Imagen_bin=imagen<=Umbral Dónde: Umbral es un número entre 0 y 255.  También se puede usar el siguiente comando cuando se requiere binarizar una imagen RGB directamente. Imagen_bin=im2bw(Imagen,level) Dónde: level es el nivel de umbral entre 0 y 1. http://lonely113.blogspot.com
  • 25. Ejemplo: Método 1. 25 Binarización de una imagen con un umbral de 128. >> Im_bin=Im_gray>=128 http://lonely113.blogspot.com
  • 26. Ejemplo: Método 2. 26 >> Im_bin=im2bw(Im_RGB,0.5) http://lonely113.blogspot.com
  • 27. Erosión y Dilatación 27 Son las operaciones morfológicas más utilizadas. DILATACIÓN: Adiciona pixeles en las fronteras de la imagen. EROSIÓN: Remueve pixeles de las fronteras de la imagen. Ambas operaciones se aplican a imágenes binarizadas. http://lonely113.blogspot.com
  • 28. Dilatación 28 Se utiliza el comando: Result=imdilate(Imagen,SE) Dónde: SE es la estructura del arreglo a utilizar como rejilla. Imagen es previamente binarizada. Existen varias maneras de obtener una estructura SE. Se realiza mediante el comando "strel". Revisar los archivos de ayuda de Matlab. http://lonely113.blogspot.com
  • 29. Dilatación 29 Suponiendo que se utiliza una matriz identidad de orden 3 como rejilla (mostrada con bordes resaltados en la imagen), el resultado de aplicar la operación de dilatación en el pixel que se traslapa con el elemento central de la rejilla es: "Si alguno de los pixeles de la rejilla configurados como 1 coincide con al menos uno de la imagen el pixel resultante es 1". http://lonely113.blogspot.com
  • 30. Ejemplo: 30 Aplicando dilatación a una imagen binarizada, utilizando una estructura generada a partir de una matriz cuadrada de "1" de orden 30. >> SE=strel('square',30); >> Im_RGB=imread('imagen.jpg'); >> Im_gray=rgb2gray(Im_RGB); >> Im_edge=edge(Im_gray,'sobel'); >> Im_dilate=imdilate(Im_edge,se); >> imshow(Im_edge); >> figure,imshow(Im_dilate) http://lonely113.blogspot.com
  • 31. Erosión 31 Se utiliza el comando: Result=imerode(Imagen,SE) Dónde: SE es la estructura del arreglo a utilizar como rejilla. Imagen es previamente binarizada. http://lonely113.blogspot.com
  • 32. Erosión 32 Suponiendo que se utiliza una matriz identidad de orden 3 como rejilla (mostrada con bordes resaltados en la imagen), el resultado de aplicar la operación de erosión en el pixel que se traslapa con el elemento central de la rejilla es: "Todos los pixeles de la rejilla configurados como 1 deben coincidir con todos los de la imagen, si esto no sucede el resultado del pixel es 0". http://lonely113.blogspot.com
  • 33. Ejemplo: 33 Aplicando la operación de erosión a la imagen dilatada utilizando una estructura generada por una matriz cuadrada de "1" de orden 15. >> SE=strel('square',15); >> Im_erode=imerode(Im_dilate,SE); >> imshow(Im_dilate) >> figure,imshow(Im_erode) http://lonely113.blogspot.com
  • 34. Vecindad 34 Para determinar si dos pixeles son vecinos o no (adyacentes). Vecindad-4: Se consideran pixeles conectados en direcciones perpendiculares (arriba, abajo, derecha, izquierda). Vecindad-8: Se consideran también los pixeles vecinos diagonales. Vecindad-4 Vecindad-8 http://lonely113.blogspot.com
  • 35. Conectividad 35 Dos pixeles están con la misma etiqueta están conectados si existe un camino del uno al otro a través de pixeles vecinos con la misma etiqueta. La conectividad en Matlab puede ser: Conexión-4: Se toma en cuenta la vecindad-4 para determinar la conectividad de pixeles. Conexión-8: Se toma en cuenta la vecindad-8 para determinar la conectividad de pixeles. ETIQUETADO: Agrupación de pixeles con características similares Si se elige conectividad conexión-4 se consideraría como dos objetos diferentes, pero si se elige conectividad conexión-8 se consideraría como un solo objeto (vecindad diagonal). http://lonely113.blogspot.com
  • 36. Cuenta y Etiquetado de Objetos en una Imagen 36 Para contar la cantidad de objetos presentes en una imagen se realiza el procedimiento: 1. Leer la imagen. 2. Convertirla a escala de grises y posteriormente binarizarla. 3. En la imagen binarizada se requiere que los objetos a contar estén en blanco (1) y con fondo negro (0), si no fuera así se puede aplicar el comando: Im_bin=not(Im_bin) 4. Ejecutar el siguiente comando para etiquetar los objetos. Cada objeto encontrado se etiqueta con un número entero: 1, 2, 3,…: Im_label=bwlabel(Im_bin,C) Dónde: C=4 u 8 (Conexión) 5. Para obtener el número de objetos: n=max(max(Im_label)) http://lonely113.blogspot.com
  • 37. Ejemplo: 37 Se contará el número de objetos de la siguiente imagen: >> Im_RGB=imread('imagen.jpg'); >> Im_bin=im2bw(Im_RGB,0.5) >>imshow(Im_bin) >> Im_bin=not(Im_bin); >> imshow(Im_bin) >> Im_label=bwlabel(Im_bin,8); >> n=max(max(Im_label)) n= 5 http://lonely113.blogspot.com
  • 38. Selección de un Objeto 38 Para seleccionar manualmente un objeto y aislarlo se realiza el procedimiento: 1. Mostrar la imagen binarizada con el comando imshow. 2. ejecutar el comando: Im_sel=bwselect(C) Dónde: C=4 u 8 (Conexión) 3. Clic en el objeto y Enter. 4. Si se desea, desplegar el objeto seleccionado Im_sel. http://lonely113.blogspot.com
  • 39. Ejemplo: 39 Se selecciona el objeto inferior derecho y se aísla en la variable Im_sel. >> imshow(Im_bin) >> Im_sel=bwselect(8); >> imshow(Im_sel) http://lonely113.blogspot.com
  • 40. Captura de Imágenes Mediante Cámaras Conectadas a la Pc 40 Resulta de suma utilidad para implementar algoritmos de visión o adquisición de imágenes en tiempo real utilizando dispositivos simples y de bajo costo tales como las webcams. Matlab incluye el toolbox "Image Acquisition" para este fin. El toolbox incluye la herramienta Image Aquisition tool "imaqtool" que se utilizará posteriormente. http://lonely113.blogspot.com
  • 41. Obtención de Información del Dispositivo 41 Comandos a utilizar: Imaqhwinfo Devuelve la información del hardware y software disponibles, tales como: Adaptador de video instalado, versión de Matlab, Toolbox (nombre y versión). Imaqhwinfo(‘adaptor’) Donde adaptor es el nombre del adaptador instalado, por lo general winvideo. Este comando devuelve información relacionada al adaptador. Imaqhwinfo(‘adaptor’,DeviceID) Donde DeviceID es el ID del dispositivo a utilizar obtenido con el comando anterior. Si sólo se cuenta con un dispositivo conectado el DeviceID será 1. Este comando muestra información del dispositivo conectado (cámara) . http://lonely113.blogspot.com
  • 42. Ejemplo: Ejecutando los comandos 42 >> imaqhwinfo ans = InstalledAdaptors: {'winvideo'} El adaptador instalado es MATLABVersion: '7.8 (R2009a)' "winvideo". ToolboxName: 'Image Acquisition Toolbox' ToolboxVersion: '3.3 (R2009a)‘ >> imaqhwinfo('winvideo') Hay un dispositivo de ans = AdaptorDllName: [1x81 char] adquisición de imágenes AdaptorDllVersion: '3.3 (R2009a)' AdaptorName: 'winvideo' instalado (DeviceID). DeviceIDs: {[1]} DeviceInfo: [1x1 struct] >> imaqhwinfo('winvideo',1) El dispositivo instalado es ans = DefaultFormat: 'RGB24_640x480' una webcam "ilook300". DeviceFileSupported: 0 Soporta 13 formatos de DeviceName: 'iLook 300' DeviceID: 1 adquisición. Formato por ObjectConstructor: 'videoinput('winvideo', 1)' SupportedFormats: {1x13 cell} defecto: RGB 640x480. http://lonely113.blogspot.com
  • 43. Preparación del Dispositivo 43  Crear la estructura: cam=imaqhwinfo(‘adaptor’,DeviceID) Para poder obtener las características del dispositivo con facilidad. Por ejemplo, para obtener los formatos soportados: cam.SupportedFormats  Ejecutar el comando: video=videoinput(‘adaptor’,DeviceID,’Format’) Construye un objeto de entrada de video (nexo entre el dispositivo y Matlab). Si no se especifica Format se asume el formato por defecto. http://lonely113.blogspot.com
  • 44. Ejemplo: Preparación de dispositivo 44 >> cam=imaqhwinfo('winvideo',1); >> cam.SupportedFormats ans = Columns 1 through 4 'I420_160x120' 'I420_176x144' 'I420_320x240' 'I420_352x288' Columns 5 through 8 'I420_640x480' 'RGB24_1280x960' 'RGB24_1600x1200' 'RGB24_160x120' Columns 9 through 12 'RGB24_176x144' 'RGB24_320x240' 'RGB24_352x288' 'RGB24_640x480' Column 13 'RGB24_800x600' >> video=videoinput('winvideo',1,'RGB24_640x480'); http://lonely113.blogspot.com
  • 45. Pre - Visualización 45 Para desplegar la pre-visualización de las imágenes a capturar ejecutar el comando: preview(video) >> preview(video) http://lonely113.blogspot.com
  • 46. Captura 46 Para capturar una imagen ejecutar: Image=getsnapshot(‘cam’) >> foto=getsnapshot(video); >> imshow(foto) http://lonely113.blogspot.com
  • 47. Image Acquisition tool 47 Facilita el trabajo de realizar la captura de imágenes mediante línea de comandos. Para acceder a esta herramienta ejecutar: imaqtool >> imaqtool http://lonely113.blogspot.com
  • 48. Aplicaciones 48 Se presentan 3 aplicaciones sencillas del procesamiento de imágenes: 1. Detección de bordes de una imagen. 2. Cuenta de objetos de características similares presentes en una imagen. 3. Reconocimiento Óptico de Caracteres (OCR) mediante un algoritmo implementado por terceros. En todos los casos las imágenes serán obtenidas mediante una cámara web. http://lonely113.blogspot.com
  • 49. 1. Detección de bordes de una imagen 49 >> cam=imaqhwinfo(‘winvideo’,1); >> video=videoinput('winvideo',1); >> preview(video) >> Im_RGB=getsnapshot(video); >> imshow(Im_RGB) >> Im_gray=rgb2gray(Im_RGB); >> Im_gray=medfilt2(Im_gray); >> figure,imshow(Im_gray) >> Im_edge=edge(Im_gray,'sobel'); >> figure,imshow(Im_edge) >>Im_edge2=not(Im_edge); >> figure,imshow(Im_edge2) No se especifica formato de captura, entonces se asume el formato por defecto (RGB 640x480). Las imágenes obtenidas paso a paso se muestran en la siguiente diapositiva. http://lonely113.blogspot.com
  • 50. 1. Detección de Bordes de una Imagen 50 Im_RGB Im_gray Im_edge Im_edge2 http://lonely113.blogspot.com
  • 51. 2. Conteo de Objetos 51  Se desea contar el número de transistores en la imagen.  Para ello se utiliza el etiquetado de objetos, pero el problema es que si no se realiza tratamiento previo también se etiquetarán los pines de cada transistor.  Para resolver este problema primero se aplican las operaciones de erosión (hasta que desaparezcan los pines y solo quede el cuerpo) y luego dilatación (para obtener objetos a contar de regular tamaño). http://lonely113.blogspot.com
  • 52. 2. Conteo de Objetos 52 >> cam=imaqhwinfo(‘winvideo’,1); >> video=videoinput(‘winvideo’,1); >> Im_RGB=getsnapshot(video); >> imshow(Im_RGB) >> Im_bin=im2bw(Im_RGB,0.5); >> figure, imshow(Im_bin) >> Im_bin2=not(Im_bin); >> figure, imshow(Im_bin2) >> SE=strel('square',10); >> Im_erode=imerode(Im_bin2,SE); >> figure, imshow(Im_erode) >> Im_dilate=imdilate(Im_erode,SE); >> figure,imshow(Im_dilate) >> Im_label=bwlabel(Im_dilate,8); >> n=max(max(Im_label)) n= 10 http://lonely113.blogspot.com
  • 53. 2. Conteo de Objetos 53 Im_RGB Im_bin http://lonely113.blogspot.com
  • 54. 2. Conteo de Objetos 54 La imagen se invierte para poder seguir con el procedimiento de tratamiento de imagen. Si no se aplica erosión se etiquetaría cada objeto aislado, dando como resultado un número de objetos muy superior al real. Im_bin2 http://lonely113.blogspot.com
  • 55. 2. Conteo de Objetos 55 Im_erode Im_dilate Con estas dos operaciones se obtiene sólo el cuerpo de los transistores en su tamaño original, los pines ya fueros desechados. La imagen está lista ahora para el etiquetado y conteo. http://lonely113.blogspot.com
  • 56. 3. Reconocimiento de Caracteres 56  Se desea reconocer los caracteres presentes en una imagen adquirida mediante la webcam y almacenar el texto en un archivo .txt.  El algoritmo OCR utilizar se obtuvo de la página: http://www.matpic.com/esp/matlab/ocr.html.  Para usar el algoritmo los archivos a descargados se deben copiar a la carpeta de trabajo de Matlab.  La imagen se debe guardar con el nombre "TEST_1.jpg". Los caracteres deben estar en mayúsculas en negro y fondo blanco.  Una vez hecho esto ejecutar el comando: OCR http://lonely113.blogspot.com
  • 57. 3. Reconocimiento de Caracteres 57 >> cam=imaqhwinfo('winvideo',1); >> video=videoinput('winvideo',1); >> preview(video) >> text=getsnapshot(video); >> imshow(text) >> text_bin=im2bw(text,0.5); >> figure,imshow(text_bin) >> SE=strel('square',5); >> text_erode=imerode(text_bin,SE); >> figure,imshow(text_erode) >> text_dilate=imdilate(text_erode,SE); >> figure,imshow(text_dilate) >> text_fin=not(text_dilate); >> figure,imshow(text_fin) >> imwrite(text_fin,'TEST_1.jpg'); >> ocr http://lonely113.blogspot.com
  • 58. 3. Reconocimiento de Caracteres 58 text text_bin text_bin contiene elementos no deseados (puntos blancos) que podrían perjudicar el proceso de reconocimiento de caracteres. Estos elementos se eliminan aplicando la operación de erosión. http://lonely113.blogspot.com
  • 59. 3. Reconocimiento de Caracteres 59 text_erode text_dilate Enseguida se aplica la operación de dilatación para contrarrestar el efecto de la erosión en el texto. http://lonely113.blogspot.com
  • 60. 3. Reconocimiento de Caracteres 60 text_fin Es necesario que el texto esté en negro con fondo blanco para aplicar el algoritmo. http://lonely113.blogspot.com