Ahora que tenemos el sistema Python y las librerías de imágenes instaladas, vamos a probar tomando una foto. La tarea tampoco sale a la primera. Buscamos varias páginas con ejemplos pero varios no funcionan. Hasta que encontramos un programa que toma una foto y graba el fichero:
import cv2
# Camera 0 is the integrated web cam on my netbook
camera_port = 0
#Number of frames to throw away while the camera adjusts to light levels
ramp_frames = 30
# Now we can initialize the camera capture object with the cv2.VideoCapture class.
# All it needs is the index to a camera port.
camera = cv2.VideoCapture(camera_port)
# Captures a single image from the camera and returns it in PIL format
def get_image():
# read is the easiest way to get a full image out of a VideoCapture object.
retval, im = camera.read()
return im
# Ramp the camera – these frames will be discarded and are only used to allow v4l2
# to adjust light levels, if necessary
for i in xrange(ramp_frames):
temp = get_image()
print(«Taking image…»)
# Take the actual image we want to keep
camera_capture = get_image()
file = «test_image.png»
# A nice feature of the imwrite method is that it will automatically choose the
# correct format based on the file extension you provide. Convenient!
cv2.imwrite(file, camera_capture)
# You’ll want to release the camera, otherwise you won’t be able to create a new
# capture object until your script exits
del(camera)
Guardamos el programa como fichero y lo probamos, tomando nuestra primera foto. Como pensamos usar otra cámara web conectada al ordenador, la variación es sencilla: basta cambiar el puerto en el programa y poner camera_port=1.
Deja una respuesta