Procesamiento digital de imágenes con matlab

168,551 views
168,463 views

Published on

Procesamiento digital de imágenes con Matlab

22 Comments
66 Likes
Statistics
Notes
  • 1 semestre de procesamiento de señales en 61 diapositivas, muy bueno y felicidades por tener la capacidad de resumir todo en tan corto espacio, solo una pregunta la conectividad es en 2D hay forma de obtenerla en 3D es decir los voxeles vecinos?
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Otro Excelente aporte ... Felicidades..
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Hola a todos, estoy creando un pequeño blog con toda la informacion referente al procesado de imágenes mediante la herramienta Matlab y quedria que vierais el blog, lo comentárais y pregunteis dudas o añadais sugerencias de cosas que podría realizar con las imágenes:

    http://matlabimagenes.blogspot.com.es/

    Para más informacion contactar por correo electrónico: nachete1993@gmail.com
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • @anamariagil77 yo hice un trabajo con redes neuronales para el reconocimiento de caracteres y de lo que más me sirvió fue la página de www.mathworks.com. Cuesta encontrar la información porque tiene demasiadas cosas y otra complicación es que está en ingles.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • gracias victoria por tu respuesta, estoy buscando computacion en la nube para el procesamiento y analisis de imagenes y no encuentro muy buena informacion. no conocen algun articulo, blog, trabajo que me pueda servir.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
168,551
On SlideShare
0
From Embeds
0
Number of Embeds
25
Actions
Shares
0
Downloads
6,849
Comments
22
Likes
66
Embeds 0
No embeds

No notes for slide

Procesamiento digital de imágenes con matlab

  1. 1. PROCESAMIENTO DE IMÁGENES CON MATLAB 1http://lonely113.blogspot.com
  2. 2. Lectura de Imágenes 2Mediante el comando: Imagen=imread(‘nombre.extensión’)La imagen a leer debe encontrarse en la carpeta de trabajo deMatlab. Los formatos de imagen soportados por Matlab son: Formato Extensión TIFF .tiff JPEG .jpg GIF .gif BMP .bmp PNG .png XWD .xwdhttp://lonely113.blogspot.com
  3. 3. Ejemplo: Lectura de una imagen *.jpg 3La imagen "fruta.jpg" se encuentra en el directorio detrabajo. >> Im_RGB=imread(fruta.jpg);http://lonely113.blogspot.com
  4. 4. Representación de Imágenes en Matlab 4En Matlab una imagen en formato de color RGB serepresenta por tres matrices bidimensionales,correspondientes a los planos R, G y B. 1=R 2=G 3=Bhttp://lonely113.blogspot.com
  5. 5. Obtención de los Planos RGB 5Para 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 6Obtenció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 7Se 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 8Con el comando: imwrite(Imagen,’nombre.extensión’) >> imwrite(Im_RGB,imagen.jpg);http://lonely113.blogspot.com
  9. 9. Lectura de Valor de Pixeles 9Obtenció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 = 10http://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 115http://lonely113.blogspot.com
  11. 11. Edición de Pixeles 11Para 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 13Submuestrear una imagen reduce su tamaño y permite queel procesamiento posterior de la imagen se agilice. a11 a12 a13 a14 a15 a16 a17 a18 … a1nSe toman pixeles equidistantes (muestras), dependiendo delfactor 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_RGBpor 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 unaimagen 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 17Se 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 19Para 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: 23Se 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. 25Binarización de una imagen con un umbral de 128. >> Im_bin=Im_gray>=128http://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 27Son 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 28Se 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 losarchivos de ayuda de Matlab.http://lonely113.blogspot.com
  29. 29. Dilatación 29Suponiendo que se utiliza una matriz identidad de orden 3 como rejilla (mostrada conbordes resaltados en la imagen), el resultado de aplicar la operación de dilatación en elpixel 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 dela imagen el pixel resultante es 1".http://lonely113.blogspot.com
  30. 30. Ejemplo: 30Aplicando dilatación a una imagen binarizada, utilizando unaestructura generada a partir de una matriz cuadrada de "1" deorden 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 31Se 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 32Suponiendo que se utiliza una matriz identidad de orden 3 como rejilla (mostrada conbordes resaltados en la imagen), el resultado de aplicar la operación de erosión en elpixel 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 laimagen, si esto no sucede el resultado del pixel es 0".http://lonely113.blogspot.com
  33. 33. Ejemplo: 33Aplicando la operación de erosión a la imagen dilatada utilizando unaestructura 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 34Para determinar si dos pixeles son vecinos o no (adyacentes).Vecindad-4: Se consideran pixeles conectados en direccionesperpendiculares (arriba, abajo, derecha, izquierda).Vecindad-8: Se consideran también los pixeles vecinosdiagonales. Vecindad-4 Vecindad-8http://lonely113.blogspot.com
  35. 35. Conectividad 35Dos pixeles están con la misma etiqueta están conectados si existe un camino del uno al otro a travésde 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 36Para 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: 37Se 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= 5http://lonely113.blogspot.com
  38. 38. Selección de un Objeto 38Para seleccionar manualmente un objeto y aislarlo se realizael 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: 39Se selecciona el objeto inferior derecho y se aísla en lavariable 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 40Resulta de suma utilidad para implementar algoritmosde visión o adquisición de imágenes en tiempo realutilizando dispositivos simples y de bajo costo talescomo las webcams.Matlab incluye el toolbox "Image Acquisition" paraeste 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 41Comandos 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 45Para desplegar la pre-visualización de las imágenes a capturar ejecutar elcomando: preview(video) >> preview(video)http://lonely113.blogspot.com
  46. 46. Captura 46Para capturar una imagen ejecutar: Image=getsnapshot(‘cam’) >> foto=getsnapshot(video); >> imshow(foto)http://lonely113.blogspot.com
  47. 47. Image Acquisition tool 47Facilita el trabajo de realizar la captura de imágenes mediante línea de comandos.Para acceder a esta herramienta ejecutar: imaqtool >> imaqtoolhttp://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_edge2http://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= 10http://lonely113.blogspot.com
  53. 53. 2. Conteo de Objetos 53 Im_RGB Im_binhttp://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_bin2http://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: OCRhttp://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); >> ocrhttp://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

×