画像処理アプリケーションフレームワークを使用して前述の その1 と同等の処理を記述した例です。
CFviVideoRICE001 の代わりに GrabberThread を使用し、CFviDioFIO01 の代わりに DioThread を使用しています。 前述の その1 との違いは、GUI との連携が容易なこと、機能依存のコードを減らせることです。 それにより、ユーザーアプリケーションの開発コストを低減することができます。
関連:
画像処理アプリケーションフレームワークについては、FVIL リファレンスの以下のネームスペースの説明をご参照ください。
- FVIL.Parser
- FVIL.Imaging
- FVIL.IO
- FVIL.Ports
- FVIL.Net
- FVIL.Log
コード例:
2 using System.Collections.Generic;
5 using System.Windows.Forms;
6 using System.Reflection;
9 namespace User.SampleCode
18 FVIL.Imaging.GrabberThread grabber = null;
19 FVIL.IO.DioThread dio = null;
20 FVIL.Data.CFviImage src = null;
25 FVIL.Imaging.GrabberInfo grabber_info =
26 new FVIL.Imaging.GrabberInfo(
27 @"C:\FAST\WIL\3.0.0\CameraFiles\RICE-001\rice_640.ini",
30 grabber = FVIL.Imaging.GrabberThread.Create(grabber_info);
32 FVIL.IO.DioInfo dio_info =
new FVIL.IO.DioInfo(
33 FVIL.IO.DioKind.FIO01, -1, FVIL.IO.SimulatorOption.Auto);
34 dio = FVIL.IO.DioThread.Create(dio_info);
37 const uint DO_SUCCESS = 0x01;
38 const uint DO_FAILURE = 0x02;
41 src =
new FVIL.Data.CFviImage();
42 grabber.Validate(src);
44 FVIL.Imaging.IGrabImageSync grab_sync = (FVIL.Imaging.IGrabImageSync)grabber;
48 FVIL.Measure.CFviStatistics parser =
new FVIL.Measure.CFviStatistics(src);
52 if (32 <= parser.Average && parser.Average <= 200)