Open cv Python duda

Iniciado por mariodos, Febrero 09, 2017, 01:23:43 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Febrero 09, 2017, 01:23:43 AM Ultima modificación: Febrero 10, 2017, 09:27:43 PM por Stiuvert
Quiero probar algo.. pero la verdad nunca en mi vida trabaje con imagenes asi que estoy en proceso de investigacion de las librerias y demas conocimientos que debo adquirir para trabajar.

y mi duda esta en el este codigo simple de python que no se que es.

Código: python


import cv2
import numpy as np

cap = cv2.VideoCapture(0)
while True:
    ret, frame = cap.read()
    cv2.imshow('frame',frame)
    if cv2.waitKey(1) & 0xFF ==ord('s'):
        break

cap.release()
cv2.destroyAllWindows()



Comprendo todo menos la linea donde esta el if exactamente ese & 0xFF no se que es y me gustaria que me iluminaran.
Gracias de ante mano.


Aun tengo que ponerme en Python y que me corrijan si me equivoco, pero 0x indica que es una notacion hexadecimal y ff es 255 en decimal o 11111111 en binario.

Saludos.

Febrero 09, 2017, 10:19:13 AM #2 Ultima modificación: Febrero 09, 2017, 10:32:36 AM por grep
Código: python

    if cv2.waitKey(1) & 0xFF ==ord('s'):
        break


Se asegura que se dejará de mostrar los frames capturados (se saldrá del while infinito) al presionar la tecla s minúscula.

waitKey(1) mostrará la imagen del frame por, al menos, 1ms. En este momento en que se muestra la imagen, waitKey puede cerrar la ventana de forma automática después de pasado 1ms o cuando el usuario presione una tecla. Si la ventana se cierra de forma automática waitKey retorna -1, pero si el usuario ha presionado una tecla , entonces waitKey cierra la ventana y retorna el código de la tecla presionada.

cv2.waitKey(1) & 0xFF trunca el valor numérico devuelto por waitKey (retorna los 8 bits menos significativos) si este no puede ser representable en 8-bit. Si el valor devuelto por waitKey es representable en 8-bit, entonces esta operación devuelve el mismo valor.

ord('s') retorna 115, el código ASCII en decimal de la letra s minúscula, un valor representable en 8-bit como todo código de la tabla ASCII.

Fuente:
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Saludos