3. Procesamiento Digital de Imágenes
Proyecto Final
(a) (b)
Figura 2. Muestra proceso morfológico de abertura (a) y cierre (b) aplicada a la imagen anterior.
Realizado los procesos de dilatación y apertura se realiza el realce de bordes, aplicando para ello
una máscara de sobel, lo que permite tener una mejor visión de las líneas que se deberán cubrir
posteriormente con la transformada de Hough y buscar una forma de eliminar aquellas que no son
de interés, como las líneas oblicuas, dicho efecto se presenta en la figura 3(a). Por otro lado se
observa en 3(b) se aplica nuevamente el proceso de ‘imfill’ para rellenar los huecos utilizando los
cuatro vecinos, así se consigue identificar previamente el hueco donde se localiza la patente en su
totalidad.
(a) (b)
Figura 3. (a)Aplicación de máscara de Sobel, para realce de bordes, (b) Relleno de imagen con ‘imfill’
3
J. Pino C. – M. Salgado V – C. Valenzuela V. Ingeniería Civil en Telecomunicaciones
4. Procesamiento Digital de Imágenes
Proyecto Final
(a) (b)
Figura 4. (a)Aplicación de máscara de Sobel, para realce de bordes, (b) aplicada a la imagen anterior.
En la figura 4(a), se ha aplicado erosión a la imagen 3(b), para así eliminar las líneas que no son
de interés, utilizando un elemento estructurante diferente que para el caso de apertura y cierra, en
esta ocasión se utilizó un elemento cuadrado de dimensiones 4x4. Mientras que para la figura
4(b) se realza nuevamente el borde, a través de máscara de Sobel, así se consigue identificar
solamente el extracto de la figura que corresponde al objetivo planteado, el cual es localizar la
patente.
Figura 5. Dilatación para aumentar tamaño de bordes
En la figura 5 se muestra uno el último paso en el proceso morfológico, antes de utilizar
transformada de Hough, se aplica nuevamente dilatación, utilizando un elemento estructurante
cuadrado de 3x3, con la finalidad de aumentar el tamaño del borde realizado en el paso anterior
(figura 4(b)), de esta forma se consigue identificar con mayor certeza los bordes del objetivo.
Con todo esto se ha realizado todo el proceso morfológico hacia la imagen, lo que permite ahora
aplicar directamente la transformada de Hough a la imagen mostrada en la figura 5.
4
J. Pino C. – M. Salgado V – C. Valenzuela V. Ingeniería Civil en Telecomunicaciones
5. Procesamiento Digital de Imágenes
Proyecto Final
Figura 6. Identificación de Peaks a través de la Transformada de Hough.
En la figura 6, se muestra que la transformada detectó dos peaks, por ende deberá trazar dos
líneas. Se debe destacar que la transformada de Hough se configuró con este fin, ya que
identificando dos líneas horizontales es suficiente para nuestro propósito, como se verá a
continuación.
(a) (b)
Figura 7. (a) Localización de la patente en imagen original, (b) Extracción de la patente encontrada.
Para finalizar el proceso, se aplica la detección de la patente a través de la transformada a la
imagen original, en la cual se observa dos líneas horizontales rodeando la patente, con esto se ha
logrado el objetivo principal, ya que en dicha imagen se observa una mayor cantidad de líneas
horizontales y verticales las cuales fácilmente podrían haber sido identificadas como bordes, sin
embargo el proceso morfológico realizado fue implementado satisfactoriamente. En la figura 7
(a) se muestra la imagen original a la que se la ha aplicado la transformada de Hough, mientras
que en la figura (b) se extrae el objeto encontrado y se presenta para los fines que se estimen
convenientes, como una futura segmentación de caracteres.
5
J. Pino C. – M. Salgado V – C. Valenzuela V. Ingeniería Civil en Telecomunicaciones
6. Procesamiento Digital de Imágenes
Proyecto Final
4. Conclusiones
De la implementación de los procesos morfológicos, junto con la transformada de Hough
podemos determinar qué:
Una de las características más importantes al momento de la implementación de este algoritmo
es la umbralización de las imágenes, ya que dicho factor es diferente para cada una de éstas, por
lo tanto es crucial estimar su valor antes de procesar la imagen, de esta forma de logra una
correcta localización de la patente deseada.
Lo ideal es trabajar con imágenes con un nivel de ruido reducido, ya que esto permite una
ejecución más rápida y resultados más óptimos al momento de la localización de la patente, una
imagen con alto nivel de ruidos producirá efectos no deseados en los resultados.
Como la transformada de Hough funciona como un detector de líneas es de vital importancia
lograr un pre procesamiento que permita eliminar todas aquellas líneas que no son de nuestro
interés, ya que si no se logra este efecto la transformada identificará figuras dentro de la imagen
que permitirán una localización errónea del objetivo deseado.
Una de las características importantes que se logró a través de la implementación de ambos
procesos fue que el tiempo de desarrollo del algoritmo es menor a 4 segundos, por lo que el
algoritmo presenta una buena respuesta con respecto al tiempo, considerando que para ello se
realiza una variedad de procesos morfológicos.
Finalmente podemos decir que aplicar la transformada de Hough junto con procesamiento
morfológico es una herramienta efectiva y robusta para la localización de patentes en vehículos.
5. Bibliografía
[1] Ganapathi V. Lui W.L A Malasyan Vehicle Licence Plate Localization and Recognition
System. School of Engineering, Monas University Malaysia.
A. Anexo: Código Matlab
6
J. Pino C. – M. Salgado V – C. Valenzuela V. Ingeniería Civil en Telecomunicaciones
7. Procesamiento Digital de Imágenes
Proyecto Final
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%
%%%%%% Procesamiento Digital de Imágenes %%%%%% %%%% Proyecto %%%%
%%%%%% Jonathan Pino Caba %%%%%% %%%% Final %%%%
%%%%%% Miguel Salgado Vargas %%%%%% %%%% 30 de Julio %%%%
%%%%%% Cristian Valenzuela Vidal %%%%%% %%%% 2010 %%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%
close all;
clear all;
clc;
I = imread('Imagenes/patente1.png'); % adquiere imagen
[imax jmax z] = size(I); % tamaño en pixeles de la imagen
if z > 1
Ig = rgb2gray(I); % conversion RGB a grises
end
% Filtrado de huecos
BW = imfill(Ig,'holes');
% Binarizaci'on de la imagen con su respectivo umbral
BW = im2bw(BW,0.5);
% Elemento estructurante de 30x30
SE = strel('square',30);
NHOOD = getnhood(SE);% Para aplicar el SE de forma binaria
% Apertura
BW = imopen(BW,NHOOD);
% Cierre
BW = imclose(BW,NHOOD);
% Detecci'on de contorno con mascara SOBEL
BW = edge(BW,'sobel');
% Filtrado de huecos de forma concatenada de valor 4
BW = imfill(BW,4,'holes');
% Elemento estructurante de 4x4
SE = strel('square',4);
NHOOD = getnhood(SE);% Para aplicar el SE de forma binaria
% Erosi'on
BW = imerode(BW,NHOOD);
% Detecci'on de contornos con mascara de SOLBEL
BW = edge(BW,'sobel');
% Dilataci'on
BW = imdilate(BW,NHOOD);
% Transformada de hough
[H,T,R] = hough(BW);
imshow(H,[],'XData',T,'YData',R,...
'InitialMagnification','fit');
xlabel('theta'), ylabel('rho');
7
J. Pino C. – M. Salgado V – C. Valenzuela V. Ingeniería Civil en Telecomunicaciones
8. Procesamiento Digital de Imágenes
Proyecto Final
axis on, axis normal, hold on;
% Hough peaks
% Solo encontrara 2 peaks y 0.1*max(H(:))) para la sensibilidad
P = houghpeaks(H,2,'Threshold',0.1*max(H(:)));
% Para plotear resultados
x = T(P(:,2)); y = R(P(:,1));
plot(x,y,'s','color','white');
% Encuentra las lineas
% Las lineas con separaci'on menor que 100 son consideradas una linea
% Las lineas de largo menor a 1 no son consideradas como linea
lines = houghlines(BW,T,R,P,'FillGap',100,'MinLength',1);
[i f] = size(lines);% Tama~no de lines
figure, imshow(I), hold on
max_len = 0;
for k = 1:length(lines)
xy = [lines(k).point1; lines(k).point2];
plot(xy(:,1),xy(:,2),'LineWidth',2,'Color','green');
% Plot de inicio y termino de lineas
plot(xy(1,1),xy(1,2),'x','LineWidth',2,'Color','yellow');
plot(xy(2,1),xy(2,2),'x','LineWidth',2,'Color','red');
% Determinaci'on del final de largo de linea
len = norm(lines(k).point1 - lines(k).point2);
if ( len > max_len)
max_len = len;
xy_long = xy;
end
end
% Plot de las lineas
plot(xy_long(:,1),xy_long(:,2),'LineWidth',2,'Color','blue');
% Determinaci'on del largo de la patente
largo = abs(lines(1,1).point2(1,1) - lines(1,1).point1(1,1));
% Determinaci'on del ancho de la patente
ancho = abs(lines(1,2).point1(1,2) - lines(1,1).point1(1,2));
% Corta la imagen correspondiente a la patente
BW = imcrop(I,[lines(1,1).point1(1,1) lines(1,1).point1(1,2) largo ancho]);
figure
imshow(BW)
8
J. Pino C. – M. Salgado V – C. Valenzuela V. Ingeniería Civil en Telecomunicaciones