Select Language

Buscar este blog

miércoles, 27 de mayo de 2020

TUTORIALES RASPERRY PI: CÁMARA PI






Introducción



    Uno de los módulos más interesante para desarrollar diversos proyectos en nuestra Raspberry Pi es el módulo de cámara.

    Con promedio de costo de u$s20.- en Amazon, podremos tener un módulo de cámara V2 con una resolución imagen de 8 megapixeles  (Sensor Sony IMX219 8-megapixel) y una resolución de vídeo de 080p30, 720p60, 640X480p90.

    Presentaremos de manera sencilla los aspectos más básicos y los más útiles; cómo conectar el módulo de cámara nuestra Raspberry Pi, tomar fotos, grabar videos y aplicar algunso efectos de imagen.




Módulo y puerto de cámara Raspberry Pi





Hay dos versiones del módulo de cámara:


      La versión estándar , diseñada para tomar fotografías con luz normal.
    La versión NoIR ,tiene un filtro infrarrojo, por lo que puede usarlo junto con una fuente de luz infrarroja para tomar fotos en la oscuridad.




Instalación del módulo de cámara




    Asegúrese de que su Raspberry Pi esté apagada.




    Conecte el módulo de la cámara

  1. Localice el puerto del módulo de cámara.
  2. Tire suavemente hacia arriba de los bordes del clip de plástico del puerto.
  3. Inserte el cable plano del módulo de cámara; asegúrese de que el cable esté en la dirección correcta.
  4. Empuje el clip de plástico en su lugar.





    Enciende tu Raspberry Pi.




    Vaya al menú principal y abra la herramienta de configuración Raspberry Pi .





    Seleccione la pestaña Interfaces y asegúrese de que la cámara esté habilitada




    Reinicia tu Raspberry Pi.




Cómo controlar el módulo de la cámara a través de la línea de comando



    Ahora su módulo de cámara está conectado y el software está habilitado, pruebe las herramientas de línea de comandos raspistilly raspivid.

  • Abra una ventana de terminal haciendo clic en el icono del monitor negro en la barra de tareas:



    Escriba el siguiente comando para tomar una fotografía y guardarla en el escritorio:


raspistill -o Desktop/image.jpg


  • Presione Enter para ejecutar el comando.



    Cuando se ejecuta el comando, puede ver la vista previa de la cámara abierta durante cinco segundos antes de tomar una fotografía.


  • Busque el icono del archivo de imagen en el escritorio y haga doble clic en el icono del archivo para abrir la imagen.



    Al agregar diferentes opciones, puede establecer el tamaño y el aspecto de la imagen que raspistilltoma el comando.


  • Por ejemplo, agregue -hy -w para cambiar el alto y el ancho de la imagen:

raspistill -o Desktop/image-small.jpg -w 640 -h 480




    Ahora grabe un video con el Módulo de cámara utilizando el siguiente raspivid comando:


    Para reproducir el archivo de video, haga doble clic en el video.h264 icono del archivo en el escritorio para abrirlo en VLC Media Player.





Cómo controlar el módulo de cámara con código Python




    La picamera biblioteca Python le permite controlar su módulo de cámara y crear proyectos increíbles.


  • Abra un editor de Python 3, como Thonny Python IDE :


  • Abra un nuevo archivo y guárdelo como camera.py.
  • Nota: es importante que nunca guarde el archivo como picamera.py .
  • Ingrese el siguiente código:

from picamera import PiCamera
from time import sleep


camera = PiCamera()


camera.start_preview()
sleep(5)
camera.stop_preview()



    Guarda y ejecuta tu programa. La vista previa de la cámara debe mostrarse durante cinco segundos y luego cerrarse nuevamente.


  • Nota: la vista previa de la cámara solo funciona cuando hay un monitor conectado a su Raspberry Pi. Si está utilizando acceso remoto (como SSH o VNC), no verá la vista previa de la cámara.
  • Si su vista previa está al revés, puede rotarla 180 grados con el siguiente código:

camera = PiCamera()
camera.rotation = 180



  • Puede girar la imagen 90, 180o 270 grados. Para restablecer la imagen, configure rotation en 0 grados.

    Es mejor hacer que la vista previa sea ligeramente transparente para que pueda ver si se producen errores en su programa mientras la vista previa está activada.


    Haga que la vista previa de la cámara sea transparente estableciendo un alpha nivel:


camera.start_preview(alpha=200)



    El alpha valor puede ser cualquier número entre 0 y 255.





Toma fotos fijas con código Python



    Ahora use el Módulo de cámara y Python para tomar algunas imágenes fijas.


  • Modifique su código para agregar una camera.capture() línea:

camera.start_preview()
sleep(5)
camera.capture('/home/pi/Desktop/image.jpg')
camera.stop_preview()


  • Nota: es importante sleepdurante al menos dos segundos antes de capturar una imagen, ya que esto le da tiempo al sensor de la cámara para detectar los niveles de luz.
  • Ejecuta el código.

    Debería ver la vista previa de la cámara abierta durante cinco segundos, y luego se debería capturar una imagen fija. A medida que se toma la imagen, puede ver que la vista previa se ajusta brevemente a una resolución diferente.


Su nueva imagen debe guardarse en el escritorio.


  • Ahora agregue un bucle para tomar cinco fotos seguidas:

camera.start_preview()
for i in range(5):
sleep(5)
camera.capture('/home/pi/Desktop/image%s.jpg' % i)
camera.stop_preview()


  • La variable icuenta cuántas veces se ha ejecutado el ciclo, desde 0 hasta 4. Por lo tanto, las imágenes se guardan como image0.jpg, image1.jpg y así sucesivamente.
  • Vuelva a ejecutar el código y mantenga el módulo de la cámara en su posición.

La cámara debe tomar una foto cada cinco segundos. Una vez que se toma la quinta imagen, se cierra la vista previa.


  • Mire su escritorio para encontrar las cinco nuevas imágenes.



Grabar video con código Python


¡Ahora graba un video!


  • Modifique su código para eliminar capture() y, en su lugar, agregue start_recording() y stop_recording() .Su código debería verse así ahora:

camera.start_preview()
camera.start_recording('/home/pi/Desktop/video.h264')
sleep(5)
camera.stop_recording()
camera.stop_preview()


  • Ejecuta el código.

    Su Raspberry Pi debe abrir una vista previa, grabar 5 segundos de video y luego cerrar la vista previa.



Cómo cambiar la configuración de la imagen y agregar efectos de imagen



    El picamera software Python proporciona una serie de efectos y configuraciones para cambiar el aspecto de sus imágenes.



    Nota: algunas configuraciones solo afectan a la vista previa y no a la imagen capturada, algunas afectan solo a la imagen capturada y muchas otras afectan a ambas.



Establecer la resolución de la imagen



    Puede cambiar la resolution imagen que toma el módulo de cámara.


    Por defecto, la resolución de la imagen está configurada para la resolución de su monitor. La resolución máxima es 2592 × 1944 para fotos fijas y 1920 × 1080 para grabación de video.


  • Use el siguiente código para establecer el resolution máximo y tomar una foto. Nota: también debe establecer la velocidad de fotogramas 15 para habilitar esta resolución máxima.

camera.resolution = (2592, 1944)
camera.framerate = 15
camera.start_preview()
sleep(5)
camera.capture('/home/pi/Desktop/max.jpg')
camera.stop_preview()



    La resolución mínima es 64 × 64.


  • Intenta tomar una foto con la resolución mínima.


Agrega texto a tu imagen



    Puede agregar texto a su imagen usando el comando annotate_text.


  • Ejecute este código para probarlo:

camera.start_preview()
camera.annotate_text = "Hello world!"
sleep(5)
camera.capture('/home/pi/Desktop/text.jpg')
camera.stop_preview()



Cambiar el aspecto del texto agregado


  • Establezca el tamaño del texto con el siguiente código:
camera.annotate_text_size = 50


  • Puede ajustar el tamaño del texto para cualquier cosa entre 6 a 160. El tamaño predeterminado es 32.
    También es posible cambiar el color del texto.


  • En primer lugar, agregue Color a su importlínea en la parte superior del programa:

from picamera import PiCamera, Color



Luego, debajo de la importlínea, modifique el resto de su código para que se vea así:


camera.start_preview()
camera.annotate_background = Color('blue')
camera.annotate_foreground = Color('yellow')
camera.annotate_text = " Hello world "
sleep(5)
camera.stop_preview()



Cambiar el brillo de la vista previa



    Puede cambiar el brillo de la vista previa. El brillo predeterminado es 50, y puede establecerlo en cualquier valor entre 0 y 100.


Ejecute el siguiente código para probar esto:


camera.start_preview()
camera.brightness = 70
sleep(5)
camera.capture('/home/pi/Desktop/bright.jpg')
camera.stop_preview()



El siguiente bucle ajusta el brillo y también agrega texto para mostrar el nivel de brillo actual:


camera.start_preview()
for i in range(100):
camera.annotate_text = "Brightness: %s" % i
camera.brightness = i
sleep(0.1)
camera.stop_preview()




Cambiar el contraste de la vista previa


    De manera similar al brillo de la vista previa, puede cambiar el contraste de la vista previa.


  • Ejecute el siguiente código para probar esto:

camera.start_preview()
for i in range(100):
camera.annotate_text = "Contrast: %s" % i
camera.contrast = i
sleep(0.1)
camera.stop_preview()




Agrega efectos de imagen geniales



    Puede usar camera.image_effect para aplicar un efecto de imagen particular.



Las opciones de efecto de imagen son:


  • none
  • negative
  • solarize
  • sketch
  • denoise
  • emboss
  • oilpaint
  • hatch
  • gpen
  • pastel
  • watercolor
  • film
  • blur
  • saturation
  • colorswap
  • washedout
  • posterise
  • colorpoint
  • colorbalance
  • cartoon
  • deinterlace1
  • deinterlace2

El efecto predeterminado es none.


  • Elija un efecto de imagen y pruébelo:

camera.start_preview()
camera.image_effect = 'colorswap'
sleep(5)
camera.capture('/home/pi/Desktop/colorswap.jpg')
camera.stop_preview()



Ejecute este código para recorrer todos los efectos de imagen con camera.IMAGE_EFFECTS:


camera.start_preview()
for effect in camera.IMAGE_EFFECTS:
camera.image_effect = effect
camera.annotate_text = "Effect: %s" % effect
sleep(5)
camera.stop_preview()




Establecer el modo de exposición de imagen



Puede usar camera.exposure_mode para establecer la exposición a un modo particular.


Las opciones del modo de exposición son:


  • off
  • auto
  • night
  • nightpreview
  • backlight
  • spotlight
  • sports
  • snow
  • beach
  • verylong
  • fixedfps
  • antishake
  • fireworks


    El modo predeterminado es auto.


  • Elija un modo de exposición y pruébelo:

camera.start_preview()
camera.exposure_mode = 'beach'
sleep(5)
camera.capture('/home/pi/Desktop/beach.jpg')
camera.stop_preview()



  • Puede recorrer todos los modos de exposición con camera.EXPOSURE_MODES, como lo hizo para los efectos de imagen.




Cambiar el balance de blancos de la imagen



    Puede usar camera.awb_mode para establecer el balance de blancos automático en un modo preestablecido.


Los modos de balance de blancos automático disponibles son:


  • off
  • auto
  • sunlight
  • cloudy
  • shade
  • tungsten
  • fluorescent
  • incandescent
  • flash
  • horizon



    El valor por defecto es auto.


  • Elija un modo de balance de blancos automático y pruébelo:

camera.start_preview()
camera.awb_mode = 'sunlight'
sleep(5)
camera.capture('/home/pi/Desktop/sunlight.jpg')
camera.stop_preview()



    Puede recorrer todos los modos de balance de blancos automático con camera.AWB_MODES, como lo hizo para los efectos de imagen.





No hay comentarios.:

Publicar un comentario