WIL説明書(.NET)  3.1.0
デバイスコントローラを使用した例 (その2)

画像処理アプリケーションフレームワークを使用して前述 その1 と同等の処理を記述した例です。
CFviVideoRICE001 の代わりに GrabberThread を使用し、CFviDioFIO01 の代わりに DioThread を使用しています。 前述の その1 との違いは、GUI との連携が容易なこと、機能依存のコードを減らせることです。 それにより、ユーザーアプリケーションの開発コストを低減することができます。

関連:
画像処理アプリケーションフレームワークについては、FVIL リファレンスの以下のネームスペースの説明をご参照ください。


コード例:

1 Partial Public Class TestClass
2  ''' <summary>
3  ''' 画像処理アプリケーションフレームワークを使用した例.
4  ''' </summary>
5  Public Sub Test5()
6  Dim grabber As FVIL.Imaging.GrabberThread = Nothing
7  Dim dio As FVIL.IO.DioThread = Nothing
8  Dim src As FVIL.Data.CFviImage = Nothing
9 
10  Try
11  '' 準備.
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", _
14  2 _
15  )
16  grabber = FVIL.Imaging.GrabberThread.Create(grabber_info)
17 
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)
21  dio.Start()
22 
23  Const DO_SUCCESS As UInt32 = &H1
24  Const DO_FAILURE As UInt32 = &H2
25 
26  '' 入力.
27  src = New FVIL.Data.CFviImage()
28  grabber.Validate(src)
29 
30  Dim grab_sync As FVIL.Imaging.IGrabImageSync = _
31  CType(grabber, FVIL.Imaging.IGrabImageSync)
32  grab_sync.Grab(src)
33 
34  '' 処理.
35  Dim parser = New FVIL.Measure.CFviStatistics(src)
36  parser.Execute()
37 
38  '' 出力.
39  If 32 <= parser.Average AndAlso parser.Average <= 200 Then
40  dio.DO = DO_SUCCESS
41  Else
42  dio.DO = DO_FAILURE
43  End If
44  Finally
45  '' 解放.
46  If grabber IsNot Nothing Then grabber.Dispose()
47  If dio IsNot Nothing Then dio.Dispose()
48  If src IsNot Nothing Then src.Dispose()
49  End Try
50  End Sub
51 End Class

Documentation copyright © 2008 FAST Corporation. [B-001864]
Generated on 2024年10月10日(木) 10時07分53秒 for WIL説明書(.NET) by doxygen 1.8.11