Visión artificial. Tomás Domínguez Mínguez
Чтение книги онлайн.
Читать онлайн книгу Visión artificial - Tomás Domínguez Mínguez страница 14
5.2 GESTIÓN DE EVENTOS DEL TECLADO
En este apartado aprenderá a gestionar los eventos del teclado, que utilizará básicamente para capturar la pulsación de una tecla. Para ello, OpenCV ofrece la función:
waitKey(milisegundos)
Su único argumento fija el número de milisegundos que estaría bloqueado el programa en este punto hasta que se pulsara cualquier tecla. Si su valor fuera 0, sería de forma indefinida.
El resultado de dicha función es el código Unicode de la tecla pulsada (o -1, si transcurrido el número de milisegundos indicado, no se hubiera pulsado ninguna).
Para llamar a esta función, es necesario que al menos haya una ventana activa.
En el siguiente programa, se amplía el de la pizarra electrónica del apartado anterior para poder salir de la aplicación pulsando las teclas ‘Esc’ o ‘q’. Además, al presionar el retorno de carro, pasará alternativamente del modo dibujo al de borrado. El código es el siguiente:
Solo se explicarán las diferencias con el código del programa anterior, empezando por la declaración inicial de variables, ya que se ha añadido una de tipo booleano (borrado), cuyo valor True indicaría que la aplicación está en modo borrado. Inicialmente tiene el valor False porque se comienza en modo dibujo.
borrado = False
Lo realmente novedoso de este nuevo programa es el bucle while, cuya condición True indica que podría estar ejecutándose indefinidamente.
Dentro, lo primero que se hace es llamar a la función waitKey() para esperar cierto tiempo (se ha puesto 100 ms, aunque podría ser otro diferente) hasta que se pulse una tecla. A continuación, hay una serie de condiciones que detectan si se ha pulsado el retorno de carro para cambiar del modo dibujo al de borrado o viceversa, o las teclas con las que se quiere abandonar la aplicación (‘Esc’ o ‘q’). En este último caso únicamente se ejecutaría la sentencia break, que permite salir del bucle y, en consecuencia, de la aplicación.
El código Unicode del retorno de carro es 13, mientras que el de la tecla ‘Esc’ es 27.
Si se pulsara retorno de carro, lo primero que se haría es cambiar de modo (invertir el valor de la variable borrado) y, en función de este, modificar los valores de las variables que establecen el color del trazo (color) y su grosor (grosor). En el modo borrado, el color del trazo será el mismo que el del fondo (blanco), cuyo efecto será la eliminación de cualquier línea roja que se hubiera dibujado previamente. Además, se amplía el grosor del trazo para facilitar dicho borrado.
Una vez fuera del bucle, lo que se hace es cerrar la ventana con destroyAllWindows().
cv2.destroyAllWindows()
Ya solo queda probarlo. Esta vez, podrá corregir los trazos que no le gusten.
Конец ознакомительного фрагмента.
Текст предоставлен ООО «ЛитРес».
Прочитайте эту книгу целиком, купив полную легальную версию на ЛитРес.
Безопасно оплатить книгу можно банковской картой Visa, MasterCard, Maestro, со счета мобильного телефона, с платежного терминала, в салоне МТС или Связной, через PayPal, WebMoney, Яндекс.Деньги, QIWI Кошелек, бонусными картами или другим удобным Вам способом.