Está en la página 1de 58

INSTITUTO POLITÉCNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA


UNIDAD CULHUACAN
INGENIERÍA EN COMUNICACIONES Y ELECTRÓNICA

SEMINARIO DE TITULACIÓN
“PROCESAMIENTO DIGITAL DE SEÑALES”

DISEÑO DE SISTEMA DE RECONOCIMIENTO DE


PLACAS UTILIZANDO MATLAB

TESINA

Que para obtener el grado de:

INGENIERO EN
COMUNICACIONES Y ELECTRÓNICA.

Presentan:

PAUL CARDENAS HIDALGO


JOSÉ ALFREDO FLORES VARGAS
JAIME LÓPEZ ZAVALETA
PABLO MARTÍNEZ MORENO

ASESORES:

M. en C. ORLANDO BELTRÁN NAVARRO.


M. en C. BRAULIO SANCHEZ ZAMORA

México, D. F. Junio de 2009.


IPN
ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA
UNIDAD CULHUACAN

TESINA

QUE PARA OBTENER EL TITULO DE: INGENIERO EN COMUNICACIONES Y


ELECTRONICA

NOMBRE DEL SEMINARIO: PROCESAMIENTO DIGITAL DE SEÑALES

DEBERA DESARROLLAR: PAUL CARDENAS HIDALGO


JOSE ALFREDO FLORES VARGAS
JAIME LÓPEZ ZAVALETA
PABLO MARTÍNEZ MORENO

NOMBRE DEL TEMA

“DISEÑO DE SISTEMA DE RECONOCIMIENTO DE PLACAS UTILIZANDO MATLAB”

INTRODUCCION

La implementación de algoritmos en visión por computador resulta muy costosa en tiempo que
se requiere de la manipulación de punteros, gestión de memoria, etc. Hacerlo en lenguaje C++
supondría la inversión de tiempo y sin la seguridad de que lo queremos implementar
funcionará. Estos problemas pueden ser resueltos si la implementación de prueba es realizada
en Matlab utilizando su toolbox de procesamiento de imágenes con ello el tiempo de
implementación se convierte en el mínimo con la confianza de utilizar algoritmos
científicamente probados y robustos. El toolbox de procesamiento de imágenes contiene un
conjunto de funciones de los algoritmos más conocidos para trabajar con imágenes binarias,
trasformaciones geométricas, morfología y manipulación de color que junto con las funciones
ya integradas en Matlab permite realizar análisis y trasformaciones de imágenes en el dominio
de la frecuencia.
CAPITULADO

1. TIPOS DE IMÁGENES
2. PROCESAMIENTO DIGITAL DE IMÁGENES Y SISTEMAS DE RECONOCIMIENTO
DE PLACAS EXISTENTES
3. DISEÑO DE SISTEMA DE RECONOCIMIENTO DE PLACAS EN MATLAB

Fecha: México D.F. Junio de 2009

M. en C. Orlando Beltrán Navarro M. en C. Braulio Sánchez Zamora

Ing. Ignacio Monroy Ostria


INDICE

Planteamiento del problema


Justificación
Objetivo general

CAPITULO 1. Tipos de imágenes Pág.

1.1 Introducción 2
1.2 Biometría 2
1.3 Percepción de colores 3
1.4 Imágenes digitales 4
1.5 Representación de colores en imágenes digitales 5
1.6 Resolución de las imágenes digitales 6
1.7 Tipos de imágenes 6

CAPITULO 2. Procesamiento digital de imágenes y sistemas de reconocimiento de


placas existentes

2.1 Conceptos básicos de las imágenes en Matlab 8


2.2 Procesamiento de imágenes 8
2.3 Procesamiento óptico 9
2.4 Procesamiento digital de imágenes 10
2.5 Utilidad del procesamiento de imágenes 12
2.6 Reconocimiento de Imágenes 13
2.7 Reconocimiento de caracteres 13
2.8 Filtros 13
2.9 Filtros para la detección de bordes 14
2.10 Aplicaciones del reconocimiento de imágenes 14
2.11 Sistemas de reconocimiento de placas existentes 15
2.12 Algoritmos y pasos a seguir para realizar el ANPR 17
2.13 Dificultades para el buen funcionamiento 17
2.14 Técnicas de evasión del ANPR 19
2.15 Otros usos del ANPR 20
2.16 Control de acceso a estacionamientos, casetas de cobro y
algunas variantes 21
2.17 Empresas existentes 23

CAPITULO 3 Diseño de sistema de reconocimiento de placas en MatLab

3.1 Desarrollo de proyecto 24

Conclusiones 51

Bibliografía 52
Planteamiento del problema

Los robos de automóviles y el mal uso de muchos de ellos para realizar ilícitos
además de una mala gestión y poca cultura vehicular hacen de este trabajo una necesidad y
actualmente una realidad capaz de simplificar muchas actividades además de brindar un
buen control y monitoreo del vehículo que se desee.

Objetivo general

Diseñar un sistema mediante MATLAB para el reconocimiento automático de matriculas


vehiculares capaz de procesar una imagen para posteriormente tomar información de la
misma y poder ser almacenada en una base de datos coherente.

Agilizar la gestión de la información vehicular en un sector determinado para poder brindar


seguridad a todos los usuarios.

Justificación

Este proyecto se lleva a cabo para desarrollar un sistema de reconocimiento de matriculas


vehiculares (implementado en MATLAB), actualmente en el mercado hay sistemas que
cumplen esta función, pero estos dispositivos tienen un costo muy elevado.

Se diseña para ayudar a reducir el alto índice de robos así como para poder gestionar el
flujo y trafico vehicular en un área determinada.

Con un dispositivo que tenga la capacidad de brindarnos una imagen adecuada (cámara
fotografica) y el software ya mencionado se diseñara este sistema el cual se plantea como
una herramienta de fácil manejo y ambiente de trabajo amigable.
CAPITULO 1

Tipos de imágenes
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capitulo 1 Tipos de imágenes

1.1 INTRODUCCION

La implementación de algoritmos en visión por computador resulta muy costosa en tiempo


que se requiere de la manipulación de punteros, gestión de memoria, etc. Hacerlo en
lenguaje C++ (que por sus características compartidas de alto y bajo nivel lo hacen el mas
apropiado para la implementación de algoritmos de visión computacional) supondría la
inversión de tiempo y sin la seguridad de que lo queremos implementar funcionará.
Además utilizar C++ para el periodo de prueba exige un tiempo normal de corrección de
errores debidos al proceso de implementación del algoritmo, es decir errores programáticos
efectuados por ejemplo al momento de multiplicar dos matrices, etc. Todos estos problemas
pueden ser resueltos si la implementación de prueba es realizada en Matlab utilizando su
toolbox de procesamiento de imágenes con ello el tiempo de implementación se convierte
en el mínimo con la confianza de utilizar algoritmos científicamente probados y robustos.

El toolbox de procesamiento de imágenes contiene un conjunto de funciones de los


algoritmos mas conocidos para trabajar con imágenes binarias, trasformaciones
geométricas, morfología y manipulación de color que junto con las funciones ya integradas
en Matlab permite realizar análisis y trasformaciones de imágenes en el dominio de la
frecuencia (trasformada de Fourier).

1.2 Biometría

La biometría es el reconocimiento del cuerpo humano a través de ciertas


características físicas, como el tamaño de los dedos de la mano, las huellas dactilares o los
patrones en las retinas de los ojos.

Los sistemas de computadoras actuales permiten tener mejores niveles de seguridad


utilizando la biometría. Por ejemplo, una persona puede tener acceso a un área restringida,
por medio del reconocimiento de las características físicas de su mano en un dispositivo
especial. Si en el proceso de validación se verifica que la persona tiene permiso para entrar
al área, entonces le permitirá el acceso. Este tipo de sistemas se está volviendo cada vez

2
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capitulo 1 Tipos de imágenes

más utilizado, desplazando los sistemas antiguos de identificación, de esta forma es como
tomamos este concepto para aplicarlo al sistema que se diseñara.

1.3 Percepción de colores

El ojo tiene dos tipos de receptores: bastones y conos. Los bastones transmiten
diferentes intensidades de gris y los conos le permiten al cerebro percibir la tonalidad de los
colores. Existen tres tipos de conos, el primero es sensible a la luz rojo/naranja, el segundo
a la luz verde y el tercero a la luz azul/violeta. Cuando un cono es estimulado, el cerebro
percibe el color correspondiente. Por ejemplo, cuando los conos verdes son estimulados, se
percibe el color verde; cuando los conos rojo/naranja son estimulados, se percibe el color
rojo. Si son estimulados simultáneamente ambos tipos de conos, los verdes y los
rojo/naranja, se percibe el color amarrillo.

El ojo no puede diferenciar entre un color amarillo espectral, y alguna combinación de rojo
y verde. Lo mismo sucede con nuestra percepción de los colores cian, agenta, y los otros
colores espectrales intermedios. Debido a esta respuesta fisiológica, el ojo puede percibir
una amplia gama de tonalidades por medio de la variación de solo tres colores: rojo, verde
y azul.

Cualquier color puede ser espectralmente analizado usando un prisma para determinar sus
intensidades primarias de rojo, verde y azul.

3
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capitulo 1 Tipos de imágenes

1.4 Imágenes digitales

La digitalización de imágenes es el proceso por medio del cual se convierte una imagen en
un formato interpretable por las computadoras. Una imagen digital se puede obtener
utilizando cámaras fotográficas digitales, escáneres, etcétera.

En la década de los ochenta solo era posible utilizar cuatro colores en las pantallas de las
computadoras. Esto evolucionó rápidamente y actualmente se utilizan millones de colores.

Una imagen digital es un arreglo de dos dimensiones de píxeles (picture element) y un píxel
es la unidad mínima que conforma una imagen digital.

Figura 1.1. Representación de una imagen digital.

1.5 Representación de colores en imágenes digitales.

Normalmente, los colores primarios son el rojo, el amarillo y el azul, y a partir de la


mezcla de estos se crean los otros colores. Sin embargo, en las imágenes digitales los
colores primarios son el rojo (Red), el verde (Green) y el azul (Blue) y se utilizan las
intensidades de luz para obtener nuevos colores. Esto dio lugar al sistema RGB.

4
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capitulo 1 Tipos de imágenes

Una imagen digital está compuesta por una matriz bidimensional de elementos RGB. En
imágenes digitales de color verdadero, se utilizan 8 bits (1 byte) para representar la
intensidad de cada componente o canal de color, y por ser 3 componentes por color, se
necesitan 24 bits (3 bytes) para formar un solo color, lo que es equivalente a un píxel.
Entonces, una imagen de 10 x 10 píxeles utiliza 2400 bits o sea 300 bytes.

Siguiendo el esquema de 1 byte por cada componente o canal, y sabiendo que el valor
máximo que puede ser representado por 1 byte es 255, la intensidad de una canal está en un
rango de 0 a 255, por lo que un píxel estará compuesto por tres diferentes intensidades de
R, G y B en un rango de 0 a 255.

El sistema RGB no es el único utilizado en las imágenes digitales. Se han creado diversos
sistemas para representar los colores según la aplicación. El sistema RGB es nativo de las
computadoras, pero no siempre es el más adecuado. Es un sistema aditivo porque el color
blanco se logra mezclando los tres colores rojo, verde y azul, y el negro es la ausencia de
color. Por el contrario, en el sistema CMY (Cyan, Magenta, Yellow) utilizado para los
medios impresos, expresa las intensidades de los colores cian, magenta y amarillo, es un
sistema sustractivo porque el color negro se logra mezclando los tres colores y el blanco es
la ausencia de color.

En el sistema RGB el blanco es RGB (255, 255, 255) y el negro es RGB (0, 0, 0), en donde
los valores entre paréntesis son las intensidades de cada uno de los canales RGB. RGB
(255,0,0), RGB(0,255,0) y RGB(0,0,255) representan el rojo, el verde y el azul
respectivamente. Al mezclar el color rojo con el azul se obtiene el color morado, RGB
(255, 0, 255). Se pueden crear todos los colores disponibles variando las intensidades de las
componentes RGB.

Otro sistema es el YUV, que fue adoptado por National Television System Commitee
(NTSC) para la transmisión de señales de televisión a color. Su propósito es hacer uso de
las características del ojo humano para maximizar la utilización de un ancho de banda
definido. El sistema visual humano es más sensible a los cambios de intensidad del color
que a los cambios de la tonalidad.

5
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capitulo 1 Tipos de imágenes

Existe una fórmula para convertir de un sistema de representación de colores a otro. En la


conversión no se pierde la información sino se representa de una forma distinta.

1.6 Resolución de las imágenes digitales

La resolución es un factor que se utiliza para convertir las dimensiones de una


imagen física a píxeles de una imagen digital y viceversa. Si una fotografía es digitalizada a
300 dpi (Dots Per Inch) o puntos por pulgada, significa que por cada pulgada de la
fotografía física original se van a obtener 300 píxeles en la imagen digitalizada. Si se
imprime una imagen a 75 dpi, quiere decir que por cada 75 píxeles se imprimirá una
pulgada sobre papel.

1.7 Tipos de imágenes

JPEG

Las imágenes en formato JPEG (con extensión JPG) son imágenes en color real (paleta de
colores RGB de 24 bits) comprimidas mediante un algoritmo matemático.

Figura 1.2. Imagen en formato JPEG.

6
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capitulo 1 Tipos de imágenes

GIF

En el formato GIF, las imágenes sólo se representan mediante una paleta de 256 colores,
por lo que no permiten la presentación de imágenes muy complejas. Son las más empleadas
por su pequeño tamaño

Figura 1.3. Imagen en formato GIF.

GIF animado

Consiste en una serie de imágenes en formato GIF, y por tanto en 256 colores) que se
alternan en la pantalla del ordenador, obteniéndose una película. El GIF animado puede
repetirse un número determinado de veces o indefinidamente, de forma que la película se
repita ininterrumpidamente, volviendo al principio cuando se ve la última imagen.

7
CAPITULO 2

Procesamiento digital de
imágenes y sistemas de
reconocimiento de placas
existentes
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capitulo 2 Procesamiento digital de imágenes y sistemas de reconocimiento de placas existentes

2.1 Conceptos básicos de las imágenes en Matlab

En Matlab una imagen a escala de grises es representada por medio de una matriz
bidimensional de m x n elementos en donde n representa el numero de píxeles de ancho y m
el numero de píxeles de largo. El elemento v11 corresponde al elemento de la esquina
superior izquierda, donde cada elemento de la matriz de la imagen tiene un valor de 0
(negro) a 255 (blanco).

Por otro lado una imagen de color RGB (la mas usada para la visión computacional,
además de ser para Matlab la opción default) es representada por una matriz tridimensional
m x n x p, donde m y n tienen la misma significación que para el caso de las imágenes de
escala de grises mientras p representa el plano, que para RGB que puede ser 1 para el rojo,
2 para el verde y 3 para el azul.

2.2 Procesamiento de imágenes

El procesamiento de imágenes tiene como objetivo mejorar el aspecto de las


imágenes y hacer más evidentes en ellas ciertos detalles que se desean hacer notar. La
imagen puede haber sido generada de muchas maneras, por ejemplo, fotográficamente, o
electrónicamente, por medio de monitores de televisión. El procesamiento de las imágenes
se puede en general hacer por medio de métodos ópticos, o bien por medio de métodos
digitales, en una computadora.

El matemático Jean-Baptiste-Joseph Fourier (1768-1830) nació en Auxerre, alrededor de


160 km al sureste de París. Perdió a sus padres a la temprana edad de ocho años, quedando
al cuidado del obispo de Auxerre, gracias a la recomendación de una vecina. Desde muy
pequeño mostró una inteligencia y vivacidad poco comunes. Siguió una carrera religiosa en
una abadía, al mismo tiempo que estudiaba matemáticas, para más tarde dedicarse a
impartir clases. Sus clases eran muy amenas, pues constantemente mostraba una gran
erudición y conocimientos sobre los temas más variados.

8
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capitulo 2 Procesamiento digital de imágenes y sistemas de reconocimiento de placas existentes

Fourier estaba muy interesado en la teoría del calor, y además tenía una gran obsesión
práctica por él. Se dice que mantenía su habitación tan caliente que era muy incómoda para
quienes lo visitaban, y que aparte de eso, siempre llevaba puesto un grueso abrigo. Algunos
historiadores atribuyen esta excentricidad a los tres años que pasó en Egipto con el ejército
de Napoleón Bonaparte.

La teoría de Fourier se consideró tan importante desde de sus inicios, que lord Kelvin dijo
de ella: "El teorema de Fourier no solamente es uno de los resultados más hermosos del
análisis moderno, sino que además se puede decir que proporciona una herramienta
indispensable en el tratamiento de casi todos los enigmas de la física moderna."

El teorema de Fourier afirma que una gráfica o función, cualquiera que sea su forma, se
puede representar con alta precisión dentro de un intervalo dado, mediante la suma de una
gran cantidad de funciones senoidales, con diferentes frecuencias. Dicho de otro modo,
cualquier función, sea o no sea periódica, se puede representar por una superposición de
funciones periódicas con diferentes frecuencias. La variación de la irradiación o brillantez
de una imagen, medida a lo largo de una dirección cualquiera es entonces una función que
se puede representar mediante el teorema de Fourier, con una suma de distribuciones
senoidales de varias frecuencias. Sin entrar en detalles técnicos innecesarios, simplemente
afirmaremos aquí que atenuar o reforzar individualmente algunas de estas componentes
senoidales puede tener un efecto dramático en la calidad de una imagen, mejorándola o
empeorándola, según el caso. Este es el fundamento del procesamiento de imágenes, tanto
por medios ópticos como digitales.

2.3 Procesamiento óptico

Los principios del procesamiento óptico de imágenes están bien establecidos desde
el siglo pasado, cuando se desarrolló la teoría de la difracción de la luz. Sin embargo, su
aplicación práctica data apenas del principio de la década de los sesenta, cuando se
comenzó a disponer del rayo láser.

9
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capitulo 2 Procesamiento digital de imágenes y sistemas de reconocimiento de placas existentes

El procesamiento óptico se basa en el hecho de que la imagen de difracción de Fraunhofer


de una transparencia colocada en el plano focal frontal de una lente es una distribución
luminosa que representa la distribución de las frecuencias de Fourier que componen la
imagen, a la que se le llama técnicamente transformada de Fourier.

Cada porción de la transformada de Fourier corresponde a una frecuencia espacial diferente


sobre el objeto. Por lo tanto, mediante los diafragmas adecuados se pueden eliminar las
frecuencias espaciales, llamadas también de Fourier, que se deseen quitar.

2.4 Procesamiento digital de imágenes

Figura 2.1. Procesamiento óptico de imágenes. (a) imagen original, con líneas de
barrido, tipo imagen de televisión; (b) transformada de Fourier del objeto; (c)
transformada de Fourier modificada, después de filtrar y (d) imagen procesada, sin
las líneas de barrido.

Al igual que en el caso del procesamiento óptico, los principios fundamentales del
procesamiento digital de imágenes están establecidos hace muchos años, pero no se
llevaban a cabo debido a la falta de computadoras. Con la aparición de las computadoras de

10
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capitulo 2 Procesamiento digital de imágenes y sistemas de reconocimiento de placas existentes

alta capacidad y memoria, era natural que se comenzara a desarrollar este campo. Uno de
los primeros lugares donde se empezó a realizar el procesamiento digital fue en el Jet
Propulsion Laboratory, en 1959, con el propósito de mejorar las imágenes enviadas por los
cohetes. Los resultados obtenidos en un tiempo relativamente corto fueron tan
impresionantes que muy pronto se extendieron las aplicaciones del método a otros campos.

Figura 2.2. División de una imagen en pixeles.

El procesamiento digital de imágenes se efectúa dividiendo la imagen en un arreglo


rectangular de elementos. Cada elemento de la imagen así dividida se conoce con el
nombre de pixel. El siguiente paso es asignar un valor numérico a la luminosidad promedio
de cada pixel. Así, los valores de la luminosidad de cada pixel, con sus coordenadas que
indican su posición, definen completamente la imagen.

Todos estos números se almacenan en la memoria de una computadora.

El tercer paso es alterar los valores de la luminosidad de los pixeles mediante las
operaciones o transformaciones matemáticas necesarias, a fin de hacer que resalten los
detalles de la imagen que sean convenientes. El paso final es pasar la representación de
estos pixeles a un monitor de televisión de alta definición, con el fin de mostrar la imagen
procesada.

11
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capitulo 2 Procesamiento digital de imágenes y sistemas de reconocimiento de placas existentes

Figura 2.3. Procesamiento digital de imágenes. Cefalograma en el que se han reforzado las

componentes de Fourier de alta frecuencia. (Tomado de S. W. Oka y H. J. Trussell, The

Angle Ortodontist, 48, núm. 1, 80, 1978). (a) Imagen original y (b) imagen procesada.

2.5 Utilidad del procesamiento de imágenes

La utilidad del procesamiento de imágenes es muy amplia y abarca muchos campos.


Un ejemplo son las imágenes obtenidas con fines de diagnóstico médico. Otro ejemplo son
las imágenes aéreas obtenidas para realizar exámenes del terreno. Mediante este método se
pueden analizar los recursos naturales, las fallas geológicas del terreno, etcétera.

El procesamiento digital de imágenes es el conjunto de técnicas que se aplican a las


imágenes digitales con el objetivo de mejorar la calidad o facilitar la búsqueda de
información.

Las operaciones que se pueden realizar con imágenes se dividen en:

• Operaciones de punto
• Operaciones de entorno
• Operaciones con dos o más imágenes

12
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capitulo 2 Procesamiento digital de imágenes y sistemas de reconocimiento de placas existentes

2.6 Reconocimiento de Imágenes

Los sistemas de computadoras son cada vez más potentes y menos costosos, lo que
permite crear nuevas formas de arte que antes no eran posibles, y algunas otras formas de
arte antiguas pueden ahora verse beneficiadas con novedosas técnicas asistidas por
computadora.

El reconocimiento de imágenes ha evolucionado a medida que mejora la tecnología. Puede


encontrarse en numerosos campos.

2.7 Reconocimiento de caracteres

El reconocimiento óptico de caracteres, conocido también como OCR (Optical


Character Recognition), es un proceso por el cual en una imagen digital se reconocen los
caracteres con la finalidad de poder editarla como texto. Este tipo de aplicaciones son
utilizadas como complemento en escáneres y otros dispositivos de captura de imágenes
digitales.

2.8 Filtros

Los filtros se utilizan para la modificación de imágenes ya sea para detectar los
bordes de una escena o para modificar el aspecto, otra función de los filtros es para la
eliminación de ruido de la imagen.

Al hablar de un filtro nos estamos refiriendo a realizar una Convolución de una matriz con
respecto a un pixel y la vecindad de este, esto quiere decir, si la imagen es de 200x300
pixeles y el filtro con el cual se va a realizar la convolución es una matriz de 3x3 entonces
se irá desplazando el filtro pixel a pixel iniciando en la posición (1,1) hasta llegar a la
(199,299). La magnitud del gradiente es entonces calculada con la siguiente fórmula:

13
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capitulo 2 Procesamiento digital de imágenes y sistemas de reconocimiento de placas existentes

2.9 Filtros para la detección de bordes

Un filtro para la detección de bordes que es un clásico el de Sobel el cual utiliza dos
mascaras o filtros los cuales uno detecta los bordes verticales y el otro los horizontales, para
obtener los bordes completos se realiza la suma de las imágenes que nos resultaron con los
bordes verticales y horizontales.

Otro filtro para la detección de bordes es Prewitt, el cual consta de 8 matrices, que se
aplican pixel a pixel en la imagen y luego se suman las imágenes para obtener los bordes
bien marcados. El filtro de Prewitt, marca muy bien los bordes, ya que sus matrices atacan
estos de seis lados diferentes, en general cada matriz toma el nombre de un punto cardinal:
Norte, Sur, Este, Oeste, Noroeste, Noreste, Suroeste, Sureste.

2.10 Aplicaciones del reconocimiento de imágenes

A) Información inteligente de tráfico vehicular

Esta aplicación nos permite obtener información de flujos o volumen de transito en


calles para que al contar con información estadística, se pueda mejorar los parámetros de
circulación, por ejemplo, tiempos de espera de semáforos, determinación de tiempos y
lugares críticos para operativos de agilización de flujos, etc.

Al igual que otras aplicaciones, con el mismo equipo puede conjuntarse esta funcionalidad
y generar un dispositivo mucho más complejo.

B) Identificación de personas para investigaciones policíacas.

14
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capitulo 2 Procesamiento digital de imágenes y sistemas de reconocimiento de placas existentes

Aunque las técnicas aun están en desarrollo en este campo, y aun no existe una
aplicación totalmente confiable, es evidente la importancia del reconocimiento de imágenes
para la identificación de personas en investigaciones policíacas.

Muchas veces en investigaciones de crímenes un testigo puede describir con mucho detalle
el rostro de un criminal. Un dibujante profesional convierte la descripción verbal del testigo
en un dibujo sobre papel. El trabajo de la computadora consiste en buscar el rostro del
criminal en una base de datos de imágenes. En las investigaciones policíacas también se
utiliza la búsqueda de huellas dactilares en una base de datos.

2.11 Sistemas de reconocimiento de placas existentes.

El reconocimiento automático de matrículas (Automatic number plate


recognition o ANPR en inglés) es un método de vigilancia en masa que utiliza
reconocimiento óptico de caracteres en imágenes para leer las matrículas de los vehículos.
En 2005, los sistemas ya podían escanear las matrículas con una frecuencia aproximada de
una por segundo en vehículos con velocidades de hasta 160 km/h. Y este sistema se
complementaba al utilizar el circuito cerrado de televisión existente o radares, o equipos
diseñados específicamente para dicha tarea. En principio comenzaron a ser utilizadas por
las diversas fuerzas de policía y como método de recaudación electrónica de peaje en las
autopistas de pago de algunos países , y para vigilar la actividad del tránsito.

El ANPR se puede utilizar para almacenar las imágenes capturadas por las cámaras
fotográficas, así como el texto de la matrícula, y algunas se pueden configurar para
almacenar una fotografía del conductor. Estos sistemas a menudo utilizan iluminación
infrarroja para hacer posible que la cámara pueda tomar fotografías en cualquier momento
del día. En al menos una versión de cámara fotográfica para la supervisión de
intersecciones se incluye un flash de gran alcance, que sirve para iluminar la escena y hacer
que el infractor se dé cuenta de su error. La tecnología ANPR tiende a ser específica para
una región, debido a la variación entre matrículas de un lugar a otro.

El software del sistema se ejecuta sobre un hardware de PC estándar y puede ser enlazado
con otras aplicaciones o bases de datos. Primero utiliza una serie de técnicas de

15
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capitulo 2 Procesamiento digital de imágenes y sistemas de reconocimiento de placas existentes

manipulación de la imagen para detectar, normalizar y realzar la imagen del número de la


matrícula, y finalmente reconocimiento óptico de caracteres para extraer los alfanuméricos
de la matrícula. Los sistemas ANPR/ALPR se pueden utilizar de dos modos; uno permite
que el proceso sea realizado en su totalidad en el lugar de la toma en tiempo real, mientras
que el otro transmite todas las imágenes de muchas cámaras a un ordenador remoto en que
se realiza el proceso de OCR más tarde. Cuando se realiza “in situ” es decir en el mismo
lugar donde ocurrió el incidente, la información capturada de la matrícula alfanumérica,
fecha y hora, identificación del lugar y cualquier otra información que se requiera es
completada en unos 250 milisegundos. Esta información, convertida ahora en pequeños
paquetes de datos, se puede transmitir fácilmente a algún ordenador remoto para un
posterior procesamiento en caso de que sea necesario, o ser almacenado en el lugar para ser
recuperada posteriormente. En la otra disposición, típicamente hay una gran cantidad de
PC’s usados en un sitio de servidores para manejar altas cargas de trabajo, como por
ejemplo los que se encuentran en el proyecto de carga de congestión de Londres. A menudo
en dichos sistemas existe la necesidad de emitir imágenes al servidor remoto y éste puede
requerir medios de transmisión con un gran ancho de banda. Los inconvenientes de estos
sistemas están centrados en el temor en cuanto a la privacidad de los movimientos de los
ciudadanos y los informes de los medios sobre la identificación errónea y altas tasas de
error. Sin embargo, según se han ido desarrollando, estos sistemas han logrado ser mucho
más exactos y fiables.

 Diversidad de nombres para este sistema

Al ANPR se le conoce a veces con otros términos:

• Identificación automática de vehículos (Automatic vehicle identification, AVI)


• Reconocimiento de matrículas de vehículos (Car plate recognition, CPR)
• Reconocimiento de matrículas (Licence plate recognition, LPR)

ANPR utiliza reconocimiento óptico de caracteres (OCR) en las imágenes tomadas por las
cámaras fotográficas. Algunas matrículas utilizan cambios en los tamaños de las fuentes y
en la posición - los sistemas ANPR deben poder hacer frente a estas diferencias para ser

16
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capitulo 2 Procesamiento digital de imágenes y sistemas de reconocimiento de placas existentes

verdaderamente eficaces. Algunos sistemas más complicados pueden distinguir variantes


internacionales, aunque muchos programas se adaptan a cada país individualmente.

2.12 Algoritmos y pasos a seguir para realizar el ANPR

Hay ciertos algoritmos principales que el software necesita para identificar una
matrícula:

1. Localización de la matrícula - responsable de encontrar y aislar la matrícula en la


imagen.
2. Orientación y tamaño de la matrícula - compensa los ángulos que hacen que la
matrícula parezca "torcida" y ajusta las dimensiones al tamaño requerido.
3. Normalización - ajusta el brillo y el contraste de la imagen.
4. Segmentación de los caracteres - encuentra los distintos caracteres presentes en la
matrícula.
5. Reconocimiento óptico de caracteres.
6. Análisis sintáctico y geométrico - comprueba los caracteres encontrados y sus
posiciones con las reglas específicas del país al que pertenece la matrícula.

La complejidad de cada una de estas subdivisiones del programa determina la exactitud del
sistema. Durante la tercera fase (normalización) algunos sistemas utilizan técnicas de
detección de borde para aumentar la diferencia en la imagen entre las letras y el fondo de la
placa. También se puede utilizar un filtro digital de punto medio para reducir el "ruido"
visual de la imagen.

2.13 Dificultades para el buen funcionamiento.

El software debe ser capaz de afrontar diferentes dificultades posibles, que incluyen:

• Resolución de imagen pobre, a menudo porque la matrícula está demasiado lejos,


aunque a menudo es resultado del uso de una cámara de baja calidad.

17
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capitulo 2 Procesamiento digital de imágenes y sistemas de reconocimiento de placas existentes

• Imágenes desenfocadas, en particular desenfoque de movimiento y muy a menudo


en unidades móviles
• Iluminación pobre y bajo contraste debido a sobreexposición, reflexión o sombras
• Un objeto que oscurece (parte de) la matrícula, a menudo una barra del remolque, o
suciedad en la matrícula
• Técnicas de evasión

Los primeros sistemas ANPR eran incapaces de leer letras blancas o plateadas sobre un
fondo negro, como se permitía en los vehículos de algunos países como Reino Unido
fabricados antes de 1973.

Aunque algunos de estos problemas se pueden corregir en el software, se dejan sobre todo
en el lado del hardware del sistema para ofrecer soluciones a estos problemas. El aumento
de la altura de la cámara puede evitar problemas con los objetos (tales como otros
vehículos) que oscurecen la placa, pero introduce y aumenta otros problemas como el ajuste
según la oblicuidad creciente de la placa.

Muchos países utilizan matrículas retroreflectivas. Esto devuelve la luz hacia la fuente y
mejora así el contraste de la imagen. En algunos países los caracteres de la matrícula no son
reflectantes, dando un alto nivel del contraste con el fondo reflectante bajo cualquier
condición de iluminación. Una cámara que utiliza imagen infrarroja (con un filtro normal
de color sobre la lente y una fuente luminosa infrarroja al lado de ella) beneficia en gran
medida, reflejándose las ondas infrarrojas desde la matrícula. Sin embargo, esto sólo es
posible en cámaras ANPR dedicadas, por lo que las cámaras usadas para otros propósitos
deben confiar en mayor medida en las capacidades del software. Además, cuando se
necesita una imagen a todo color y la captación de detalles es necesario tener una cámara
con infrarrojos y una cámara normal (en color) funcionando conjuntamente.

Imágenes borrosas dificultan el OCR – los sistemas ANPR deberían tener altas velocidades
de disparo para evitar el desenfoque de movimiento

Para evitar el desenfoque es ideal tener la velocidad del obturador de la cámara fijada a
1/1000 segundos. Debido a que el coche está en movimiento, el uso de velocidades más

18
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capitulo 2 Procesamiento digital de imágenes y sistemas de reconocimiento de placas existentes

reducidas podría dar lugar a una imagen demasiado borrosa para ser leída con el software
OCR, especialmente si la cámara está en una posición mucho más alta que el vehículo.
Cuando el tránsito es lento o cuando la cámara fotográfica está a una altura inferior y el
vehículo está en un ángulo de aproximación a la cámara, no es necesario que la velocidad
del obturador sea tan alta. Velocidades del obturador de 1/500 pueden funcionar
correctamente con vehículos con una velocidad de hasta 64 kilómetros por hora y 1/250
hasta 8 kilómetros por hora.

En algunos coches, las barras de remolque pueden oscurecer uno o dos caracteres de la
matrícula. Las bicicletas en las defensas también oscurecer la placa, aunque en algunos
países y jurisdicciones, estos casos no generan ningún tipo de infracción y dificultan la
acción del ANPR

Algunos sistemas a escala reducida permiten algunos errores en la matrícula. Cuando se


utiliza para ofrecer acceso específico de los vehículos a una zona con barrera, la decisión
puede ser tomada con un índice de error aceptable de un carácter. Esto es así porque la
probabilidad de que un coche desautorizado con una matrícula tan similar se considera que
es absolutamente pequeña. Sin embargo, este nivel de imprecisión no sería aceptable en la
mayoría de las aplicaciones de un sistema ANPR.

2.14 Técnicas de evasión del ANPR

Los propietarios de vehículos han utilizado una variedad de técnicas para intentar
evadir los sistemas ANPR. Un método consiste en incrementar las propiedades de reflexión
de las letras y aumentar así la probabilidad de que el sistema no sea capaz de localizar la
matrícula o de producir suficiente nivel de contraste para lograr leerla. Esto normalmente se
realiza usando una tapadera de matrículas o recubriendo la placa con aerosol, aunque hay
dudas sobre la efectividad de este último. En la mayoría de las jurisdicciones, tanto de
nuestro país como alrededor del mundo, las tapaderas son ilegales y está contemplado bajo
leyes existentes, mientras que en la mayoría de los países no hay ninguna ley que rechace el
uso de los aerosoles.

19
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capitulo 2 Procesamiento digital de imágenes y sistemas de reconocimiento de placas existentes

En Argentina la matrícula tiene la misma consideración que un documento público, por lo


que se considera delito su modificación.

En una ruta de transporte publico de Toronto (Canadá), la policía ha registrado varias


técnicas avanzadas que algunos conductores han tratado de llevar a cabo. Un empleado de
esta ruta tenía un mecanismo que le permitía levantar un cable del asiento del conductor
que hacía que se mostrara una matrícula diferente en el momento en que pasaba por las
zonas vigiladas con cámara. Otros han tratado de manchar su matrícula con suciedad o
utilizar cubiertas para enmascararla.

Los novedosos marcos alrededor de las matrículas han sido declarados ilegales en diversos
lugares siendo los pineros de esta restricción los Estados Unidos porque causaban
problemas en los sistemas ANPR. Esta ley convierte el uso de dichos marcos en un delito
menor.

Hay algunos paneles traseros para coche con una inserción en ángulo para la matrícula, lo
que cambia la alineación de caracteres de la rejilla de lectura, quizás la manera más fácil de
invalidar el reconocimiento es simplemente permitir que la pintura reflectante de las placas
se degrade por la edad y se haga por tanto ilegible.

Si un sistema ANPR no puede leer la placa de matrícula avisará, por medio de una señal
acústica, para llamar la atención de los operadores humanos, que pueden entonces tratar de
identificar los caracteres visualmente. Es entonces posible hacer operaciones de búsqueda
usando caracteres comodín que sustituyan cualquier parte oculta de la matrícula y utilizar
los detalles del coche (fabricante y modelo, por ejemplo) para refinar la búsqueda.

2.15 Otros usos del ANPR

Los sistemas ANPR también pueden ser usados para:

• Cruce de fronteras
• Estaciones de servicios para llevar un registro de los conductores que abandonan la
estación sin realizar algún pago.
• Control de acceso a estacionamientos públicos o de algún particular.
20
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capitulo 2 Procesamiento digital de imágenes y sistemas de reconocimiento de placas existentes

• Una herramienta de mercadotecnia para llevar un registro de patrones de uso en


alguna bodega o empresas dedicadas a la logística.
• Sistemas de gestión de tráfico, para determinar el flujo de tráfico usando el tiempo
que tardan los vehículos en pasar por dos sitios dotados de ANPR

2.16 Control de acceso a estacionamientos, casetas de cobro y algunas variantes

Con esta aplicación podemos controlar el acceso a estacionamientos de


dependencias y estacionamientos públicos o corporativos, controlando no solo quien entra y
quien sale, sino también el horario en que estas transacciones deben de ocurrir, pudiendo
restringir el acceso después de un tiempo de tolerancia o salida a personal que todavía debe
estar laborando.

Figura 2.4. Aplicación de control para la identificación de placas.

Incluso se puede reconocer colores y patrones del vehículo para evitar suplantación de
placas, por ejemplo que entren con un carro compacto y salgan con un carro de lujo
cambiándole la placa al vehículo.

21
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capitulo 2 Procesamiento digital de imágenes y sistemas de reconocimiento de placas existentes

 Reconocimiento y detección en tiempo real de placas usando tecnología de


análisis de video

Esta tecnología permite el reconocimiento de placas usando video en tiempo real, lo


cual permite tener un sin número de aplicaciones tanto para control estadístico, seguridad
pública, control de velocidades, etc.

Figura 2.5. Reconocimiento y detección en tiempo real de placas.

 Velocidad Promedio

Esta aplicación nos permite controlar la velocidad promedio de los vehículos


pasando a través de dos puntos de control. Al saber la distancia y el tiempo podemos
determinar la velocidad promedio, que es una ventaja con respecto a los radares
convencionales dado que esos solo miden la velocidad instantánea.

De la misma forma se puede interactuar con otros sistemas para poder enviar la placa y la
foto del vehículo, para procesar la infracción correspondiente sin necesidad de intervención
humana, agilizando el proceso y evitando errores.

22
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capitulo 2 Procesamiento digital de imágenes y sistemas de reconocimiento de placas existentes

2.17 Empresas existentes

Adaptive Recognition es una compañía dedicada a producir equipos inteligentes los


cuales procesan imágenes en el contexto de seguridad y control de tráfico. Las solucione de
Adaptive Recognition son utilizadas hoy en día mundialmente para asegurar todo tipo de
documentos y control de tráfico por medio del reconocimiento de placas.

 CARMEN ANPR

Este producto el cual se basa en reconocimiento de caracteres por medio de redes


neuronales, nos permite identificar las placas de los automóviles convirtiéndolas a texto
para posteriormente ser utilizadas como mejor sea conveniente. A esta tecnología se le
conoce como ANPR (Automated Number Plate Recognition) por sus siglas en inglés y
está altamente probada en más de 60 países con miles de sistemas instalados a la fecha.
Existen dos versiones, la primera (Carmen FreeFlow) para ser utilizada en vías rápidas
la cual permite reconocer placas con velocidades hasta de 250 km/h y la segunda
(Carmen Parking) para ser utilizada en controles de acceso a estacionamientos, garajes,
etc.

23
CAPITULO 3

Diseño del sistema de


reconocimiento de
placas en MatLab
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB

3.1 Desarrollo del proyecto

Restricciones: Las imágenes tomadas pueden ser de cualquier tamaño, pero la placa debe
cumplir con las siguientes condiciones de 150 a 210 pixeles y de 50 a 110 pixeles. Además,
las fotos tomadas de la placa no pueden estar inclinadas.

Procedimiento: Inicialmente se necesita diferenciar si la imagen está en escala de grises o


en RGB para poder hacer la conversión correspondiente. Se utiliza el siguiente código:

I=imread('C:\foto104.jpg');

info=imfinfo('C:\foto104.jpg');

if info.ColorType=='truecolor' %Ciclo para determinar si es a color o en

I=rgb2gray(I); %escala de grises para poder hacer o no la

else %conversion necesaria

I=I;

End

Una vez realizado esto se recorta la imagen para poder eliminar zonas en las que no existe
información relevante a la placa como los bordes superiores y externos, se muestra en la
figura 3.1. Se observaron las fotos para determinar cual es el rango aproximado que se
puede cortar.

24
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB

Figura 3.1. Imagen Recortada

Después del recorte se determina el umbral óptimo de la imagen. Esto se hace calculando
el gradiente de la imagen utilizando la técnica de Sobel para hallar posibles picos en la
imagen, y luego las siguientes ecuaciones:

Se implementó el siguiente código para definir una función para calcular el umbral óptimo
de cada foto en particular:

% umbral=UmbralOptimo(imagen, filasImagen, columnasImagen, gradiente);

% Algoritmo para calcular el umbral optimo para la binarizacion.

function umbral=UmbralOptimo(imagen, filasImagen, columnasImagen, gradiente)

% Creo una variable que me dice de que color era el último grupo que guarde

% de esta forma se que la cola del final de la fila pertenece al otro color

% la variable se llama ultimoColor, si vale cero fue oscuro y si vale uno

% fue claro.

25
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB

numOscuros=0;

numClaros=0;

oscuros=0;

claros=0;

cont=0;

acum=0;

% Este if es para solucionar el problema que ocurre si no hay bordes en la

% primer fila entonces no se sabe si es clara o oscura.

% Supongo continuidad en los colores, si en la segunda fila tampoco hay bordes

% estos los supongo del mismo color que la primera.

if imagen(1,1)<(max(max(imagen))/2)

% Como es oscuro pongo que el ultimo color fue claro.

ultimoColor=1;

else

% Como es claro pongo que el ultimo color fue oscuro.

ultimoColor=0;

end

for i=1:filasImagen

if ultimoColor==0

26
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB

numClaros=numClaros+cont;

cont=0;

claros=claros+acum;

acum=0;

else

numOscuros=numOscuros+cont;

cont=0;

oscuros=oscuros+acum;

acum=0;

end

for j=1:columnasImagen

if gradiente(i,j)==0

cont=cont+1;

acum=acum+imagen(i,j);

else

if gradiente(i,j)==-1

numOscuros=numOscuros+cont;

cont=1;

oscuros=oscuros+acum;

acum=imagen(i,j);

ultimoColor=0;

else

numClaros=numClaros+cont;

27
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB

cont=1;

claros=claros+acum;

acum=imagen(i,j);

ultimoColor=1;

end

end

end

end

if ultimoColor==0

numClaros=numClaros+cont;

claros=claros+acum;

else

numOscuros=numOscuros+cont;

oscuros=oscuros+acum;

end

% Media de los claros.

mediaClaros=claros/numClaros;

% Media de los oscuros.

mediaOscuros=oscuros/numOscuros;

% Umbral optimo para la binarizacion.

umbral=(mediaOscuros*numClaros+mediaClaros*numOscuros)/(numClaros+numOscuros);

28
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB

Se definió la siguiente función para calcular el gradiente de Sobel:

% gradienteSobel=Sobel(imagen, filasImagen, columnasImagen, X_Porciento);

function gradienteSobel=Sobel(imagen, filasImagen, columnasImagen, X_Porciento)

% Kernel Sobel para calcular el gradiente en la direccion horizontal.

kernel=(1/8)*[-1 0 1; -2 0 2; -1 0 1];

gradiente=Filtro(imagen, filasImagen, columnasImagen, kernel);

% Calculo del umbral para clasificar la respuesta del Sobel, este es tal que

% solo un X% de los gradientes van a superar el umbral.

moduloGradiente=abs(gradiente(:));

maximoModuloGradiente=round(max(moduloGradiente));

minimoModuloGradiente=round(min(moduloGradiente));

nivelesGradiente=maximoModuloGradiente-minimoModuloGradiente;

histogramaGradiente=hist(moduloGradiente, nivelesGradiente);

histogramaGradienteAcumulado=cumsum(histogramaGradiente);

umbralSobel=nivelesGradiente;

while (umbralSobel > 0)&(histogramaGradienteAcumulado(umbralSobel) >


(filasImagen*columnasImagen*(1-(X_Porciento/100))))

umbralSobel=umbralSobel-1;

end

umbralSobel=minimoModuloGradiente+umbralSobel;

29
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB

% Clasificacion de la respuesta del Sobel en 1, 0 o -1.

gradienteSobel=[];

for i=1:filasImagen

for j=1:columnasImagen

if gradiente(i,j) > umbralSobel

gradienteSobel(i,j)=1;

else

if gradiente(i,j) < -umbralSobel

gradienteSobel(i,j)=-1;

else

gradienteSobel(i,j)=0;

end

end

end

end

Finalmente se implementó el siguiente código para el recorte y la determinación del


umbral:

[R C]=size(I); %Halla el tamaño de la imagen

cropsize=[(R*0.25) (C*0.15) (C*0.625) (R*0.6)]; %Determina seccion a cortar

Ic=imcrop(I,cropsize); %Recorta la imagen para eliminar fondo innecesario

figure; imshow(Ic) %Grafica Zona recortada

Id=double(Ic); [R C]=size(Ic) %Convierte imagen a doble para operaciones

30
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB

I2=sobel(Id,R,C,2.5); %Halla gradiente de sobel

umbral=umbraloptimo(Id,R,C,I2); %Halla umbral optimo

Posteriormente se realizan operaciones morfológicas. Inicialmente se utilizará un elemento


estructurante circular de radio 10 píxeles para realizar una transformación “bottom-hat”,
que primero hace una operación de “closing” (dilatación y luego erosión) y luego resta la
imagen obtenida de la imagen original para resaltar la placa y ciertos bordes como se puede
ver en la figura 3.2. Luego se aplica el umbral hallado anteriormente como se muestra en
la figura 3.3. Para eliminar el ruido se hace primero una operación de “closing” (dilatación
y luego erosión) utilizando un elemento estructurante horizontal hallado basándose en la
separación que existe entre los caracteres de la placa como se muestra en la figura 3.4.
Después se realiza “opening” (erosión y luego dilatación) con un elemento estructurante
vertical hallado basándose en la altura de los caracteres de la placa como se ve en la figura
3.5. Finalmente se realizan dilataciones verticales y horizontales para expandir la zona de
la placa como se ve en la figura 3.6. Se implementó el siguiente código:

st=strel('disk',10); %Elemento estructurante de 10 pixeles de radio

IM2=imbothat(Ic,st); %Hace Bottom-Hat

I3=IM2>umbral; %Aplica Umbral

LH=strel('line',60,0); %Elemento estructurante lineal horizontal

IM3=imclose(I3,LH); %Closing con elemento estructurante

LV=strel('line',20,90); %Elemento estructurante lineal vertical

IM4=imopen(IM3,LV); %Hace opening con elemento estructurante

figure;imshow(IM4) %Muestra Imagen

DIV=strel('line',35,90); %Elemento estructurante lineal vertical

DIH=strel('line',20,0); %Elemento estrucutrante lineal horizontal

IM5=imdilate(IM4,DIV); %Dilata con E.E. vertical

31
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB

IM6=imdilate(IM5,DIH); %Dilata con E.E. horizontal

figure; imshow(IM6) %Muestra imagen

Figura 3.1. Top-Hat Figura 3.2. Umbral

Figura 3.3. Closing Horizontal Figura 3.4. Opening Vertical

Figura 3.5. Dilatación

32
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB

33
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB

Finalmente a partir de la imagen binarizada de la zona de la placa, se pueden hallar la


ubicación de la placa y sus dimensiones para hacer un recorte de la imagen original de la
zona de la placa como se muestra en la figura 3.7. Se implementó el siguiente código:

L=bwlabel(IM6); %Crea regiones

stats=regionprops(L,'all'); %Estadisticas de las regiones

Idx=find([stats.Area]>(7000)); %Diferencia las regiones con Area > 7000

IM6=ismember(L,Idx); %Crea una imagen con dichas regiones

L=bwlabel(IM6); %Crea regiones

stats = regionprops(L,'all'); %Estadisticas de las regiones

E=stats(1).BoundingBox; %Toma tamaño de la region

X=E.*[[1] [0] [0] [0]]; X=max(X); %Determina eje X esquina superior Izq. Placa

Y=E.*[[0] [1] [0] [0]]; Y=max(Y); %Determina eje Y esquina superior Der. Placa

W=E.*[[0] [0] [1] [0]]; W=max(W) %Determina Ancho Placa

H=E.*[[0] [0] [0] [1]]; H=max(H); %Determina Altura placa

Corte=[X Y W H]; %Determina coordenadas de corte

IMF=imcrop(Ic,Corte); %Realiza el corte

figure; imshow(IMF) %Muestra imagen de la zona de la placa

34
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB

Figura 3.6. Recorte Placa.

A continuación procedemos a binarizar la imagen de la placa recortada con un umbral de


120, para poder recortar aun más la placa y así borrar las líneas y elementos que nos
producen ruido (Figura 3.8). Esto lo podemos realizar mediante una estadística de la región
tomada, y aplicando un porcentaje de recorte posible por las características estándar que
tienen las placas. Se realiza un filtro para ayudar a depurar un poco mas la imagen (Figura
3.9). Se binariza la imagen obtenida (Figura 3.10). Y por ultimo se aplica una propiedad de
región para que solo las áreas mayores a 1.5% del total queden presentes. El siguiente es el
código implementado:

umbral=120; %Aplico un Umbral de 120

placa=IMF>umbral; %Aplica umbral a placa

L=bwlabel(placa); %Crea regiones

stats=regionprops(L,'all'); %Estadisticas de las regiones

placadx=find([stats.Area]>(4500)); %Diferencia las regiones con Area > 4500

placa=ismember(L,placadx); %Crea una imagen con dichas regiones

L=bwlabel(placa); %Crea regiones

stats=regionprops(L,'all'); %Estadisticas de las regiones

E2=stats(1).BoundingBox; %Toma tamaño de la region

X2=E2.*[[1] [0] [0] [0]]; X2=max(X2); %Determina eje X esquina superior Izq. Placa

35
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB

Y2=E2.*[[0] [1] [0] [0]]; Y2=max(Y2); %Determina eje Y esquina superior Der. Placa

W2=E2.*[[0] [0] [1] [0]]; W2=max(W2); %Determina Anchura placa

H2=E2.*[[0] [0] [0] [1]]; H2=max(H2); %Determina Altura placa

Corte2=[X2 Y2 W2 H2]; %Determina coordenadas de corte

C2=imcrop(IMF,Corte2); %Realiza el corte

Wx=round(W2*0.94); Hx=round(H2*0.756);

Cortex=[4 12 Wx Hx];

C2=imcrop(C2,Cortex);

figure; imshow(C2) %Muestra Imagen

C3=imbothat(C2,st);

figure; imshow(C3)

umbral2=90;

C5=C3>umbral2;

figure; imshow(C5)

L=bwlabel(C5);

stats=regionprops(L,'all');

placadx=find([stats.Area]>((W2*H2)*0.015)); %Diferencia las regiones con Area > 1.5% del


%area total

placa=ismember(L,placadx); %Crea una imagen con dichas regiones

figure; imshow(placa)

36
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB

FIGURA 3.8. Recorte de la placa para FIGURA 3.9. Filtro para ayudar a depurar

eliminar ruido. la imagen.

FIGURA 3.10. Propiedad de región.

El siguiente paso es recortar cada carácter por separado, para esto utilizamos el comando
bwlabel para que nos divida la imagen en regiones y poder determinar el área que posee
cada región (que en este caso nos demarcará el área ocupada por el carácter) y poder
recortarlo con el comando imcrop, obteniendo cada carácter en una variable por separado.
Luego, a cada carácter se le realiza un nuevo dimensionamiento (24*42) para estandarizar
los caracteres y poder realizar el reconocimiento de la letra y del número. La figura 3.11
muestra los 6 caracteres recortados. El código utilizado es el siguiente:

L=bwlabel(placa);

stats=regionprops(L,'all');

E3=stats(1).BoundingBox; %Toma tamaño de la region 1, primer


caracter

37
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB

X3=E3.*[[1] [0] [0] [0]]; X3=max(X3); %Determina eje X esquina superior


Izq. Placa

Y3=E3.*[[0] [1] [0] [0]]; Y3=max(Y3); %Determina eje Y esquina superior


Der. Placa

W3=E3.*[[0] [0] [1] [0]]; W3=max(W3); %Determina Anchura placa

H3=E3.*[[0] [0] [0] [1]]; H3=max(H3); %Determina Altura placa

Corte3=[X3 Y3 W3 H3]; %Determina coordenadas de corte

L1=imcrop(C2,Corte3); %Realiza el corte

L1b=imresize(L1,[42 24]);

L1b=L1b>150;

figure; imshow(L1b) %Muestra el primer caracter

E3=stats(2).BoundingBox; %Toma tamaño de la region 2, segundo


caracter

X3=E3.*[[1] [0] [0] [0]]; X3=max(X3); %Determina eje X esquina superior


Izq. Placa

Y3=E3.*[[0] [1] [0] [0]]; Y3=max(Y3); %Determina eje Y esquina superior


Der. Placa

W3=E3.*[[0] [0] [1] [0]]; W3=max(W3); %Determina Anchura placa

H3=E3.*[[0] [0] [0] [1]]; H3=max(H3); %Determina Altura placa

Corte3=[X3 Y3 W3 H3]; %Determina coordenadas de corte

L2=imcrop(C2,Corte3); %Realiza el corte

L2b=imresize(L2,[42 24]);

L2b=L2b>150;

figure; imshow(L2b) %Muestra el segundo caracter

E3=stats(3).BoundingBox; %Toma tamaño de la region 3, tercer


caracter

38
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB

X3=E3.*[[1] [0] [0] [0]]; X3=max(X3); %Determina eje X esquina superior


Izq. Placa

Y3=E3.*[[0] [1] [0] [0]]; Y3=max(Y3); %Determina eje Y esquina superior


Der. Placa

W3=E3.*[[0] [0] [1] [0]]; W3=max(W3); %Determina Anchura placa

H3=E3.*[[0] [0] [0] [1]]; H3=max(H3); %Determina Altura placa

Corte3=[X3 Y3 W3 H3]; %Determina coordenadas de corte

L3=imcrop(C2,Corte3); %Realiza el corte

L3b=imresize(L3,[42 24]);

L3b=L3b>150;

figure; imshow(L3b) %Muestra el tercer caracter

E3=stats(4).BoundingBox; %Toma tamaño de la region 4, cuarto


caracter

X3=E3.*[[1] [0] [0] [0]]; X3=max(X3); %Determina eje X esquina superior


Izq. Placa

Y3=E3.*[[0] [1] [0] [0]]; Y3=max(Y3); %Determina eje Y esquina superior


Der. Placa

W3=E3.*[[0] [0] [1] [0]]; W3=max(W3); %Determina Anchura placa

H3=E3.*[[0] [0] [0] [1]]; H3=max(H3); %Determina Altura placa

Corte3=[X3 Y3 W3 H3]; %Determina coordenadas de corte

L4=imcrop(C2,Corte3); %Realiza el corte

L4b=imresize(L4,[42 24]);

L4b=L4b>150;

figure; imshow(L4b) %Muestra el cuarto caracter

E3=stats(5).BoundingBox; %Toma tamaño de la region 5, quinto


caracter

39
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB

X3=E3.*[[1] [0] [0] [0]]; X3=max(X3); %Determina eje X esquina superior


Izq. Placa

Y3=E3.*[[0] [1] [0] [0]]; Y3=max(Y3); %Determina eje Y esquina superior


Der. Placa

W3=E3.*[[0] [0] [1] [0]]; W3=max(W3); %Determina Anchura placa

H3=E3.*[[0] [0] [0] [1]]; H3=max(H3); %Determina Altura placa

Corte3=[X3 Y3 W3 H3]; %Determina coordenadas de corte

L5=imcrop(C2,Corte3); %Realiza el corte

L5b=imresize(L5,[42 24]);

L5b=L5b>150;

figure; imshow(L5b) %Muestra el quinto caracter

E3=stats(6).BoundingBox; %Toma tamaño de la region 6, sexto


caracter

X3=E3.*[[1] [0] [0] [0]]; X3=max(X3); %Determina eje X esquina superior


Izq. Placa

Y3=E3.*[[0] [1] [0] [0]]; Y3=max(Y3); %Determina eje Y esquina superior


Der. Placa

W3=E3.*[[0] [0] [1] [0]]; W3=max(W3); %Determina Anchura placa

H3=E3.*[[0] [0] [0] [1]]; H3=max(H3); %Determina Altura placa

Corte3=[X3 Y3 W3 H3]; %Determina coordenadas de corte

L6=imcrop(C2,Corte3); %Realiza el corte

L6b=imresize(L6,[42 24]);

L6b=L6b>150;

figure; imshow(L6b) %Muestra el sexto carácter

40
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB

Figura 3.11. Caracteres de la placa.

Desarrollo del OCR: En este momento ya poseemos los caracteres individuales que
componen el numero de la placa, por lo que se procederá a realizar una base de datos de las
24 letras del alfabeto en mayúscula (no se tiene en cuanta la letra CH ni la Ñ), y los dígitos
del 0 al 9. Para ello se realizaran archivos de imagen con los caracteres de 21*42 pixeles,
binarizados, que serán cargados a Matlab mediante variables, y luego se creara una matriz
denominada alfabeto que contenga todas la letras del alfabeto, Figura 3.12, y una matriz
denominada numeral que contiene todos los dígitos del 0 al 9, Figura 3.13. El siguiente es
el código implementado.

a=imread('C:\MATLAB6p5\work\A.bmp'); b=imread('C:\MATLAB6p5\work\B.bmp');

c=imread('C:\MATLAB6p5\work\C.bmp'); d=imread('C:\MATLAB6p5\work\D.bmp');

e=imread('C:\MATLAB6p5\work\E.bmp'); f=imread('C:\MATLAB6p5\work\F.bmp');

g=imread('C:\MATLAB6p5\work\G.bmp'); h=imread('C:\MATLAB6p5\work\H.bmp');

i=imread('C:\MATLAB6p5\work\I.bmp'); j=imread('C:\MATLAB6p5\work\J.bmp');

k=imread('C:\MATLAB6p5\work\K.bmp'); l=imread('C:\MATLAB6p5\work\L.bmp');

m=imread('C:\MATLAB6p5\work\M.bmp'); n=imread('C:\MATLAB6p5\work\N.bmp');

o=imread('C:\MATLAB6p5\work\O.bmp'); p=imread('C:\MATLAB6p5\work\P.bmp');

q=imread('C:\MATLAB6p5\work\Q.bmp'); r=imread('C:\MATLAB6p5\work\R.bmp');

s=imread('C:\MATLAB6p5\work\S.bmp'); t=imread('C:\MATLAB6p5\work\T.bmp');

u=imread('C:\MATLAB6p5\work\U.bmp'); v=imread('C:\MATLAB6p5\work\V.bmp');

w=imread('C:\MATLAB6p5\work\W.bmp'); x=imread('C:\MATLAB6p5\work\X.bmp');

y=imread('C:\MATLAB6p5\work\Y.bmp'); z=imread('C:\MATLAB6p5\work\Z.bmp');

uno=imread('C:\MATLAB6p5\work\1.bmp'); dos=imread('C:\MATLAB6p5\work\2.bmp');

41
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB

tres=imread('C:\MATLAB6p5\work\3.bmp'); cuatro=imread('C:\MATLAB6p5\work\4.bmp');

cinco=imread('C:\MATLAB6p5\work\5.bmp'); seis=imread('C:\MATLAB6p5\work\6.bmp');

siete=imread('C:\MATLAB6p5\work\7.bmp'); ocho=imread('C:\MATLAB6p5\work\8.bmp');

nueve=imread('C:\MATLAB6p5\work\9.bmp'); cero=imread('C:\MATLAB6p5\work\0.bmp');

alfabeto=[[a] [b] [c] [d] [e] [f] [g] [h] [i] [j] [k] [l] [m] [n] [o] [p] [q] [r] [s] [t]
[u] [v] [w] [x] [y] [z]];

numeral=[[uno] [dos] [tres] [cuatro] [cinco] [seis] [siete] [ocho] [nueve] [cero]];

Figura 3.12. Matriz alfabeto.

Figura 3.13 Matriz numeral.

Procedemos a realizar una conversión de matrices a un arreglo de celdas de las variables


numeral, alfabeto y matricula, para poder trabajar con elementos separados y definidos por
una posición para poder realizar operaciones individuales sobre cada uno de los elementos.
El siguiente es el código utilizado:

matricula=[[L1b] [L2b] [L3b] [L4b] [L5b] [L6b]];

ab=mat2cell(alfabeto,[42],[24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24
24 24 24 24]);

numero=mat2cell(numeral,[42],[24 24 24 24 24 24 24 24 24 24]);

plac=mat2cell(matricula,[42],[24 24 24 24 24 24]);

42
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB

Por ultimo, debemos encontrar un método adecuado para realizar el reconocimiento del
carácter hallado en la placa con uno presenta en la base de datos. En este caso se utilizo la
técnica de correlación. Matlab permite calcular el coeficiente de correlación entre dos
matrices bidimensionales, dando como resultado un valor que representa la igualdad entre
dos matrices. corr2 realiza el coeficiente de correlación usando la expresión:

donde A = mean2(A), and B = mean2(B)

Se desarrolló un ciclo, el cual toma los valores de la correlación del carácter que está siendo
analizado y lo introduce en una matriz de 3 filas por 26 o 10 columnas, según sean letras o
números respectivamente. Posteriormente se hallan los máximos de las tres columnas y son
almacenados en otra matriz. Finalmente se encuentran las posiciones en las que estaban los
máximos para así determinar la letra o el número al que corresponden y mediante otro ciclo
se muestra esto en pantalla. El código implementado fue el siguiente:

%Ciclo que reconoce las letras y les asigna la posicion en la matriz de abecedario

fila=1;

ind=1;

while fila < 4

posp=1;

for posp=1:3

plc=plac{1,posp};

pos=1;

43
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB

temp=0;

while pos<27

temp=ab{1,pos};

co=corr2(temp,plc);

letra(fila,pos)=co;

pos=pos+1;

end

fila=fila+1;

posp=posp+1;

end

end

for ind = 1:3

maxs=max(letra,[],2);

[posx posy]=find(letra==maxs(ind,1));

letras(ind)=posy

ind=ind+1;

end

%Ciclo que reconoce los numeros y les asigna la posicion en la matriz de

%numeros

fila=1;

ind=1;

while fila < 4

posp=4;

44
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB

for posp=4:6

plc=plac{1,posp};

pos=1;

temp=0;

while pos<11

temp=numero{1,pos};

co=corr2(temp,plc);

num(fila,pos)=co;

pos=pos+1;

end

fila=fila+1;

posp=posp+1;

end

end

for ind = 1:3

maxs=max(num,[],2);

[posx posy]=find(num==maxs(ind,1));

nums(ind)=posy

ind=ind+1;

end

close all

mal='a';

ltr=1;

45
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB

lt=1;

while ltr < 4

while lt < 4

if letras(ltr)== 1

mal(lt)='A'

elseif letras(ltr) == 2

mal(lt)='B'

elseif letras(ltr) == 3

mal(lt)='C'

elseif letras(ltr) == 4

mal(lt)='D'

elseif letras(ltr) == 5

mal(lt)='E'

elseif letras(ltr) == 6

mal(lt)='F'

elseif letras(ltr) == 7

mal(lt)='G'

elseif letras(ltr) == 8

mal(lt)='H'

elseif letras(ltr) == 9

mal(lt)='I'

elseif letras(ltr) == 10

mal(lt)='J'

46
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB

elseif letras(ltr) == 11

mal(lt)='K'

elseif letras(ltr) == 12

mal(lt)='L'

elseif letras(ltr) == 13

mal(lt)='M'

elseif letras(ltr) == 14

mal(lt)='N'

elseif letras(ltr) == 15

mal(lt)='O'

elseif letras(ltr) == 16

mal(lt)='P'

elseif letras(ltr) == 17

mal(lt)='Q'

elseif letras(ltr) == 18

mal(lt)='R'

elseif letras(ltr) == 19

mal(lt)='S'

elseif letras(ltr) == 20

mal(lt)='T'

elseif letras(ltr) == 21

mal(lt)='U'

elseif letras(ltr) == 22

47
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB

mal(lt)='V'

elseif letras(ltr) == 23

mal(lt)='W'

elseif letras(ltr) == 24

mal(lt)='X'

elseif letras(ltr) == 25

mal(lt)='Y'

elseif letras(ltr) == 26

mal(lt)='Z'

else

mal(lt)='Paila'

end

lt=lt+1;

ltr=ltr+1;

end

end

nmr=1;

man='1';

nm=1;

while nmr < 4

while nm < 4

if nums(nmr)== 1

48
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB

man(nm)='1'

elseif nums(nmr) == 2

man(nm)='2'

elseif nums(nmr) == 3

man(nm)='3'

elseif nums(nmr) == 4

man(nm)='4'

elseif nums(nmr) == 5

man(nm)='5'

elseif nums(nmr) == 6

man(nm)='6'

elseif nums(nmr) == 7

man(nm)='7'

elseif nums(nmr) == 8

man(nm)='8'

elseif nums(nmr) == 9

man(nm)='9'

elseif nums(nmr) == 10

man(nm)='0'

else

disp('Paila')

end

nm=nm+1;

49
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB

nmr=nmr+1;

end

end

plate=horzcat(mal,man);

disp(plate)

50
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB

CONCLUSIONES

• La utilización de los elementos estructurantes, definidos en Matlab, es una


herramienta poderosa para simplificar los procedimientos a realizar cuando
trabajamos con imágenes y debemos eliminar estructuras y objetos irrelevantes al
objetivo propuesto.
• No es aconsejable utilizar elementos estructurantes y propiedades morfológicas si el
objetivo es implementar el código en otro compilador y programa diferente al de
Matlab, pero por facilidad y economía de tiempo se podrían utilizar para tener un
conocimiento inicial de los pasos que se deben realizar para cumplir el objetivo
propuesto a la imagen.

Al utilizar métodos tradicionales de filtrado, erosionado y dilatado de imágenes,


aseguramos la portabilidad del código hacia otros programas y dispositivos, como DSP´s,
aunque su implementación es mas larga, dificultosa y de mayor cuidado.

51
Instituto Politécnico Nacional Diseño de sistema de reconocimiento de placas utilizando MATLAB
ESIME CULHUACAN Capítulo 1 Diseño del sistema de reconocimiento de placas en MATLAB

BIBLIOGRAFIA

1) Digital filters and signal processing with MATLAB, exercises /Leland B. Jackson.
Boston: Kluwer Academic Publishers, c1996.

2) Introducción a los filtros digitales /Jesus Barrios Romano.


México: Universidad Autónoma Metropolitana, Unidad Iztapalapa , 1992.

3) Digital Image Processing, Third Edition/William K. Pratt


Los Altos, California, 2001.

52

También podría gustarte