Tutorial Raspberry Pi - Uso de PiCamera con Python

Tutorial Raspberry Pi - Uso de PiCamera con Python
picamera

¡Hola! Bueno como habrán leído hay muchas formas de usar nuestra Pi Camera con Python, sin embargo, siempre era con subprocesos, ejecutando un programa distinto a Python dentro de este. Hasta que hace pocos días salio la noticia en Raspberrypi.org de una librería para controlar nuestra Pi Camera, nativa de Python. Con esta librería podemos controlar desde un preview hasta el control del led que incluye la Pi Camera. Todo esto gracias a  Dave Hughes.Instalemos Para instalar como todo programa es recomendable casi necesario actualizar nuestra Raspberry Pi, para que pueda encontrar la librería en los repositorios, usamos los típicos comandos para la terminal; sudo apt-get update sudo apt-get upgrade y para descargar e instalar la librería basta con ejecutar esto en el Terminal. sudo apt-get install python-picameraVista previa Esta opción nos permite visualizar en tiempo real la imagen dela cámara, ademas de poder ajustar los parámetros como brillo y ver los resultados inmediatamente en la vista previa. Crearemos un ejemplo que nos permita ver la vista previa. #!/usr/bin/python import time import picamera with picamera.PiCamera() as picam: picam.start_preview() time.sleep(10) picam.stop_preview() picam.close() Lo guardamos y lo ejecutamos como cualquier otro programa de python mediante consola. Tomar una Foto Tomar una foto con esta librería basta con una función, como lo muestra el siguiente ejemplo: #!/usr/bin/python import time import picamera with picamera.PiCamera() as picam: picam.start_preview() time.sleep(5) picam.capture('nombre.jpg') picam.stop_preview() picam.close() En el ejemplo fue guardada una captura con el formato 'jpg' pero de la misma forma podemos guardar la captura en 'png', 'gif', 'bmp', 'yuv', 'rgb' y 'raw'. Lo que es bastante cómodo para poder guardar directamente al formato que ocupemos. Filmar un Vídeo Al igual que el anterior ejemplo basta con una función, en el siguiente ejemplo mostraremos con preview y gravaremos un vídeo al mismo tiempo de 20 segundos. #!/usr/bin/python import time import picamera with picamera.PiCamera() as picam: picam.start_preview() picam.start_recording('video.h264') picam.wait_recording(20) picam.stop_recording() picam.stop_preview() picam.close() Por el momento solo he podido grabar en formato H264,  es importante  agregar el wait_recording() ya que aparte de servir como el time.sleep(), hace un reconocimiento al mismo tiempo que va gravando y si por ejemplo ya no hay espacio en disco para la grabación. Resolución Como notaron al tomar la foto es de mayor resolución que el vídeo incluso que la vista previa. "En concreto, el sensor de la cámara tiene una resolución de 2592x1944 píxeles (aproximadamente 5 mega píxeles en el área), pero sólo los 1920x1080 píxeles en el centro del sensor se utilizan para las previsualizaciones o video" Dave Hughes.

sensor_area

Por esta razón y muchas mas, la librería cuanta con una opción para seleccionar la resolución que queramos como en el siguiente ejemplo. #!/usr/bin/python import time import picamera with picamera.PiCamera() as picam: picam.resolution = (2592, 1944) picam.start_preview() time.sleep(3) picam.capture('foto.jpg') picam.stop_preview() picam.close() También debido a que entre mas resolución la imagen es mas pesada, así que también nos brindan un modo de reescalar la imagen, es decir que abarque todo lo que la cámara ve pero que se guarde en una resolución menor . #!/usr/bin/python import time import picamera with picamera.PiCamera() as picam: picam.resolution = (2592, 1944) picam.start_preview() time.sleep(3) picam.capture('foto.jpg',resize=(1024,768)) picam.stop_preview() picam.close() Led Aveces queremos tomar fotos y que nadie se de cuenta por desgracia la cámara tiene un led que se enciende al usarla, ahora gracias a esta librería podemos desactivar este molesto led. #!/usr/bin/python import time import picamera with picamera.PiCamera() as picam: picam.led= False picam.start_preview() time.sleep(3) picam.stop_preview() picam.close() Nota: Para poder ejecutar en caso de ajustar el led, tendremos que ejecutar como root, o bien con sudo python programa.py ISO Para aquellos que sepan un poco mas de fotografía les agradara saber que se puede ajustar el ISO, para poder sacar mejores fotografías y es muy sencillo, solo tenemos que llamar a la función ISO e igualarla a un valor, que pueden ser alguno de estos; 100, 200, 320, 400, 500, 640, 800. #!/usr/bin/python import time import picamera with picamera.PiCamera() as picam: picam.start_preview() picam.ISO =500 time.sleep(3) picam.capture('foto.jpg',resize=(1024,768)) picam.stop_preview() picam.close()Velocidad de Obturación Otra característica que me gusto mucho es que puedes controlar la velocidad de obturación, lo que te permite sacar fotografías a un mas profesionales. Los valores de dan en micro segundos. #!/usr/bin/python import time import picamera with picamera.PiCamera() as picam: picam.start_preview() picam.ISO =100 time.sleep(3) picam.shutter_speed= 300000 picam.capture('foto.jpg',resize=(1024,768)) picam.stop_preview() picam.close()Brillo Ademas de todas las anteriores igual se puede ajustar el brillo basta con asignar un valor del 0 al 100 . #!/usr/bin/python import time import picamera with picamera.PiCamera() as picam: picam.start_preview() picam.brightness= 60 picam.ISO =100 time.sleep(3) picam.shutter_speed= 300000 picam.capture('foto.jpg',resize=(1024,768)) picam.stop_preview() picam.close()Efectos de imagen Como toda buena cámara, la Picam cuenta con efectos de cámara, ahora mismos solo he probado 'negative' , 'solarize' y 'gpen'#!/usr/bin/python import time import picamera with picamera.PiCamera() as picam: picam.led = False picam.start_preview() picam.image_effect = 'negative' time.sleep(20) picam.stop_preview() picam.close()Nota:  Los parámetros como brillo, ISO, contraste, efectos de imagen , saturación y nitidez se pueden ajustar cuando la vista previa esta activada. Se pueden ajustar infinidad de cosas mas, como saturacion, nitidez, rotar imagen, hacer streaming, time lapse, ráfagas de fotos muy rápidas. Los invito a que ustedes mismos experimenten con toda esta librería, encontraran toda la documentación en PICAMERA . Este es un TimeLapse que hice cuando estaba probando la librería, espero y les guste. Gracias por su tiempo, les mando un saludo y suerte en sus proyectos...

portada