banner

Noticias

May 10, 2024

Cómo utilizar el módulo de cámara Raspberry Pi 3 con código Python

Utilice la biblioteca Picamera2 para controlarlo.

La Raspberry Pi tiene muchos de los mejores accesorios y uno que seguramente aparecerá en esa lista es el nuevo Módulo de cámara 3. En nuestra revisión del Módulo de cámara Raspberry Pi 3, dijimos que nos encantan el rápido enfoque automático y las imágenes HDR y queremos Comparta estas características con usted en este procedimiento.

Si nunca antes ha usado una cámara Raspberry Pi, nuestra guía para principiantes sobre Picamera2 es una excelente guía para que su Pi tome excelentes fotografías. En este tutorial, exploraremos las muchas formas en que podemos usar el sistema de enfoque del Camera Module 3 con Picamera2 y aprenderemos a tomar imágenes HDR con un script rápido y simple que automatiza el proceso. Si Python no es lo tuyo, entonces el Módulo de cámara 3 también se puede controlar usando libcamera a través del terminal.

El enfoque automático tiene tres modos de funcionamiento.

El enfoque continuo utiliza un algoritmo para buscar un objetivo en el flujo de imágenes. No importa si el objetivo está cerca (alrededor de 10 cm) o lejos, el algoritmo encontrará el objetivo y lo fijará. ¿Pero cómo lo usamos? Hagamos una prueba rápida. Usaremos un modo de enfoque continuo para buscar el mejor enfoque posible en nuestro objetivo. Sería útil tener un objeto que puedas acercar a la cámara, usamos un billete de un dólar.

1.Desde el menú principal abra Programación >> Thonny.

2.Importar Picamera2.

3.Importe la clase de controles de libcamera.Con esto podremos configurar la cámara para que se adapte a nuestros requisitos.

4.Crear un objeto, picam2el cual usaremos como enlace entre el código y nuestra cámara.

5.Inicie una ventana de vista previa.La vista previa es donde vemos la salida de la cámara.

6.Configure AfMode (modo de enfoque automático) para que sea continuo.

7.Guarde el código como AFtest.py.

8.Haga clic en Ejecutar para iniciar el código. Aparecerá una ventana de vista previa. Mueva un objeto, elegimos un billete de un dólar, alrededor del encuadre y observe cómo cambia el enfoque. Intente acercar el objeto a la lente, recuerde que el punto de enfoque más cercano está a 10 centímetros.

A veces, un enfoque fijo es lo que necesitamos para conseguir esa gran foto. Después de todo, no queremos capturar un desastre borroso. Fijar el foco es relativamente sencillo; de hecho, es tan fácil que podemos reutilizar la mayor parte del código del ejemplo anterior.

1.Utilice Guardar comoen el ejemplo anterior to crear un nuevo archivo llamado ManualFocusTest.py

2.Cambie la última línea para usar LensPosition, en este caso establezca el valor en 0,0 para un enfoque infinito.

3.Ejecute el código.Observe cómo el enfoque es nítido para los objetos lejanos, pero de cerca aparecen borrosos.

4.Cambie el valor de LensPosition a 0,5.Esto nos dará una distancia focal de aproximadamente 50 cm.

5.Guarde y ejecute el código. Mueve un objeto hacia y desde la cámara. Observe cómo el enfoque se vuelve nítido alrededor de los 50 cm.

Ya sea una cámara de aves, un día de deportes escolares o la seguridad del hogar, a veces necesitamos obtener una serie de imágenes nítidas. Afortunadamente, podemos configurar el Módulo de cámara 3 para que tome una serie de imágenes rápidas y configurar el enfoque automático a alta velocidad.

1.Cree un nuevo archivo llamado AfFastFocus.py

2.Importar Picamera2.

3.Importe la clase de controles de libcamera.Con esto podremos configurar la cámara para que se adapte a nuestros requisitos.

4.Crear un objeto, picam2el cual usaremos como enlace entre el código y nuestra cámara.

5.Inicie una ventana de vista previa.La vista previa es donde vemos la salida de la cámara.

6.Configure el modo de enfoque automático en Continuo y configure AfSpeed ​​en Rápido.

7.Configure la cámara para capturar tres archivos, con un retraso de medio segundo entre cada toma. El nombre de archivo "fastfocus.jpg" agregará 0, luego 1 y 2 a cada archivo. Dándonos tres archivos en orden numérico.

8.Cierra la ventana de vista previa.

9.Cierre la conexión de la cámara.

10.Guarde y ejecute el código. Sostenga un objeto a tres distancias diferentes de la cámara y observe cómo cambia el enfoque, la ventana de vista previa se congela cuando la cámara toma una foto y luego se libera para la siguiente toma. Una vez que se tomen tres fotografías, se cerrará la ventana de vista previa.

Las imágenes HDR (alto rango dinámico) se pueden capturar fácilmente con libcamera. Solo necesitamos pasar el argumento –hdr cuando ejecutamos el comando. Pero para Picamera2 necesitamos ejecutar un comando de terminal antes de ejecutar nuestro código Python.

HDR aumenta el rango de luminosidad dinámica de las imágenes. Con HDR conseguimos una oscuridad más profunda e imágenes más brillantes. Esto funciona capturando múltiples imágenes de la misma escena, cada una con diferentes exposiciones. Luego, estas imágenes se combinan en una sola imagen que abarca todo el rango. El módulo de cámara 3 puede capturar imágenes HDR, pero no con la resolución completa de 12 MP. En su lugar obtenemos una imagen de 3MP con una resolución de 2304 x 1296 píxeles.

Para nuestra prueba vamos a reutilizar el código delAfFastFocus.py proyecto, para capturar una serie de imágenes HDR. También usaremos la biblioteca del sistema operativo Python para ejecutar un comando de terminal que activará y desactivará la configuración HDR sin interacción del usuario. Esto significa que no nos olvidaremos de activar y desactivar la configuración HDR.

1.Cree un nuevo archivo llamado HDRAfFastFocus.py

2.Importar Picamera2.

3.Importe la clase de controles de libcamera.Con esto podremos configurar la cámara para que se adapte a nuestros requisitos.

4.Importar el módulo del sistema operativo . Esto permite que nuestro código interactúe con el sistema operativo subyacente, en este caso Raspberry Pi OS (Linux).

5.Crear un objeto, picam2el cual usaremos como enlace entre el código y nuestra cámara.

6.Utilice la función del sistema desde el módulo del sistema operativo para configurar la cámara para que utilice HDR. Picamera2 admite HDR, pero no directamente en el módulo. El problema está en V4L2, la interfaz del kernel entre la cámara y el sistema de vídeo Linux. En este momento, no ofrece soporte para HDR con esta cámara, por lo que tenemos que ejecutar esta solución rápida para que esté disponible en Picamera2.

7.Imprimir un mensaje en Python Shellinformándonos que HDR está activado.

8.Inicie una ventana de vista previa.La vista previa es donde vemos la salida de la cámara.

9.Establezca el modo de enfoque automático en Continuoyestablezca AfSpeed ​​en Rápido.

10.Configure la cámara para capturar tres archivos, con un retraso de un segundo entre cada toma. El nombre de archivo “HDRfastfocus.jpg agregará 0, luego 1 y 2 a cada archivo. Dándonos tres archivos en orden numérico. Duplicamos el retraso entre cada toma para darle tiempo a la cámara para guardar la imagen anterior y luego establecer el enfoque para la siguiente imagen. Lo probamos con un retraso de 0,5 y nuestras tomas a veces salían demasiado borrosas.

11.Cierra la ventana de vista previa.

12.Cierre la conexión de la cámara.

13.Imprimir un mensaje al usuario.ese HDR ahora está desactivado y luego ejecute el comando usando os.system.

14.Guarde y ejecute el código. Sostenga un objeto a tres distancias diferentes de la cámara y observe cómo cambia el enfoque, la ventana de vista previa se congela cuando la cámara toma una foto y luego se libera para la siguiente toma. Una vez que se tomen tres fotografías, se cerrará la ventana de vista previa.

Únase a los expertos que leen Tom's Hardware para obtener información privilegiada sobre las noticias entusiastas sobre tecnología de PC, y lo han hecho durante más de 25 años. Le enviaremos noticias de última hora y reseñas detalladas de CPU, GPU, IA, hardware de fabricante y más directamente a su bandeja de entrada.

Les Pounder es editor asociado de Tom's Hardware. Es un tecnólogo creativo y durante siete años ha creado proyectos para educar e inspirar mentes tanto jóvenes como mayores. Ha trabajado con la Fundación Raspberry Pi para escribir e impartir su programa de formación docente "Picademy".

Raspberry Pi 4 potencia la computadora de mano en una familia de proyectos impresos en 3D

Las mejores placas RP2040 2023

AMD soluciona fallas de trazado de rayos en Ratchet and Clank: Rift Apart

Por Sammy Ekaran 16 de julio de 2023

Por Sammy Ekaran 15 de julio de 2023

Por Les Pounder08 de julio de 2023

Por Matt Safford06 de julio de 2023

Por Ash Hill05 de julio de 2023

Por Les Pounder04 de julio de 2023

Por Ash Hill03 de julio de 2023

Por Ash Hill02 de julio de 2023

Por Ben Stockton01 de julio de 2023

Por Sydney Butler 30 de junio de 2023

Por Ben Stockton 28 de junio de 2023

Manual:Auto:Continuo:Desde el menú principal abra Programación >> Thonny.Importar Picamera2.Importe la clase de controles de libcamera.Crear un objeto, picam2Inicie una ventana de vista previa.Configure AfMode (modo de enfoque automático) para que sea continuo.Guarde el código como AFtest.py.Haga clic en Ejecutar para iniciar el código.Utilice Guardar comoo crear un nuevo archivo llamado ManualFocusTest.pyCambie la última línea para usar LensPositionEjecute el código.Cambie el valor de LensPosition a 0,5.Guarde y ejecute el código.Cree un nuevo archivo llamado AfFastFocus.pyImportar Picamera2.Importe la clase de controles de libcamera.Crear un objeto, picam2Inicie una ventana de vista previa.Configure el modo de enfoque automático en Continuo y configure AfSpeed ​​en Rápido.Configure la cámara para capturar tres archivos, con un retraso de medio segundo entre cada toma.Cierra la ventana de vista previa.Cierre la conexión de la cámara.Guarde y ejecute el código.AfFastFocus.pyCree un nuevo archivo llamado HDRAfFastFocus.pyImportar Picamera2.Importe la clase de controles de libcamera.Importar el módulo del sistema operativoCrear un objeto, picam2Utilice la función del sistema desde el módulo del sistema operativo para configurar la cámara para que utilice HDR.Imprimir un mensaje en Python ShellInicie una ventana de vista previa.Establezca el modo de enfoque automático en Continuoestablezca AfSpeed ​​en RápidoConfigure la cámara para capturar tres archivos, con un retraso de un segundo entre cada toma.Cierra la ventana de vista previa.Cierre la conexión de la cámara.Imprimir un mensaje al usuario.Guarde y ejecute el código.
COMPARTIR