概要
stellarHD は、標準の UVC(USB Video Class)インターフェイス上で 2 つのビデオフォーマットを公開します:- MJPEG — JPEG 圧縮フレーム。高フレームレート(最大 60 FPS)とライブ表示に最適。
- YUYV — 非圧縮 4:2:2 raw ビデオ。元の未処理のピクセルデータ(マシンビジョン、フォトグラメトリ、科学イメージング)が必要な場合に最適。
Y)チャンネルのみが実際の画像データを含む モノクロ stellarHD モデル に固有の詳細についても説明します。
YUYV は非圧縮であるため、MJPEG よりもはるかに多くの USB 帯域幅を消費します。その結果、raw モードは高解像度では低いフレームレートに制限されます。サポートされる解像度/フレームレートの組み合わせについては、stellarHD 技術仕様を参照してください。
必要環境
これらのコマンドには、v4l-utils、GStreamer、および FFmpeg がインストールされた Linux コンピューターが必要です:
YUYV と MJPEG の違いを理解する
GStreamer caps において、V4L2 フォーマットの
YUYV は YUY2 と記述されます。
ステップ 1 — デバイスノードの特定
stellarHD を接続すると、カーネルが複数の V4L2 デバイスノードを作成します。YUYV と MJPEG の両方は、グループの 最初の ノードで公開されます。/dev/video4 を使用するノードです。以下のコマンドでは、ご自身のノードに置き換えてください。
ステップ 2 — RAW フレームを 1 枚キャプチャする
v4l2-ctl を使用して、フル解像度で非圧縮 YUYV フレームを 1 つキャプチャします:
frame_1600x1200.yuyv に書き込みます。
フレームサイズを確認する
完全な raw フレームは正確にwidth × height × 2 バイトであるべきです:
ステップ 3 — RAW フレームを PNG に変換する
Raw YUYV バイトは直接表示できません。FFmpeg を使用してフレームを PNG に変換し、検査します:モノクロ stellarHD モデル
UVC の仕様上のクセにより、モノクロ stellarHD は、センサーに色情報がないにもかかわらず、出力をYUYV 4:2:2 として公開します。
Y(輝度) チャンネルのみが実際の画像を含みます。UおよびV(彩度) チャンネルはダミー/固定値であり、無視できます。
カメラが本当にモノクロであるかを確認する
ffplay で raw ファイルを直接再生します。画像が自然にグレースケールに見える場合、彩度チャンネルは一定です:
GStreamer パイプライン
ライブ raw ストリームを表示する
raw フレームを 1 枚ディスクに保存する
MJPEG でより高速なプレビュー
YUYV は高解像度では低いフレームレートに制限されるため、スムーズなリアルタイムプレビューが必要な場合は MJPEG を使用してください:OpenCV / Python での輝度抽出
raw フレームを下流で処理し、センサーがモノクロの場合、フレームをカラーとして扱うのではなく、輝度チャンネルを抽出します。
OpenCV ガイド
stellarHD を OpenCV で使用する完全なガイドをご覧ください。
トラブルシューティング
出力ファイルのサイズが間違っている
完全な raw フレームは正確にwidth × height × 2 バイトです。それより小さいファイルは通常、キャプチャが中断されたか、要求された解像度が YUYV モードでサポートされていないことを意味します — v4l2-ctl -d /dev/video4 --list-formats-ext を確認してください。
変換された画像が歪んでいたり乱れている
FFmpeg に渡される-pixel_format と -video_size は、キャプチャと正確に一致する必要があります。Raw ビデオにはヘッダーがないため、不一致があるとレイアウトが破損します。
モノクロカメラなのに画像に色がついて見える
モノクロセンサーでは彩度チャンネルに実データはありません。上記のように-vf format=gray(FFmpeg)で再変換するか、Y チャンネルを抽出してください(OpenCV)。