8
Verano 2015 Resumen: Es desarrollar una interfaz entre el usuario y Matlab para capturar, almacenar y posteriormente realizar procesamiento de imágenes, para poder detectar ciertos tipos de caracteres, como en este caso es detectar palabras, letras. Objetivo El objetivo del reconocimiento de caracteres ópticos (OCR) es identificar patrones dentro de una imagen digital como caracteres alfanuméricos. El proceso de OCR involucra varios pasos que incluyen segmentación, extracción de patrones, y por ultimo clasificación. Introducción ¿Cómo funciona? Pre-proceso Extracción del carácter Identificación (clasificación) del carácter Las imágenes están formadas por miles de puntos (píxeles), a cada píxel le corresponde un color, este color está determinado por un vector de 3 componentes, R (Rojo), G (Verde), B(Azul). Nótese que cualquier color es un elemento del siguiente conjunto

PROSESAMIENTO DE IMAGENES

Embed Size (px)

DESCRIPTION

RECONOCIMIENTO DE IMAGEN(PROGRAMAS REALIZADO EN MATLAB CON GUIDE)

Citation preview

Page 1: PROSESAMIENTO DE IMAGENES

Verano 2015Resumen:

Es desarrollar una interfaz entre el usuario y Matlab para capturar, almacenar y posteriormente realizar procesamiento de imágenes, para poder detectar ciertos tipos de caracteres, como en este caso es detectar palabras, letras.

Objetivo

El objetivo del reconocimiento de caracteres ópticos (OCR) es identificar patrones dentro de una imagen digital como caracteres alfanuméricos. El proceso de OCR involucra varios pasos que incluyen segmentación, extracción de patrones, y por ultimo clasificación.

Introducción

¿Cómo funciona?

Pre-proceso Extracción del carácter Identificación (clasificación) del carácter

Las imágenes están formadas por miles de puntos (píxeles), a cada píxel le corresponde un color, este color está determinado por un vector de 3 componentes, R (Rojo), G (Verde), B(Azul).

Nótese que cualquier color es un elemento del siguiente conjunto

Page 2: PROSESAMIENTO DE IMAGENES

Ejemplo

1. Alistamiento: Estandarizar la imagen para que pueda ser procesada satisfactoriamente. a. Binarización: Pasar la imagen de una matriz de a una de ,en tonos de grises (grayscale)

La función regionprops (recorta región):

Page 3: PROSESAMIENTO DE IMAGENES

La función edge (detecta los bordes)

La función bwlabel (enumera objetos) :

Page 4: PROSESAMIENTO DE IMAGENES

¿Ya teniendo aislado un carácter como se reconoce que letra o número es?

1. Momentos de la imagen

a. Masa total (numero de pixeles negros en el sector).

b. Curtosis.

c. Sesgo.

d. Momentos de alto orden.

Correlación entre matrices Función en MATLAB: corr2

Útil si uno tiene una imagen base (tipo plantilla) para poder sacar la correlación.

2. Correlación entre matrices

Page 5: PROSESAMIENTO DE IMAGENES

Código en matlab del proyecto #2

cam=imaqhwinfo('winvideo',1);video=videoinput('winvideo',1);preview(video) Im_RGB=getsnapshot(video);imshow(Im_RGB)Im_bin=im2bw(Im_RGB,0.19) %escala de grisesimshow(Im_bin)% muestra la imagen Im_binl 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

% Convert to gray scaleif size(imagen,3)==3 %RGB image imagen=rgb2gray(imagen);end% Convert to BWthreshold = graythresh(imagen);imagen =~im2bw(imagen,threshold);% Remove all object containing fewer than 30 pixelsimagen = bwareaopen(imagen,30);%Storage matrix word from imageword=[ ];re=imagen;%Opens text.txt as file for writefid = fopen('text.txt', 'wt');% Load templates

Page 6: PROSESAMIENTO DE IMAGENES

cam=imaqhwinfo('winvideo',1);video=videoinput('winvideo',1);preview(video) Im_RGB=getsnapshot(video);imshow(Im_RGB)Im_bin=im2bw(Im_RGB,0.19) %escala de grisesimshow(Im_bin)% muestra la imagen Im_binl 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

% Convert to gray scaleif size(imagen,3)==3 %RGB image imagen=rgb2gray(imagen);end% Convert to BWthreshold = graythresh(imagen);imagen =~im2bw(imagen,threshold);% Remove all object containing fewer than 30 pixelsimagen = bwareaopen(imagen,30);%Storage matrix word from imageword=[ ];re=imagen;%Opens text.txt as file for writefid = fopen('text.txt', 'wt');% Load templates

fclose(fid);%Open 'text.txt' filewinopen('text.txt')fprintf('For more information, visit: <a href= "http://www.matpic.com">www.matpic.com </a> \n')clear all

% Label and count connected components [L Ne] = bwlabel(imgn); for n=1:Ne [r,c] = find(L==n); % Extract letter n1=imgn(min(r):max(r),min(c):max(c)); % Resize letter (same size of template) img_r=imresize(n1,[42 24]); %Uncomment line below to see letters one by one %imshow(img_r);pause(0.5) %------------------------------------------------------------------- % Call fcn to convert image to text letter=read_letter(img_r,num_letras);

Page 7: PROSESAMIENTO DE IMAGENES

fclose(fid);%Open 'text.txt' filewinopen('text.txt')fprintf('For more information, visit: <a href= "http://www.matpic.com">www.matpic.com </a> \n')clear all

% Label and count connected components [L Ne] = bwlabel(imgn); for n=1:Ne [r,c] = find(L==n); % Extract letter n1=imgn(min(r):max(r),min(c):max(c)); % Resize letter (same size of template) img_r=imresize(n1,[42 24]); %Uncomment line below to see letters one by one %imshow(img_r);pause(0.5) %------------------------------------------------------------------- % Call fcn to convert image to text letter=read_letter(img_r,num_letras);

Page 8: PROSESAMIENTO DE IMAGENES

En esta imagen podemos observar el procesamiento en la imagen que se captura desde nuestra cámara de la computadora, pasa por lo antes mencionados como la escala de grises, detección de bordes etc.

En esta imagen podemos observar el objeto seleccionado y su respectiva lectura que se muestra en el block de nota.