Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
PROCESAMIENTO DE
             IMÁGENES CON MATLAB
                                1




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


Mediante el comando:
                       Imagen=imread(‘nom...
Ejemplo: Lectura de una imagen *.jpg
                                        3


La imagen "fruta.jpg" se encuentra en el ...
Representación de Imágenes en Matlab
                                4


En Matlab una imagen en formato de color RGB se
r...
Obtención de los Planos RGB
                                5


Para obtener los planos R, G y B se ejecutan los comandos:...
Tamaño de la Imagen
                                             6


Obtención del tamaño de Imagen:
                     ...
Despliegue de Imágenes
                                       7


Se realiza con el comando:
                             ...
Escritura de Imágenes
                                          8


Con el comando:
                       imwrite(Imagen,...
Lectura de Valor de Pixeles
                                                  9

Obtención de valor de pixel
  Imagen(m,n)...
Selección manual y Lectura de Valor de
                   Pixel
                                10


 Mostrar la imagen c...
Edición de Pixeles
                                        11


Para modificar el valor de un pixel:
          Imagen(m,n)...
Perfil de Imagen
                                                  12

    Mostrar la imagen con el comando: imshow.
   ...
Submuestreo
                                                13


Submuestrear una imagen reduce su tamaño y permite que
el...
Ejemplo: Submuestreo de la imagen Im_RGB
por un factor de 4.
                                              14


          ...
Transformación Uint8 - Double
                                 15


 En algunos casos es necesario que la imagen a proces...
Ejemplo: Se requiere resaltar el gris en una
imagen por un factor 0.25.
                                16




>> Im_doubl...
Filtraje
                                               17


Se realiza mediante convolución de matrices.


 Dónde: Imagen...
Filtraje
                                            18



 Se puede utilizar el comando:
                               ...
Ejemplo: Filtraje promedio
                                            19


Para eliminar o reducir el ruido de una imagen...
Ejemplo: Detección de bordes.
                                                             20

    Se puede realizar simi...
Filtro Mediana
                                            21


 Se realiza para atenuar el ruido de una imagen.
 Usualm...
Detección de Bordes
                                     22




 Se realiza con el comando:

   imagen_edge=edge(imagen_g...
Ejemplo:
                                               23

Se realiza la detección de bordes de una imagen utilizando la ...
Binarización
                                        24


 Conversión de una imagen en escala de grises a una
  imagen ló...
Ejemplo: Método 1.
                                        25


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

        ...
Ejemplo: Método 2.
                                          26




                                >> Im_bin=im2bw(Im_RGB...
Erosión y Dilatación
                                     27


Son las operaciones morfológicas más utilizadas.

DILATACIÓ...
Dilatación
                                    28


Se utiliza el comando:
                        Result=imdilate(Imagen,...
Dilatación
                                           29


Suponiendo que se utiliza una matriz identidad de orden 3 como ...
Ejemplo:
                                        30


Aplicando dilatación a una imagen binarizada, utilizando una
estruct...
Erosión
                                      31




Se utiliza el comando:

                        Result=imerode(Imagen...
Erosión
                                           32


Suponiendo que se utiliza una matriz identidad de orden 3 como rej...
Ejemplo:
                                       33

Aplicando la operación de erosión a la imagen dilatada utilizando una
...
Vecindad
                                         34


Para determinar si dos pixeles son vecinos o no (adyacentes).
Vecin...
Conectividad
                                                 35


Dos pixeles están con la misma etiqueta están conectado...
Cuenta y Etiquetado de Objetos en una
                    Imagen
                                           36


Para cont...
Ejemplo:
                                        37

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


      >> Im...
Selección de un Objeto
                                        38


Para seleccionar manualmente un objeto y aislarlo se r...
Ejemplo:
                                      39

Se selecciona el objeto inferior derecho y se aísla en la
variable Im_s...
Captura de Imágenes Mediante Cámaras
            Conectadas a la Pc
                                40


Resulta de suma u...
Obtención de Información del Dispositivo
                                     41

Comandos a utilizar:
Imaqhwinfo
    Devu...
Ejemplo: Ejecutando los comandos
                                                          42

    >> imaqhwinfo
    ans =...
Preparación del Dispositivo
                                          43

 Crear la estructura:

                       c...
Ejemplo: Preparación de dispositivo
                                              44


               >> cam=imaqhwinfo('w...
Pre - Visualización
                                          45


Para desplegar la pre-visualización de las imágenes a c...
Captura
                                           46


Para capturar una imagen ejecutar:
                               ...
Image Acquisition tool
                                            47


Facilita el trabajo de realizar la captura de imág...
Aplicaciones
                                     48

 Se presentan 3 aplicaciones sencillas del procesamiento de
 imágene...
1. Detección de bordes de una imagen
                                                49


                                ...
1. Detección de Bordes de una Imagen
                                50




 Im_RGB                              Im_gray

...
2. Conteo de Objetos
                                51

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

 P...
2. Conteo de Objetos
                                                     52


                                >> cam=imaq...
2. Conteo de Objetos
                                    53




                           Im_RGB        Im_bin



http://...
2. Conteo de Objetos
                                     54




                                          La imagen se in...
2. Conteo de Objetos
                                           55




                      Im_erode                     ...
3. Reconocimiento de Caracteres
                                     56


   Se desea reconocer los caracteres presentes ...
3. Reconocimiento de Caracteres
                                                 57


                                >> c...
3. Reconocimiento de Caracteres
                                             58




                         text         ...
3. Reconocimiento de Caracteres
                                   59




                    text_erode                  ...
3. Reconocimiento de Caracteres
                                  60




                       text_fin

  Es necesario q...
http://lonely113.blogspot.com   61
You’ve finished this document.
Download and read it offline.
Upcoming SlideShare
Segmentación de imagenes
Next
Upcoming SlideShare
Segmentación de imagenes
Next
Download to read offline and view in fullscreen.

81

Share

Procesamiento digital de imágenes con matlab

Download to read offline

Procesamiento digital de imágenes con Matlab

Related Audiobooks

Free with a 30 day trial from Scribd

See all

Procesamiento digital de imágenes con matlab

  1. 1. PROCESAMIENTO DE IMÁGENES CON MATLAB 1 http://lonely113.blogspot.com
  2. 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. 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. 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. 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. 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. 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. 8. Escritura de Imágenes 8 Con el comando: imwrite(Imagen,’nombre.extensión’) >> imwrite(Im_RGB,'imagen.jpg'); http://lonely113.blogspot.com
  9. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 26. Ejemplo: Método 2. 26 >> Im_bin=im2bw(Im_RGB,0.5) http://lonely113.blogspot.com
  27. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 46. Captura 46 Para capturar una imagen ejecutar: Image=getsnapshot(‘cam’) >> foto=getsnapshot(video); >> imshow(foto) http://lonely113.blogspot.com
  47. 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. 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. 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. 50. 1. Detección de Bordes de una Imagen 50 Im_RGB Im_gray Im_edge Im_edge2 http://lonely113.blogspot.com
  51. 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. 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. 53. 2. Conteo de Objetos 53 Im_RGB Im_bin http://lonely113.blogspot.com
  54. 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. 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. 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. 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. 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. 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. 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
  61. 61. http://lonely113.blogspot.com 61
  • GabrielSanchezSolis1

    Jan. 27, 2020
  • RaquelClementeRamirez

    Oct. 7, 2018
  • SystemMx

    Jul. 9, 2018
  • rolycabrera

    Jun. 17, 2017
  • terk021

    May. 1, 2017
  • david1814sc

    Apr. 24, 2017
  • tangokiss

    Nov. 9, 2016
  • JosIchuta

    Nov. 4, 2016
  • SergioSanchez102

    Nov. 3, 2016
  • rubendario210

    Nov. 2, 2016
  • henrryalexsilvadiestra

    Oct. 7, 2016
  • UnAgosto

    Jun. 4, 2016
  • rocano

    May. 25, 2016
  • GiovanniMedrano2

    May. 19, 2016
  • SCDOS

    May. 3, 2016
  • MitchelStevensonPisc

    Mar. 28, 2016
  • RoxanaOrdoez

    Mar. 18, 2016
  • LuisMiguelVazquezB

    Mar. 12, 2016
  • RichardRodriguez92

    Feb. 19, 2016
  • leonhiguera

    Feb. 14, 2016

Procesamiento digital de imágenes con Matlab

Views

Total views

238,962

On Slideshare

0

From embeds

0

Number of embeds

3,218

Actions

Downloads

8,848

Shares

0

Comments

0

Likes

81

×