Sunteți pe pagina 1din 4

Universidad Tcnica Particular de Loja Electrnica y telecomunicaciones

SISTEMA PARA CALCULAR E IDENTIFICAR MONEDAS


Cristian Aguirre
cbaguirre@utpl.edu.ec

Ronnier Torres
ratorres8@utpl.edu.ec

Santiago Paladines
slpaladines@utpl.edu.ec

RESUMEN: EL proyecto fue elaborado con la finalidad de construir un sistema capaz de calcular e identificar en una imagen el nmero y valor de las monedas, de esta manera ilustrar el procesamiento de imgenes utilizando la herramienta MATLAB y el sinnmero de funciones que sta nos proporciona. Como resultado de la investigacin y prctica logramos disear un cdigo en la herramienta MATLAB capaz de cumplir con todas las caractersticas necesarias para cumplir con los objetivos propuestos.
PALABRAS CLAVE: monedas, matlab.

fijo conectada al software, que se detallara ms adelante, y en su base se elabor una bandeja donde se colocara las monedas (vase figura 1). Se elabor primeramente el hardware ya que se debe tomar en cuenta la altura adecuada entre la webcam y la bandeja para de esta manera poder tener una imagen adecuada de las monedas.

1 INTRODUCCIN
Como proyecto del curso de seales analgicas y digitales, se nos ha planteado la realizacin de una aplicacin utilizando la herramienta MATLAB. Por razones de uso personal, decidimos elaborar un sistema para calcular e identificar en una imagen la cantidad de monedas y su valor, ya que podra ser una buena aplicacin en un futuro. MATLAB utiliza el toolbox de procesamiento de imgenes que contiene un conjunto de funciones de los algoritmos ms conocidos para trabajar con imgenes binarias, trasformaciones geomtricas, morfologa y manipulacin de color que junto con las funciones ya integradas en matlab permite realizar anlisis y trasformaciones de imgenes. MATLAB almacena las imgenes como vectores bidimensionales (matrices), en el que cada elemento de la matriz corresponde a un slo pixel. Figura 1. Pedestal As mismo una vez obtenidas las imgenes de las monedas se puede empezar a trabajar en el software del sistema, ya que las imgenes no cambiaran debido a la estructura fija del sistema, por lo tanto cada moneda tendr el mismo tamao en cualquier imagen, con esto ya podemos trabajar en calcular e identificar la cantidad de monedas

2 PROBLEMTICA PLANTEADA
Tras haber elegido el diseo de un sistema para calcular e identificar en una imagen la cantidad de monedas y su valor, este conservar los mismos requerimientos antes planteados que son utilizacin de la herramienta matlab y de alto nivel prctico.

4 DISEO DE SOFTWARE
Utilizando la herramienta Matlab se dise el software capaz de cumplir con los objetivos propuestos los cuales son reconocer la imagen de una moneda, identificar que sea una moneda, y saber determinar su respectivo valor, (vase figura 2)

3 DISEO DE HARDWARE
Para el diseo del hardware se elabor una estructura, en la cual se coloc la cmara en un pedestal

Universidad Tcnica Particular de Loja Electrnica y telecomunicaciones

Figura 4. Primeras lneas de cdigo . Una vez ya capturada la imagen con la webcam, en matlab para leer una imagen se utiliza la funcin imread(nombreimagen), en nuestro cdigo la variable imagen almacena la imagen de la webcam Figura 2. Cdigo en Matlab. Para comenzar a desarrollar el software empezamos configurando el pixelaje de la webcam. Se realiza esto, es por el motivo de que no existan problemas al momento de emplear el video y captura de las imgenes, mientras mayor sea el pixelaje de resolucin de la webcam, ms conveniente es el uso de la misma. Utilizando la funcin imaqtool en el Command Window podemos acceder a la configuracin de la webcam, donde se puede escoger la resolucin as como determinar la funcin para acceder a la cmara. (Vase figura 3) imagen=imread(moneda.jpg) Es importar tener en cuenta que el nombre de la imagen debe ir con la extensin del archivo, es por eso que en nuestro cdigo va moneda.jpg. (Vease figura 4) Deseamos convertir nuestra imagen moneda a binaria. Normalmente cuando se convierte una imagen a binaria se emplea el 0 para indicar el fondo y 1 el objeto. Para realizar esto se emplear una tcnica de umbralizacin para convertir las imgenes en binarias (im2bw()), en nuestro cdigo la variable coin1 almacenara la imagen binaria. (vase figura 4). coin1= im2bw(imagen) Para realizar la descripcin de regiones se utiliza propiedades bsicas de matlab, B = bwlabel(f) donde f es la imagen original y el comando, bwlabel, nos convierte la imagen a una representacin de etiquetas (labels). Adems bwlabel devuelve una matriz, del mismo tamao de la imagen original, que contiene las etiquetas para los objetos conectados en la imagen. [L, ne] = bwlabel (double,coin1) Devuelve en nmero el nmero de objetos relacionados que se encuentran en la imagen original. (Vase figura 4). En la siguiente lnea el comando regionprops toma la matriz etiquetada de la lnea anterior y calcula las propiedades que se seleccionen. Las propiedades que se desean calcular se van poniendo una detrs de otra seguidas por una coma. Las propiedades que utilizaremos en este caso son rea, centroid, boundingbox para determinar la propiedades de los objetos, la propiedad rea nos permite calcular el rea en pixeles cuadrados de la regin, centroid que calcula la posicin del centroide de la regin, y boundingbox, calcula la posicin y dimensiones del mnimo rectngulo que envuelve la regin. (Vase figura 4) propied=regionprops(L,'Area','Centroid','BoundingBox')

Figura 3. Configuracin cmara web. Luego de tener bien configurada la webcam, es importante dar clic en stop preview ya que si no se lo hace, al momento de ejecutar el video en la aplicacin no se ejecutar y saldr errores en la lnea de comandos. Ya con la webcam configurada podemos elaborar las lneas de cdigo del software, para cumplir los objetivos planteados que debe realizar el software. (Vase figura 4)

Universidad Tcnica Particular de Loja Electrnica y telecomunicaciones

.
En las siguientes lneas se procede a obtener la posicin del centro X=cent(1);Y=cent(2); Y a continuacin se obtiene el rea de cada una de las monedas que es con la que se trabajar para determinar segn esto, que monedas es y su valor. (Vase figura 6) Figura 5. Lneas de cdigo Para mostrar imgenes en matlab se usa el comando imshow cuyo formato es imshow(f, G) donde f es la imagen original y G es el nmero de niveles de intensidad a mostrar. Si G se omite, se usa 256 por defecto. En la lnea 7 procedemos a mostrar la imagen. (Vase figura 5). imshow(imagen) El comando hold on mantiene en la ventana grfica los dibujos anteriores. Se utiliz la variable total que almacenar el valor total de las monedas identificadas. As mismo se utiliza las variables moneda10c, moneda1c, moneda5c, moneda25c, moneda1D, moneda50c, para almacenar el nmero de monedas dependiendo su valor. (Vase figura 5). propied(n).Area

Figura 7. Proceso del clculo de monedas Para obtener los lmites de reas de las monedas se lo realizo de la siguiente manera. Se tom en cuenta dos aspectos importantes, el primero es que la moneda de diez centavos con la de un centavo son parecidas en tamao por lo que a cada una se la examin y coloc en diferentes posiciones para ir tomando valores de reas de cada una. Se realiz en cada moneda tomas de medida en diferentes posiciones para sacar el mnimo y el mximo valor. Lo mismo se realiz para las monedas de un dlar y 25 centavos y se obtuvo rangos de medida en los cuales no haya ningn tipo de cruce e interseccin. Despus de esto se prob el resto de monedas una por una, ya que de igual manera en algunas se tena problemas de interseccin de reas. Pero al igual que las anteriores se hizo las tomas de medida una por una. Obtenidos los valores de las reas de cada moneda se procede a utilizar un if para ir comparando los tamaos obtenidos y de esta manera identificar que monedas son. Dentro de cada if se realiza la comparacin con un rango especifico dependiendo de cada moneda, dentro del primer if para el rango del rea de las monedas de 10 centavos es de Area<= 4148 & Area>=4146. if propied(n).Area<=4148 & propied(n).Area>=4146 Luego lo que se realiza es el corte de la imagen con el comando immcrop y lo que se ubica dentro de los corchetes es el valor de x y y de la imagen segn donde est ubicada y luego se coloca el ancho y la altura deseada para el corte.(Vase figura 7) r10c=imcrop(imagen,[X-36 Y-36 72 72]);

Figura 6. Lneas de cdigo Procedemos a graficar las cajas de frontera de todos los objetos existentes en la imagen. Con la utilizacin de un for realizaremos el conteo desde 1, hasta las reas que tengamos presentes en la imagen. (Vase figura 6) for n=1:size(propied,1) Para tratar de diferenciar la ubicacin de cada moneda en la imagen utilizamos el comando rectangle que dibuja el recuadro alrededor de cada moneda identificada rectangle('Position',propied.BoundingBox) En la siguiente lnea de cdigo se procede a obtener el centro de cada rea identificada en la imagen para poder colocar el valor de dicha moneda. cent=propied.Centroid;

Universidad Tcnica Particular de Loja Electrnica y telecomunicaciones

.
En la siguiente lnea se convierte la imagen cortada a binaria, para su procesamiento (Vase figura 7). c1 = im2bw(r10c); Para evitar el inconveniente de que exista otro objeto, del mismo tamao, es decir que tenga la misma rea, pero no sea una moneda, se procesa la imagen para observar que no tenga orificios, primeramente en la variable c2 se almacena la imagen inversa de c1. c2 = ~(c1); Utilizando nuevamente el comando bwlabel se etiqueta y cuenta todos los objetos conectados en la imagen, as mismo utilizando regionprops se calcula las propiedades de los objetos y se almacena en la variable huecos. (Vease figura 7) [l ne]=bwlabel(double(c2)); huecos=regionprops(l,'Area','Centroid','BoundingBox') Con la utilizacin del commando text(X-10,Y,'10 C') se escribe en el centro de la moneda su valor, que en este caso sera 10C, 10 centavos. As mismo la variable total ira almacenando y sumando la cantidad segn las monedas existentes para al finalizar tener el valor de todo. total=total+0.10; Se repetir el mismo procedimiento para determinar cada una de las monedas existentes en la imagen dependiendo del rango de su rea. 1centavo 5centavos 25centavos 1dolar 50centavos = Area<=4570 & .Area>=4568 = Area<=5661 & .Area>=5659 = Area<=7486 & .Area>=7484 = Area<=9261 & .Area>=9259 = Area<=12076 & .Area>=12074 Figura 9. Sistema implementado alguna. As mismo se pudo obtener conocimientos en la utilizacin de diferentes comandos de la herramienta MATLAB para el procesamiento de imgenes.

7 CONCLUSIONES
No debe existir interseccin de reas de tal manera que no se descalibre el reconocimiento de cada una de las monedas. Se realiz medidas de reas en diferentes partes de la zona de espacio. Debe haber un uso correcto de los comando de MATLAB para evitar inconvenientes. El sistema se lo fue diseando desde la altura de la cmara para as evitar inconvenientes con el tamao de las monedas en la imagen La cmara estar fija pues de esto depende que el sistema no falle.

Al final de todo este proceso se colocara como ttulo de la imagen el valor total de la cantidad en dinero de las monedas. title(['Total de dinero: ',num2str(total),'dlares'])

8 REFERENCIAS
[1] Scribd. Visin por Computador utilizando Matlab y el Toolbox de Procesamiento Digital de Imgenes, [Online], [consulta el 24-05-2012] Disponible en: http://es.scribd.com/doc/23371/Procesamiento-de-imagenescon-Matlab. [2] Carnegie Mellon. Tutoriales de Control con Matlab [Online]. [consulta el 24-05-2012] Disponible en: http://www.ib.cnea.gov.ar/~instyctl/Tutorial_Matlab_esp/com mands.html [3] Matpic.com, Conteo de Monedas en una Imagen. [Online]. [consulta el 24-05-2012] Disponible en: http://www.matpic.com/ [4] Mathworks. "Matlab Central [consulta el 24-05-2012] [Online] Disponible en: http://www.mathworks.com/matlabcentral/answers/33773superimposes-realitime-web-cam-stream

5 MATERIALES
CmaraWeb JT-NCM014 Pedestal Fuente (colocacin de las monedas) Cable USB 2.0 (conexin cmara)

6 RESULTADOS
Luego de realizar todas las pruebas, y verificar todos los fallos, se pudo obtener el software junto con el hardware funcionando sin falla alguna (Vase figura 8), detectando la cantidad correcta de monedas e identificando cualquier otro objeto que no sea moneda

S-ar putea să vă placă și