画像処理アプリケーションフレームワークを使用して前述 その1 と同等の処理を記述した例です。
CFviVideoRICE001 の代わりに GrabberThread を使用し、CFviDioFIO01 の代わりに DioThread を使用しています。 前述の その1 との違いは、GUI との連携が容易なこと、機能依存のコードを減らせることです。 それにより、ユーザーアプリケーションの開発コストを低減することができます。
関連:
画像処理アプリケーションフレームワークについては、FVIL リファレンスの以下のネームスペースの説明をご参照ください。
- FVIL.Parser
- FVIL.Imaging
- FVIL.IO
- FVIL.Ports
- FVIL.Net
- FVIL.Log
コード例:
1 Partial Public Class TestClass
3 ''' 画像処理アプリケーションフレームワークを使用した例.
6 Dim grabber As FVIL.Imaging.GrabberThread = Nothing
7 Dim dio As FVIL.IO.DioThread = Nothing
8 Dim src As FVIL.Data.CFviImage = Nothing
12 Dim grabber_info As FVIL.Imaging.GrabberInfo = New FVIL.Imaging.GrabberInfo( _
13 "C:\FAST\WIL\3.0.0\CameraFiles\RICE-001\rice_640.ini", _
16 grabber = FVIL.Imaging.GrabberThread.Create(grabber_info)
18 Dim dio_info As FVIL.IO.DioInfo = New FVIL.IO.DioInfo( _
19 FVIL.IO.DioKind.FIO01, -1, FVIL.IO.SimulatorOption.Auto)
20 dio = FVIL.IO.DioThread.Create(dio_info)
23 Const DO_SUCCESS As UInt32 = &H1
24 Const DO_FAILURE As UInt32 = &H2
27 src = New FVIL.Data.CFviImage()
30 Dim grab_sync As FVIL.Imaging.IGrabImageSync = _
31 CType(grabber, FVIL.Imaging.IGrabImageSync)
35 Dim parser = New FVIL.Measure.CFviStatistics(src)
39 If 32 <= parser.Average AndAlso parser.Average <= 200 Then
46 If grabber IsNot Nothing Then grabber.Dispose()
47 If dio IsNot Nothing Then dio.Dispose()
48 If src IsNot Nothing Then src.Dispose()