ColorImageFormat から得られる FrameDescription の値
FrameDescription からは、対象のフレーム(カラー・深度・赤外線など)の、高、幅、バイト長などを参照することができます。 深度や赤外線などと異なり、カラー画像の場合には、指定する ColorImageFormat によって FrameDescription の値が変動します。 そこで各 ColorImageFormat を指定して生成した FrameDescription が示す値について確認しました。 (どこかで一覧して確認することができた記憶がありますが)
指定した ColorImageFormat と FrameDescription から得られる値の対応表は次の通りです。 基本的には BytesPerPixel しか変化しませんね。変化してもらっては困るのですが。
Format | BytesPerPixel | LengthInPixels | Width | Height | FieldOfView |
---|---|---|---|---|---|
Rgba | 4 | 2073600 | 1920 | 1080 | 91.9 |
Yuv | 2 | 2073600 | 1920 | 1080 | 91.9 |
Bgra | 4 | 2073600 | 1920 | 1080 | 91.9 |
Bayer | 1 | 2073600 | 1920 | 1080 | 91.9 |
Yuy2 | 2 | 2073600 | 1920 | 1080 | 91.9 |
確認に利用したコードは次のようになっています。
ColorFrameSource colorFrameSource = kinect.ColorFrameSource;
foreach (ColorImageFormat format in Enum.GetValues(typeof(ColorImageFormat)))
{
if (format == ColorImageFormat.None)
{
continue;
}
description = colorFrameSource.CreateFrameDescription(format);
Console.WriteLine( "!| " + Enum.GetName(typeof(ColorImageFormat), format)
+ " |> " + description.BytesPerPixel
+ " |> " + description.LengthInPixels
+ " |> " + description.Width
+ " |> " + description.Height
+ " |> " + description.DiagonalFieldOfView);
}