SlideShare una empresa de Scribd logo
1 de 61
Descargar para leer sin conexión
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

Más contenido relacionado

La actualidad más candente

Variables y constantes en matlab
Variables y constantes en matlabVariables y constantes en matlab
Variables y constantes en matlabAngel Apugllon
 
Manipulación del contraste de una imágen monocromática por transformación exp...
Manipulación del contraste de una imágen monocromática por transformación exp...Manipulación del contraste de una imágen monocromática por transformación exp...
Manipulación del contraste de una imágen monocromática por transformación exp...Ivan Luis Jimenez
 
Diagrama Fasorial de un Transformador YZ5 y Otros
Diagrama Fasorial de un Transformador YZ5 y OtrosDiagrama Fasorial de un Transformador YZ5 y Otros
Diagrama Fasorial de un Transformador YZ5 y OtrosGabriel Ortiz Gallardo
 
10 transformada fourier
10 transformada fourier10 transformada fourier
10 transformada fourierAlex Jjavier
 
Rectificacion monofasica uader-2012
Rectificacion monofasica uader-2012Rectificacion monofasica uader-2012
Rectificacion monofasica uader-2012jona silvestri
 
Soluciones: Openheim - Sistemas y señales - cap 5
Soluciones: Openheim - Sistemas y señales - cap 5Soluciones: Openheim - Sistemas y señales - cap 5
Soluciones: Openheim - Sistemas y señales - cap 5Carlos Brizuela
 
Segmentación por umbralización método de otsu
Segmentación por umbralización   método de otsuSegmentación por umbralización   método de otsu
Segmentación por umbralización método de otsuJorge Antonio Parra Serquen
 
Transformada discreta de fourier en imagenes
Transformada discreta de fourier en  imagenesTransformada discreta de fourier en  imagenes
Transformada discreta de fourier en imagenesDayana Guzman
 
El transistor bjt
El transistor bjtEl transistor bjt
El transistor bjtFenix Alome
 
Ejercicios resueltos con diodos
Ejercicios resueltos con diodosEjercicios resueltos con diodos
Ejercicios resueltos con diodosvstiven18
 
5 polarizacion divisor de voltaje del transistor bjt
5 polarizacion divisor de voltaje del transistor bjt5 polarizacion divisor de voltaje del transistor bjt
5 polarizacion divisor de voltaje del transistor bjtAndresChaparroC
 
Grafica iv del diodo de silicio (practica)
Grafica iv del diodo de silicio (practica)Grafica iv del diodo de silicio (practica)
Grafica iv del diodo de silicio (practica)Miguel Angel Peña
 
Procesamiento digital de señales con matlab
Procesamiento digital de señales con matlabProcesamiento digital de señales con matlab
Procesamiento digital de señales con matlabPercy Julio Chambi Pacco
 
Presentación final proyecto electrónico
Presentación final   proyecto electrónicoPresentación final   proyecto electrónico
Presentación final proyecto electrónicoApaivaM
 
Señales de tiempo continuo y discreto MATLAB
Señales de tiempo continuo y discreto MATLABSeñales de tiempo continuo y discreto MATLAB
Señales de tiempo continuo y discreto MATLABJose Agustin Estrada
 
Representacion y orientacion de un robot
Representacion y orientacion de un robotRepresentacion y orientacion de un robot
Representacion y orientacion de un robotMatrix cuais cuacharita
 
Las fuentes de alimentación conmutadas (switching)
Las fuentes de alimentación conmutadas (switching)Las fuentes de alimentación conmutadas (switching)
Las fuentes de alimentación conmutadas (switching)Jomicast
 
Matriz jacobiana
Matriz jacobianaMatriz jacobiana
Matriz jacobianaRuben Borja
 

La actualidad más candente (20)

Variables y constantes en matlab
Variables y constantes en matlabVariables y constantes en matlab
Variables y constantes en matlab
 
Manipulación del contraste de una imágen monocromática por transformación exp...
Manipulación del contraste de una imágen monocromática por transformación exp...Manipulación del contraste de una imágen monocromática por transformación exp...
Manipulación del contraste de una imágen monocromática por transformación exp...
 
Diagrama Fasorial de un Transformador YZ5 y Otros
Diagrama Fasorial de un Transformador YZ5 y OtrosDiagrama Fasorial de un Transformador YZ5 y Otros
Diagrama Fasorial de un Transformador YZ5 y Otros
 
10 transformada fourier
10 transformada fourier10 transformada fourier
10 transformada fourier
 
Rectificacion monofasica uader-2012
Rectificacion monofasica uader-2012Rectificacion monofasica uader-2012
Rectificacion monofasica uader-2012
 
Soluciones: Openheim - Sistemas y señales - cap 5
Soluciones: Openheim - Sistemas y señales - cap 5Soluciones: Openheim - Sistemas y señales - cap 5
Soluciones: Openheim - Sistemas y señales - cap 5
 
Operaciones Morfologicas
Operaciones MorfologicasOperaciones Morfologicas
Operaciones Morfologicas
 
Segmentación por umbralización método de otsu
Segmentación por umbralización   método de otsuSegmentación por umbralización   método de otsu
Segmentación por umbralización método de otsu
 
Transformada discreta de fourier en imagenes
Transformada discreta de fourier en  imagenesTransformada discreta de fourier en  imagenes
Transformada discreta de fourier en imagenes
 
El transistor bjt
El transistor bjtEl transistor bjt
El transistor bjt
 
Ejercicios resueltos con diodos
Ejercicios resueltos con diodosEjercicios resueltos con diodos
Ejercicios resueltos con diodos
 
5 polarizacion divisor de voltaje del transistor bjt
5 polarizacion divisor de voltaje del transistor bjt5 polarizacion divisor de voltaje del transistor bjt
5 polarizacion divisor de voltaje del transistor bjt
 
Grafica iv del diodo de silicio (practica)
Grafica iv del diodo de silicio (practica)Grafica iv del diodo de silicio (practica)
Grafica iv del diodo de silicio (practica)
 
Procesamiento digital de señales con matlab
Procesamiento digital de señales con matlabProcesamiento digital de señales con matlab
Procesamiento digital de señales con matlab
 
Presentación final proyecto electrónico
Presentación final   proyecto electrónicoPresentación final   proyecto electrónico
Presentación final proyecto electrónico
 
Señales de tiempo continuo y discreto MATLAB
Señales de tiempo continuo y discreto MATLABSeñales de tiempo continuo y discreto MATLAB
Señales de tiempo continuo y discreto MATLAB
 
Representacion y orientacion de un robot
Representacion y orientacion de un robotRepresentacion y orientacion de un robot
Representacion y orientacion de un robot
 
Circuitos digitales-problemas
Circuitos digitales-problemasCircuitos digitales-problemas
Circuitos digitales-problemas
 
Las fuentes de alimentación conmutadas (switching)
Las fuentes de alimentación conmutadas (switching)Las fuentes de alimentación conmutadas (switching)
Las fuentes de alimentación conmutadas (switching)
 
Matriz jacobiana
Matriz jacobianaMatriz jacobiana
Matriz jacobiana
 

Destacado

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
 

Destacado (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
 

Similar a Procesamiento digital 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 pdiva_lab4_procesamiento digital de imagenes con matlab ii
 Utp pdiva_lab4_procesamiento digital de imagenes con matlab ii Utp pdiva_lab4_procesamiento digital de imagenes con matlab ii
Utp pdiva_lab4_procesamiento digital de imagenes con matlab iijcbenitezp
 
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
 

Similar a Procesamiento digital 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 pdiva_lab4_procesamiento digital de imagenes con matlab ii
 Utp pdiva_lab4_procesamiento digital de imagenes con matlab ii Utp pdiva_lab4_procesamiento digital de imagenes con matlab ii
Utp pdiva_lab4_procesamiento digital de imagenes con matlab ii
 
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
 

Más de 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
 

Último

SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxYadi Campos
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAEl Fortí
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioELIASAURELIOCHAVEZCA1
 
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIASISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIAFabiolaGarcia751855
 
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VS
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VSSEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VS
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VSYadi Campos
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024IES Vicent Andres Estelles
 
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptxRESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptxpvtablets2023
 
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADOTIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADOPsicoterapia Holística
 
Diapositivas de animales reptiles secundaria
Diapositivas de animales reptiles secundariaDiapositivas de animales reptiles secundaria
Diapositivas de animales reptiles secundariaAlejandraFelizDidier
 
Infografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdfInfografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdfAlfaresbilingual
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Alejandrino Halire Ccahuana
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfMercedes Gonzalez
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfpatriciaines1993
 
Biografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfBiografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfGruberACaraballo
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Juan Martín Martín
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Katherine Concepcion Gonzalez
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 
EL HABITO DEL AHORRO en tu idea emprendedora22-04-24.pptx
EL HABITO DEL AHORRO en tu idea emprendedora22-04-24.pptxEL HABITO DEL AHORRO en tu idea emprendedora22-04-24.pptx
EL HABITO DEL AHORRO en tu idea emprendedora22-04-24.pptxsisimosolorzano
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOluismii249
 

Último (20)

SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literario
 
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIASISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
 
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VS
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VSSEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VS
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VS
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024
 
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptxRESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
 
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADOTIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
 
Diapositivas de animales reptiles secundaria
Diapositivas de animales reptiles secundariaDiapositivas de animales reptiles secundaria
Diapositivas de animales reptiles secundaria
 
Infografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdfInfografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdf
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
 
Biografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfBiografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdf
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
 
EL HABITO DEL AHORRO en tu idea emprendedora22-04-24.pptx
EL HABITO DEL AHORRO en tu idea emprendedora22-04-24.pptxEL HABITO DEL AHORRO en tu idea emprendedora22-04-24.pptx
EL HABITO DEL AHORRO en tu idea emprendedora22-04-24.pptx
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
 
Tema 11. Dinámica de la hidrosfera 2024
Tema 11.  Dinámica de la hidrosfera 2024Tema 11.  Dinámica de la hidrosfera 2024
Tema 11. Dinámica de la hidrosfera 2024
 

Procesamiento digital 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