Présentation
Le stellarHD expose deux formats vidéo via son interface UVC (USB Video Class) standard :- MJPEG — images compressées en JPEG. Idéal pour des fréquences d’images élevées (jusqu’à 60 FPS) et la visualisation en direct.
- YUYV — vidéo brute 4:2:2 non compressée. Idéal lorsque vous avez besoin des données de pixels originales et non traitées (vision industrielle, photogrammétrie, imagerie scientifique).
Y) contient de véritables données d’image.
YUYV est non compressé et consomme donc beaucoup plus de bande passante USB que MJPEG. Par conséquent, le mode brut est limité à des fréquences d’images plus faibles à des résolutions plus élevées. Consultez les spécifications techniques du stellarHD pour connaître les combinaisons de résolution/fréquence d’images prises en charge.
Prérequis
Ces commandes nécessitent un ordinateur Linux avecv4l-utils, GStreamer et FFmpeg installés :
Comprendre YUYV vs MJPEG
| YUYV (non compressé) | MJPEG | |
|---|---|---|
| Compression | Aucune (4:2:2 non compressé) | Compression JPEG |
| Cas d’usage | Données de pixels brutes, analyse | Fréquence d’images élevée, aperçu en direct |
| Fréquence d’images | Plus faible à haute résolution | Jusqu’à 60 FPS |
| Taille de fichier | largeur × hauteur × 2 octets par image | Variable (petite) |
| Visualisable directement | Non (octets bruts) | Oui (chaque image est un JPEG) |
YUYV s’écrit YUY2.
Étape 1 — Identifier le nœud de périphérique
Lorsque vous branchez un stellarHD, le noyau crée plusieurs nœuds de périphérique V4L2. YUYV et MJPEG sont tous deux exposés sur le premier nœud du groupe./dev/video4 est le nœud à utiliser. Remplacez par votre propre nœud dans les commandes ci-dessous.
Étape 2 — Capturer une seule image RAW
Utilisezv4l2-ctl pour capturer une image YUYV non compressée en pleine résolution :
frame_1600x1200.yuyv.
Vérifier la taille de l’image
Une image brute complète doit faire exactementlargeur × hauteur × 2 octets :
Étape 3 — Convertir l’image RAW en PNG
Les octets YUYV bruts ne sont pas directement visualisables. Utilisez FFmpeg pour convertir l’image en PNG à des fins d’inspection :Modèles stellarHD monochromes
En raison d’une particularité UVC, le stellarHD monochrome annonce sa sortie commeYUYV 4:2:2 même si le capteur n’a aucune information de couleur.
- Seul le canal
Y(luminance) contient la véritable image. - Les canaux
UetV(chrominance) contiennent des valeurs factices/fixes et peuvent être ignorés.
Vérifier que la caméra est réellement monochrome
Lisez directement le fichier brut avecffplay. Si l’image apparaît naturellement en niveaux de gris, les canaux de chrominance sont constants :
Pipelines GStreamer
Visualiser le flux brut en direct
Enregistrer une seule image brute sur disque
Aperçu plus rapide en MJPEG
Comme YUYV est limité à de faibles fréquences d’images à haute résolution, utilisez MJPEG lorsque vous n’avez besoin que d’un aperçu en temps réel fluide :Extraction de la luminance dans OpenCV / Python
Si vous traitez les images brutes en aval et que votre capteur est monochrome, extrayez le canal de luminance plutôt que de traiter l’image comme couleur.
Guide OpenCV
Consultez notre guide complet sur l’utilisation du stellarHD avec OpenCV.
Dépannage
Le fichier de sortie a une taille incorrecte
Une image brute complète fait exactementlargeur × hauteur × 2 octets. Un fichier plus petit signifie généralement que la capture a été interrompue ou que la résolution demandée n’est pas prise en charge en mode YUYV — vérifiez avec v4l2-ctl -d /dev/video4 --list-formats-ext.
L’image convertie est déformée ou illisible
Le-pixel_format et le -video_size transmis à FFmpeg doivent correspondre exactement à la capture. La vidéo brute n’a pas d’en-tête, donc toute discordance corrompt la mise en page.
L’image apparaît teintée sur une caméra monochrome
Les canaux de chrominance ne contiennent aucune donnée réelle sur un capteur monochrome. Reconvertissez avec-vf format=gray (FFmpeg) ou extrayez le canal Y (OpenCV) comme indiqué ci-dessus.