イメージグラバー

Classes

ClassDescription
Public classCameraParam
カメラ初期化パラメータ
Public classGrabberEventArgs
ビデオ入力イベント引数クラス
Public classGrabberEventInfo
ビデオ入力イベント情報
Public classGrabberInfo
ビデオ入力デバイス情報
Public classGrabberThread
グラバースレッド (基本クラス)
Public classSharedData
共有データ

Interfaces

InterfaceDescription
Public interfaceIContinuousGrab
連続取り込みインターフェース
Public interfaceIGrabImageASync
画像取り込みインターフェース (非同期)
Public interfaceIGrabImageSync
画像取り込みインターフェース (同期)

Delegates

DelegateDescription
Public delegateGrabberEventHandler
ビデオ入力イベントのデリゲート

Enumerations

EnumerationDescription
Public enumerationCommunicationType
通信方法
Public enumerationSimulatorFileMode
シミュレータファイルモード
Public enumerationSimulatorOption
シミュレータオプション

Remarks

このネームスペースには、イメージグラバーをスレッドを介して操作するフレームワークを集約しています。 主に、画像処理アプリケーションにイメージグラバーを実装するコストの低減を目的としています。

目次:


スレッド

GrabberThread クラスがイメージグラバーを保有するスレッドです。
FVIL.Parser ネームスペースに集約されるフレームワークを使用する場合は、 下記 例1 のように ParserInfo から取得できます。 自身で直接生成する場合は、下記 例2 のように GrabberInfo を使用します。
具体的な使用例については 画像処理アプリケーションフレームワーク のサンプルコードをご参照ください。


例1) ParserInfo から取得する方法
C# Copy imageCopy
FVIL.Imaging.GrabberThread thread = ((FVIL.Parser.IAuxGrabber)ParserInfo).Threads[0];

例2) GrabberInfo から生成する方法
C# Copy imageCopy
FVIL.Imaging.GrabberInfo info = new FVIL.Imaging.GrabberInfo(@"C:\FAST\WIL\3.0.0\CameraFiles\DS\DS_USB0.xml", 2);
FVIL.Imaging.GrabberThread thread = FVIL.Imaging.GrabberThread.Create(info);

[↑戻る]


選択ダイアログ

GrabberInfo クラスの CreateSelectDialog(array<Object>[]()[][]) メソッドを実行すると 下図ダイアログのインスタンスを生成できます。 生成されたインスタンスの ShowDialog メソッドで表示して使用してください。

C# Copy imageCopy
FVIL.Imaging.GrabberInfo info = new FVIL.Imaging.GrabberInfo();
Form form = info.CreateSelectDialog();
if (form.ShowDialog(this) == DialogResult.OK)
{
    FVIL.Imaging.GrabberThread thread = FVIL.Imaging.GrabberThread.Create(info);
}

画面内容
Plugin タブ
以下のプロパティを設定する画面です。
PluginAssembly
PluginClassName
Simulator タブ
以下のプロパティを設定する画面です。
SimulatorFile
SimulatorFileMode
SimulatorOption
Detail タブ
GrabberInfo のすべてのプロパティを閲覧する画面です。

[↑戻る]


プロパティフォーム

GrabberThread クラスの CreatePropertyDialog(array<Object>[]()[][]) メソッドを実行すると 下図ダイアログのインスタンスを生成できます。 生成されたインスタンスの Show または ShowDialog メソッドで表示して使用してください。

C# Copy imageCopy
FVIL.Imaging.GrabberInfo info = new FVIL.Imaging.GrabberInfo(@"C:\FAST\WIL\3.0.0\CameraFiles\DS\DS_USB0.xml", 2);
FVIL.Imaging.GrabberThread thread = FVIL.Imaging.GrabberThread.Create(info);
Form form = thread.CreatePropertyDialog();
form.ShowDialog(this);


解説:

このフォームは、GrabberThread の内部に保有するデバイスコントローラのインスタンスをプロパティグリッドに表示するものです。 現在のところ、プロパティグリッドから調整できる項目に制限がある為、すべての項目を変更できません。 将来、改善する方針です。

[↑戻る]


焦点調整フォーム

GrabberThread クラスの CreateFocusingDialog(array<Object>[]()[][]) メソッドを実行すると 下図ダイアログのインスタンスを生成できます。 生成されたインスタンスの Show または ShowDialog メソッドで表示して使用してください。

C# Copy imageCopy
FVIL.Imaging.GrabberInfo info = new FVIL.Imaging.GrabberInfo(@"C:\FAST\WIL\3.0.0\CameraFiles\DS\DS_USB0.xml", 2);
FVIL.Imaging.GrabberThread thread = FVIL.Imaging.GrabberThread.Create(info);
Form form = thread.CreateFocusingDialog();
form.ShowDialog(this);

解説:

このフォームは、カメラの光軸調整や焦点調整を目視で行うことを目的としています。

画像ビュー上にある赤・緑・青の矩形の位置が画面下のプレビューに表示されます。 プレビュー上の黄色い矩形やパーセンテージは焦点が合っているか否かを示す指標です。 焦点が合っていない(明暗の差が少ない)時は、プレビュー上の黄色い矩形が点線になるか非表示になります。 焦点が合う(明暗の差が大きい)と黄色い矩形が実線になります。 パーセンテージは明暗の差が最も大きい時との比率を示します。 100% が最も高い(焦点が合っている)ことを示します。 パーセンテージは、ステータスストリップの Reset ボタンを押すと初期化されます。


画面端と中央の輝度に差がある場合は、カメラと照明の光軸があっていない可能性があります。 光軸ずれがないかを調べるには、画像ビュー上の赤・緑・青の矩形をそれぞれ左・中・右(または上・中・下)に 配置して輝度さを比較してください。 (対象の画像が UC8,US16,S16,D64 の場合は、各プレビューの右下に平均輝度が表示されます。 パッキング(RGB24、RGB32)の場合は平均輝度は表示されません。)
輝度さの原因は、光軸ずれの他に照明むらやカメラのタップ間の差などがあります。 その場合は、照明電源の出力調整やカメラのタップ間調整が必要です。

現在のところ、このフォーム上ではイメージグラバーのパラメータ設定が行えません。 このフォームを呼び出す前にパラメータ設定を行ってください。 例えば、ラインセンサーの焦点調整を行う為、Y 方向のライン数を 100 ライン程度に設定したい場合、 ビデオ入力ライブラリ(FVIL.Video)はライン数を動的に切り替えることができませんので 予め Y 方向のライン数に 100 を指定したカメラ設定ファイル(.ini)を読み込んでからこのフォームを起動してください。


対象物の例:

焦点調整の際は下図のように明暗をはっきり識別できるものを対象にしてください。

[↑戻る]