Last active
March 22, 2018 05:18
-
-
Save parzibyte/70f1a25155fce0e8559055f373de88db to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
""" | |
Tomar foto con Python y opencv para después mandarla | |
a un servidor PHP | |
@date 20-03-2018 | |
@author parzibyte | |
@see https://www.parzibyte.me/blog | |
""" | |
import cv2 | |
import base64 #Para codificar | |
#Para hablar HTTP | |
from urllib.parse import urlencode | |
from urllib.request import Request, urlopen | |
""" | |
En este caso, 0 quiere decir que queremos acceder | |
a la cámara 0. Si hay más cámaras, puedes ir probando | |
con 1, 2, 3... | |
""" | |
cap = cv2.VideoCapture(0) | |
leido, frame = cap.read() | |
if leido == True: | |
codificado_correctamente, buffer = cv2.imencode('.png', frame) | |
if codificado_correctamente: | |
#Nota: .decode sirve para quitar b' al inicio de la cadena | |
imagen_en_base64 = base64.b64encode(buffer).decode('utf-8') | |
url = 'http://localhost/fotos_python/foto.php' # Si cambias el servidor o ruta del archivo, cambia la url aquí | |
datos_enviar = {'foto': imagen_en_base64} | |
print("Enviando foto...") | |
peticion = Request(url, urlencode(datos_enviar).encode()) | |
respuesta = urlopen(peticion).read().decode() | |
print("Guardada con éxito") | |
else: | |
print("Error al acceder a la cámara") | |
""" | |
Finalmente liberamos o soltamos la cámara | |
""" | |
cap.release() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment