Descripción general
La stellarHD expone dos formatos de video a través de su interfaz estándar UVC (USB Video Class):- MJPEG — fotogramas comprimidos con JPEG. Ideal para frecuencias de imagen altas (hasta 60 FPS) y visualización en vivo.
- YUYV — video en bruto 4:2:2 sin comprimir. Ideal cuando necesitas los datos de píxel originales y sin procesar (visión artificial, fotogrametría, imagen científica).
Y) contiene datos de imagen reales.
YUYV no está comprimido, por lo que consume mucho más ancho de banda USB que MJPEG. Por lo tanto, el modo raw está limitado a frecuencias de imagen más bajas en resoluciones altas. Consulta las especificaciones técnicas de stellarHD para conocer las combinaciones de resolución/frecuencia de imagen compatibles.
Requisitos
Estos comandos requieren una computadora con Linux yv4l-utils, GStreamer y FFmpeg instalados:
YUYV frente a MJPEG
| YUYV (sin comprimir) | MJPEG | |
|---|---|---|
| Compresión | Ninguna (4:2:2 sin comprimir) | Comprimido con JPEG |
| Caso de uso | Datos de píxel en bruto, análisis | Alta frecuencia de imagen, vista previa en vivo |
| Frecuencia de imagen | Menor en alta resolución | Hasta 60 FPS |
| Tamaño de archivo | ancho × alto × 2 bytes por fotograma | Variable (pequeño) |
| Visible directamente | No (bytes en bruto) | Sí (cada fotograma es un JPEG) |
YUYV se escribe como YUY2.
Paso 1 — Identifica el nodo del dispositivo
Cuando conectas una stellarHD, el kernel crea varios nodos de dispositivo V4L2. Tanto YUYV como MJPEG se exponen en el primer nodo del grupo./dev/video4 es el nodo a usar. Sustituye tu propio nodo en los comandos siguientes.
Paso 2 — Captura un solo fotograma RAW
Usav4l2-ctl para capturar un fotograma YUYV sin comprimir a resolución completa:
frame_1600x1200.yuyv.
Verifica el tamaño del fotograma
Un fotograma en bruto completo debería tener exactamenteancho × alto × 2 bytes:
Paso 3 — Convierte el fotograma RAW a PNG
Los bytes YUYV en bruto no son visibles directamente. Usa FFmpeg para convertir el fotograma en un PNG para su inspección:Modelos stellarHD monocromáticos
Debido a una peculiaridad de UVC, la stellarHD monocromática anuncia su salida comoYUYV 4:2:2 aunque el sensor no tiene información de color.
- Solo el canal
Y(luminancia) contiene la imagen real. - Los canales
UyV(croma) son valores ficticios/fijos y pueden ignorarse.
Verifica que la cámara sea realmente monocromática
Reproduce el archivo raw directamente conffplay. Si la imagen aparece en escala de grises de forma natural, los canales de croma son constantes:
Pipelines de GStreamer
Ver el flujo raw en vivo
Guardar un fotograma raw en disco
Vista previa más rápida con MJPEG
Como YUYV está limitado a frecuencias de imagen bajas en alta resolución, usa MJPEG cuando solo necesites una vista previa fluida en tiempo real:Extraer la luminancia en OpenCV / Python
Si procesas fotogramas raw en etapas posteriores y tu sensor es monocromático, extrae el canal de luminancia en lugar de tratar el fotograma como color.
Guía de OpenCV
Consulta nuestra guía completa sobre el uso de la stellarHD con OpenCV.
Solución de problemas
El archivo de salida tiene un tamaño incorrecto
Un fotograma raw completo tiene exactamenteancho × alto × 2 bytes. Un archivo más pequeño suele significar que la captura se interrumpió o que la resolución solicitada no es compatible en modo YUYV — comprueba v4l2-ctl -d /dev/video4 --list-formats-ext.
La imagen convertida está torcida o distorsionada
El-pixel_format y -video_size pasados a FFmpeg deben coincidir exactamente con la captura. El video raw no tiene cabecera, así que cualquier discrepancia corrompe el diseño.
La imagen se ve tintada en una cámara monocromática
Los canales de croma no contienen datos reales en un sensor monocromático. Vuelve a convertir con-vf format=gray (FFmpeg) o extrae el canal Y (OpenCV) como se muestra arriba.