Visão geral
O stellarHD expõe dois formatos de vídeo pela sua interface UVC (USB Video Class) padrão:- MJPEG — quadros comprimidos em JPEG. Melhor para altas taxas de quadros (até 60 FPS) e visualização ao vivo.
- YUYV — vídeo bruto sem compressão em 4:2:2. Melhor quando você precisa dos dados de pixel originais, sem processamento (visão computacional, fotogrametria, imagem científica).
Y) contém dados reais de imagem.
YUYV é sem compressão, portanto consome muito mais largura de banda USB do que MJPEG. Como resultado, o modo bruto é limitado a taxas de quadros menores em resoluções mais altas. Consulte as especificações técnicas do stellarHD para conhecer as combinações suportadas de resolução/taxa de quadros.
Requisitos
Estes comandos requerem um computador Linux comv4l-utils, GStreamer e FFmpeg instalados:
Entendendo YUYV vs MJPEG
| YUYV (sem compressão) | MJPEG | |
|---|---|---|
| Compressão | Nenhuma (4:2:2 sem compressão) | Compressão JPEG |
| Caso de uso | Dados brutos de pixel, análise | Alta taxa de quadros, pré-visualização ao vivo |
| Taxa de quadros | Menor em alta resolução | Até 60 FPS |
| Tamanho do arquivo | largura × altura × 2 bytes por quadro | Variável (pequeno) |
| Visualizável diretamente | Não (bytes brutos) | Sim (cada quadro é um JPEG) |
YUYV é escrito como YUY2.
Passo 1 — Identifique o nó de dispositivo
Quando você conecta um stellarHD, o kernel cria vários nós de dispositivo V4L2. Tanto YUYV quanto MJPEG são expostos no primeiro nó do grupo./dev/video4 é o nó a ser usado. Substitua pelo seu próprio nó nos comandos abaixo.
Passo 2 — Capturar um único quadro RAW
Usev4l2-ctl para capturar um quadro YUYV sem compressão em resolução máxima:
frame_1600x1200.yuyv.
Verifique o tamanho do quadro
Um quadro raw completo deve ter exatamentelargura × altura × 2 bytes:
Passo 3 — Converter o quadro RAW para PNG
Bytes YUYV brutos não são diretamente visualizáveis. Use o FFmpeg para converter o quadro em um PNG para inspeção:Modelos monocromáticos do stellarHD
Por uma peculiaridade do UVC, o stellarHD monocromático anuncia sua saída comoYUYV 4:2:2, mesmo que o sensor não tenha informação de cor.
- Apenas o canal
Y(luminância) contém a imagem real. - Os canais
UeV(croma) são valores fictícios/fixos e podem ser ignorados.
Verifique se a câmera é realmente monocromática
Reproduza o arquivo raw diretamente comffplay. Se a imagem aparecer em tons de cinza naturalmente, os canais de croma são constantes:
Pipelines do GStreamer
Visualizar o stream raw ao vivo
Salvar um quadro raw em disco
Pré-visualização mais rápida com MJPEG
Como o YUYV é limitado a taxas de quadros baixas em alta resolução, use MJPEG quando você só precisar de uma pré-visualização suave em tempo real:Extraindo luminância em OpenCV / Python
Se você processa quadros raw a jusante e seu sensor é monocromático, extraia o canal de luminância em vez de tratar o quadro como colorido.
Guia OpenCV
Veja nosso guia completo sobre como usar o stellarHD com OpenCV.
Solução de problemas
O arquivo de saída está com o tamanho errado
Um quadro raw completo tem exatamentelargura × altura × 2 bytes. Um arquivo menor normalmente significa que a captura foi interrompida ou que a resolução solicitada não é suportada no modo YUYV — verifique v4l2-ctl -d /dev/video4 --list-formats-ext.
A imagem convertida está distorcida ou embaralhada
Os valores-pixel_format e -video_size passados ao FFmpeg devem corresponder exatamente à captura. Vídeo raw não tem cabeçalho, portanto qualquer divergência corrompe o layout.
A imagem parece tingida em uma câmera monocromática
Os canais de croma não carregam dados reais em um sensor monocromático. Reconverta com-vf format=gray (FFmpeg) ou extraia o canal Y (OpenCV) conforme mostrado acima.