banner

Blog

Jun 12, 2023

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

Utilice la biblioteca Picamera2 para controlarlo.

El 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 3 de Raspberry Pi, dijimos que nos encanta el enfoque automático rápido y las imágenes HDR y queremos compartir estas funciones con usted en este procedimiento.

Si nunca antes ha usado una cámara Raspberry Pi, nuestra guía para principiantes de Picamera2 es una excelente guía para que su Pi tome excelentes fotografías. En este instructivo, exploraremos las muchas formas en que podemos usar el sistema de enfoque del Módulo de cámara 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, el Módulo de cámara 3 también se puede controlar usando libcamera a través de la terminal.

El enfoque automático tiene tres modos en los que funciona.

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 bloqueará. 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 sujetar 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 podemos configurar la cámara para que se adapte a nuestros requisitos.

4.Crear un objeto, picam2que 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 marco 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 obtener esa gran toma. Después de todo, no queremos capturar un desorden borroso. Fijar el enfoque es relativamente sencillo; de hecho es tan fácil que podemos reutilizar la mayor parte del código del ejemplo anterior.

1.Usar Guardar comoen el ejemplo anterior to cree un nuevo archivo llamado ManualFocusTest.py

2.Cambia 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 se ven borrosos.

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

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

Ya sea una cámara para pájaros, un día de deportes escolares o seguridad en el hogar, a veces necesitamos obtener una serie de imágenes nítidas. Afortunadamente, podemos configurar el Módulo de cámara 3 para tomar 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 podemos configurar la cámara para que se adapte a nuestros requisitos.

4.Crear un objeto, picam2que 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.

10Guarde 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 toman tres disparos, la ventana de vista previa se cerrará.

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 obtenemos 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. Estas imágenes se combinan luego en una sola imagen que abarca toda la gama. 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 de laAfFastFocus.py proyecto, para capturar una serie de imágenes HDR. También usaremos la biblioteca del sistema operativo de Python para ejecutar un comando de terminal que activará y desactivará la configuración HDR sin interacción del usuario. Esto significa que no olvidaremos activar y desactivar la configuración de HDR.

1.Cree un nuevo archivo llamado HDRAfFastFocus.py

2.Importar Picamera2.

3.Importe la clase de controles de libcamera.Con esto podemos 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, picam2que usaremos como enlace entre el código y nuestra cámara.

6.Use la función del sistema del módulo os para configurar la cámara para usar HDR. Picamera2 admite HDR, pero no directamente en el módulo. El problema es con V4L2, la interfaz del kernel entre la cámara y el sistema de video Linux. En este momento, no ofrece soporte listo para HDR con esta cámara, por lo que debemos ejecutar esta solución rápida para que esté disponible en Picamera2.

7.Imprime 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 Continuoyestablece AfSpeed ​​en Rápido.

10Configure 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. Nos da tres archivos en orden numérico. Duplicamos la demora 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 estaban un poco borrosas.

11Cierra la ventana de vista previa.

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

13Imprimir un mensaje para el usuarioque HDR ahora está desactivado y luego ejecute el comando usando os.system.

14Guarde 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 toman tres disparos, la ventana de vista previa se cerrará.

Únase a los expertos que leen Tom's Hardware para obtener información privilegiada sobre las noticias de tecnología de PC para entusiastas, y lo han hecho durante más de 25 años. 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 en 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 de profesores "Picademy".

Raspberry Pi potencia la cámara Polaroid digitalmente analógica

Raspberry Pi le da vida a Big Mouth Billy Bass con ChatGPT

Precios de GPU 2023: actualización de junio

Por Les Pounder 23 de abril de 2023

Por Avram Piltch Associated Press 22 de abril de 2023

Por Brandon Hill Associated Press 21 de abril de 2023

Por Avram Piltch Associated Press 20 de abril de 2023

Por Brandon Hill Associated Press 16 de abril de 2023

Por Les Pounder 15 de abril de 2023

Por Les Pounder 9 de abril de 2023

Por Les Pounder 25 de marzo de 2023

Por Jarred Walton 19 de marzo de 2023

Por Les Pounder 18 de marzo de 2023

Por Avram Piltch 15 de marzo 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, picam2 Iniciar 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. Use Guardar como o cree un nuevo archivo llamado ManualFocusTest.py Cambie la última línea para usar LensPosition Ejecute el código. Cambie el valor de LensPosition a 0,5. Guarde y ejecute el código. Cree un nuevo archivo llamado AfFastFocus.py Import Picamera2. Importe la clase de controles de libcamera. Crear un objeto, picam2 Iniciar 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.py Cree un nuevo archivo llamado HDRAfFastFocus.py Import Picamera2. Importe la clase de controles de libcamera. Importe el módulo OS Cree un objeto, picam2 Use la función del sistema del módulo os para configurar la cámara para usar HDR. Imprima un mensaje en Python Shell Inicie una ventana de vista previa. Configure el modo de enfoque automático en Continuo, configure AfSpeed ​​en Rápido Configure la cámara para capturar tres archivos, con un retraso de un segundo entre cada disparo. Cierra la ventana de vista previa. Cierre la conexión de la cámara. Imprima un mensaje para el usuario Guarde y ejecute el código.
COMPARTIR