DeBayerフィルタ

DeBayerフィルタはロー画像データをRGB画像に変換します。Rawカラー画像においては、3つの色情報を持つRGB画像とは違ってそれぞれのピクセルは一色の値しか持っていません。そこでこのフィルタが他の2つの色を補間することで実際の色を再現します。

DeBayerフィルタを使う

DeBayerフィルタは以下のコードを使用することでロードできます。

[VB.NET]
Dim DeBayerFilter As FrameFilter
DeBayerFilter = IcImagingControl1.FrameFilterCreate("DeBayer", "")

If DeBayerFilter Is Nothing Then
     MsgBox("Failed to create DeBayerFilter")
Else
     IcImagingControl1.DeviceFrameFilters.Add(DeBayerFilter)
End If
[C#]
FrameFilter DeBayerFilter;
DeBayerFilter = ICImagingControl1.FrameFilterCreate("DeBayer", "");

if ( DeBayerFilter == null )
       MessageBox.Show("Failed to create DeBayerFilter");
else
     ICImagingControl1.DeviceFrameFilters.Add(DeBayerFilter);

パラメータ

DeBayer処理を制御するパラメータが2つあります。

Start Pattern

Start PatternはRaw画像データにどのBayer配列をあてはめるかを定義します。
利用可能なスタートパターンは以下の通り

  • BG: 青/緑 ラインから始めるパターン。Start Patternを 0 にセットします
  • GB: 緑/青 ラインから始めるパターン。Start Patternを 1 にセットします
  • GR: 緑/赤 ラインから始めるパターン。Start Patternを 2 にセットします
  • RG: 青/緑 ラインから始めるパターン。Start Patternを 3 にセットします
Mode

ModeはDeBayer処理を行うアルゴリズムの選択をします。
利用可能なアルゴリズムは以下の通り

  • Nearest Color: シンプルで処理の速いアルゴリズムですが出力される画質はあまり良くはありません。Mode0にセットします
  • Bilinear: 処理が速く画質も良いアルゴリズムです。Mode1にセットします
  • Edge Sensing: 出力される画質は最高の物ですが処理は多少遅くなります。Mode2にセットします

プログラムで設定する場合は以下のコードで可能となります。

[VB.NET]
' 現在のモードの呼び出し
Dim mode As Integer
mode = DeBayerFilter.GetIntParameter("Mode")

' モードの変更
mode = 1
DeBayerFilter.SetIntParameter("Mode", mode)
[C#]
// 現在のモードの呼び出し
int mode = DeBayerFilter.GetIntParameter("Mode");

// モードの変更
mode = 1;
DeBayerFilter.SetIntParameter("Mode", mode);

プロパティダイアログ

組み込みのプロパティダイアログを使って全てのパラメータにアクセスが可能です。フィルタのプロパティダイアログは以下のようになります。