FIEE - UNI
BMA20P-ALGORITMO Y ESTRUCTURA DE DATOS
HORA DE UN RELOJ
MALACA HUARAC LUIS FIGO1 , Código de alumno: 20204178G
1
Facultad de Ingeniería Eléctrica y electrónica,Universidad Nacional de Ingeniería, Rimac,Perú
* E-mail: [email protected]
Abstract: In the following report, the idea of how to identify the time of a clock by introducing an image in python will be given.
1 Introducción usaremos el angulo α donde este va a depender de θ de la siguiente
manera:
1. OpenCV
La librería OpenCV proporciona un marco de trabajo de alto nivel • si 0 ≤ θ ≤ 90◦ entonces α = 90 − θ
para el desarrollo de aplicaciones de visión por computador en • si 90◦ < θ ≤ 180◦ entonces α = 450 − θ
tiempo real: estructuras de datos, procesamiento y análisis de imá- • si 180◦ < θ ≤ 270◦ entonces α = 450 − θ
genes, análisis estructural, etc. • si 270◦ < θ < 360◦ entonces α = 450 − θ
2. Imágenes como matrices Teniendo α para cada recta, podremos usar la relacion angular con
Una imagen no es más que una matriz estándar de Numpy que con- respecto a cada manecillas del reloj, en cual consiste:
tiene píxeles de puntos de datos. Cuanto mayor sea el número de
píxeles en una imagen, mejor es su resolución. Puede pensar que los • HORARIO:
píxeles son pequeños bloques de información dispuestos en forma Si 0 ≤ α < 30◦ el horario marca las 12, si 30 ≤ α < 60◦ el horario
de una cuadrícula 2D, y la profundidad de un píxel se refiere a la marca la 1 y asi sucesivamente, hasta completar los 360°. Si 330 ≤
información de color presente en ella. Para ser procesado por una α < 360◦ el horario marca las 11.
computadora, una imagen debe convertirse en una forma binaria.
• MINUTERO:
3. Imagen binaria Si 0 ≤ α < 6◦ el minutero marca las :00, si 6 ≤ α < 12◦ el min-
Una imagen binaria consta de 1 bit/píxel y, por lo tanto, solo puede utero marca la :01 y asi sucesivamente, hasta completar los 360°. Si
tener dos colores posibles, es decir, blanco o negro. El negro está 354 ≤ α < 360◦ el horario marca las :59.
representado por el valor 0 mientras que el 1 representa el blanco.
Sabiendo esto ya podremos saber la hora.
4. Comando HoughLinesP()
La transformada de línea de Hough es una transformada utilizada
para detectar líneas rectas y te da como resultado un vector de pare- 3 Observación
jas( r, θ).
• El informe solo trato de dar la idea, mas no, de dar el codigo que
5. Angulos en el reloj realice la opción.
Un reloj analógico tiene 12 números, dividiendo así el reloj en • Se tiene que usar algunos comandos y librerias que un no se ven
12 partes iguales. Estas divisiones indican las horas. Y cada hora en clase.
está dividida en cinco subdivisiones, las cuales hacen un total 60 • se aplico razonamiento lógico para poder deducir las horas con
(12×5=60) divisiones que indican los minutos del reloj. los angulos que forman las manecillas del reloj.
Vamos a ver los ángulos que recorren el minutero y el horario en una
hora.
El minutero da la vuelta entera por lo que recorre 360º. El horario 4 Bibliografía
se mueve de un número al siguiente en una hora, y como son 12
números en total, hacemos la división 360 : 12 = 30, por lo que en Ackerman, Diane. “Ángulos explicados con la ayuda de un reloj -
una hora, el horario recorre 30º. Matemáticas.” Smartick, 30 June 2022,
https://www.smartick.es/blog/matematicas/geometria/angulos-reloj/.
Accessed 5 April 2023.
2 Solución propuesta
INESEM. “OpenCV, Instalación en Python y ejemplos básicos.”
Primero la imagen que queremos introducir en python debe estar en Inesem, 12 February 2020, https://www.inesem.es/revistadigital/informatica-
blaco y negro, ya que, al introducir la imagen esta se convierte en y-tics/opencv/. Accessed 5 April 2023.
una matriz, donde el espacio negro es 0 y el espacio blanco es 1.
Para ello usamos OpenCV, se importa las librerias necesarias, se lee OpenCV. “OpenCV: Hough Line Transform.” OpenCV Documenta-
la imagen utilizando la funcion imread y para culminar con la intro- tion, https://docs.opencv.org/3.4/d9/db0/tutorialh oughl ines.html.
duccion de la imagen se elige el tipo y forma de la matriz. Accessed5April2023.
Ahora que ya tenemos la imagen convertida en matriz usaremos el
metodo HoughLinesP() para poder conseguir las longitud y la pen- ıT ransf ormadadeHough.ȷW ikipedia, https : //es.wikipedia.org
diente (θ). Comparamos logitudes para saber cual es el minutero y /wiki/T ransf ormadad eH ough.Accessed5April2023.
el horario. El de mayor longitud le corresponde al minutero.
El θ como es la pendiente, esta referenciado en el eje horizontal,
pero nosotros necesitamos referenciado con el eje vertical. para ello
IET Research Journals, pp. 1–1
© The Institution of Engineering and Technology 2015 1