bpi-cm5-usb-camera-capture.py

Banana Pi BPI-CM5: Amlogic A311D2 Compute Module with Raspberry Pi CM4 Compatibility · File : bpi-cm5-usb-camera-capture.py · Language : Python · Use case : Capturer une image depuis une caméra USB connectée au port USB 3.0 pour traitement visuel.

Python script using OpenCV to capture an image via a USB camera on the USB 3.0 port.

Connect a UVC-compatible USB camera to the BPI-CM5's USB 3.0 (5 Gbps) port. Install OpenCV with 'sudo apt install python3-opencv'. The Amlogic A311D2 SoC handles USB video streams well. The script checks for /dev/video0 before capturing. Resolution is set to 1080p by default but can be increased.

bpi-cm5-usb-camera-capture.py

#!/usr/bin/env python3
# BPI-CM5 USB Camera Capture Example
# Nécessite : sudo apt install python3-opencv
# Matériel : Caméra USB compatible UVC connectée au port USB 3.0

import cv2
import sys

def capture_image(device_index=0):
    # Ouverture de la caméra (0 est généralement le premier périphérique vidéo)
    cap = cv2.VideoCapture(device_index)
    
    if not cap.isOpened():
        print(f"Erreur : Impossible d'ouvrir la caméra {device_index}")
        sys.exit(1)
    
    # Configuration optionnelle de la résolution (4K supporté par le SoC)
    cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1920)
    cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 1080)
    
    print("Capture d'une image...")
    ret, frame = cap.read()
    
    if ret:
        filename = "capture_bpi_cm5.jpg"
        cv2.imwrite(filename, frame)
        print(f"Image sauvegardée sous : {filename}")
    else:
        print("Échec de la capture de l'image.")
    
    cap.release()

if __name__ == "__main__":
    # Vérifier la disponibilité du périphérique /dev/video0
    import os
    if not os.path.exists('/dev/video0'):
        print("Aucun périphérique vidéo détecté. Branchez une caméra USB.")
        sys.exit(1)
    capture_image(0)

← Back to the board