GPC-5520 - インタフェース

IMAGE(PCI/C-PCI)
GPC-5520
カラー画像入力インタフェースモジュール用 Windows ドライバ
Help for Windows
www.interface.co.jp
GPC-5520 Help for Windows
目
次
第 1 章 はじめに .................................................2
1.1
1.2
概要 ...........................................................................2
特長 ...........................................................................2
第 2 章 製品仕様 .................................................3
2.1
2.2
2.3
基本仕様 .......................................................................3
製品構成 .......................................................................5
x64 環境上の使用について ........................................................7
第 3 章 導入方法 .................................................9
3.1
3.2
3.3
3.4
インストール手順 ...............................................................9
実行手順 .......................................................................9
インタフェースモジュール固有情報 ..............................................27
クラスライブラリの参照方法 ....................................................33
第 4 章 リファレンス ............................................35
4.1
4.2
4.3
4.4
4.5
4.6
関数一覧 ......................................................................35
機能対応一覧 ..................................................................38
関数個別説明 ..................................................................41
構造体説明 ...................................................................467
戻り値一覧 ...................................................................519
動作仕様 .....................................................................521
第 5 章 サンプルプログラム .....................................564
5.1
5.2
5.3
5.4
5.5
5.6
5.7
5.8
5.9
5.10
5.11
5.12
5.13
5.14
5.15
ImgSmpl ......................................................................565
ImgBin .......................................................................566
ImgTrigger ...................................................................567
ImgSdram .....................................................................568
ImgPtn .......................................................................569
ImgContinuation ..............................................................570
ImgMeasure ...................................................................571
ImgLUT .......................................................................572
ImgFilter ....................................................................573
ImgDilationErosion ...........................................................574
ImgLbl .......................................................................575
ImgSaveAvi ...................................................................576
ImgCap .......................................................................577
ImgSprString .................................................................578
ImgSprDateTime ...............................................................578
第 6 章 ユーティリティ .........................................579
6.1
6.2
画像キャプチャユーティリティ .................................................579
自己診断プログラム ...........................................................593
第 7 章 重要な情報 .............................................595
© 2003, 2016 Interface Corporation. All rights reserved.
1
GPC-5520 Help for Windows
第1章 はじめに
1.1
概要
GPC-5520 は、Windows 上のアプリケーションから、弊社カラー画像入力インタフェースモジュ
ール、および CardBus 画像入力カードを制御する為のソフトウェアです。
弊社カラー画像入力インタフェースモジュールを Windows 上のアプリケーションから DLL をダイ
ナミックリンクし、API をコールすることにより制御します。
本ドキュメントは、Windows 上で GPC-5520 を使用するための情報を掲載しています。
1.2
特長
●NTSC 規格のコンポジット信号をキャプチャすることができます。
●PAL 規格のコンポジット信号をキャプチャすることができます。
●外部ノイズ等のカメラとの同期が取れなくなった場合、自動的にキャプチャを停止して同期を
取り直して、キャプチャを再開します。(PCI/CTP/CPZ-550131,550135 のみ)
●RGB32,RGB24,RGB15,GRAY8 のデータフォーマット形式で画像を取り込むことができます。
●バスマスタ DMA 転送により、入力画像をパソコンのメモリへダイレクトに取り込むことができ
ます。
●インタフェースモジュールに搭載した SDRAM へキャプチャした画像データを転送することがで
きます。
●キャプチャした画像データに対して、2 値化処理が行えます。
●2 値化した画像データに対して、指定対象物の面積、重心値を求めることが可能です。
●対象物体の面積値がしきい値内(もしくは外)になった場合、トリガを発生させる事が可能です。
●対象物体の重心値が指定範囲内(もしくは外)になった場合、トリガを発生させる事が可能です。
●ユーザが用意した比較用データからパターン一致検出が可能です。
●ソフトによるチャンネル切り換えが可能です。
●取り込んだ画像を簡単に表示できるキャプチャユーティリティが付属しています。
●画面上で機能や使い方を説明する Help をサポートしていますので、開発中に関数の詳細説明な
ど、簡単に参照することができます
●インタフェースモジュールの自己診断を行うプログラムが付属しています。
© 2003, 2016 Interface Corporation. All rights reserved.
2
GPC-4116 On-line Help for Windows
第2章 製品仕様
2.1
基本仕様
最大デバイス数
ビデオ・デコーダ
256 デバイス
映像入力信号
PCI/CPZ/CTP-55xx
CBI/CSI/PEX/LPC-530x15
PCI-530111
PCI/CPZ/CTP-55013x
PEX-530135
入力チャンネル数 PCI/CPZ/CTP-552x
PCI/CPZ/CTP-550131
PCI-530111
PCI-550312
解像度
ビデオ・エンコーダ
映像出力信号
解像度
汎用入力点数
汎用出力点数
割り込み
NTSC 規格準拠
PAL 規格準拠
1 チャンネル
3 チャンネル
PCI/CPZ/CTP-553x
5 チャンネル
PCI/CPZ/CTP-550135
CBI/CSI/PEX/LPC-530115
PEX-530135
PEX-H531322
2 チャンネル
NTSC 信号
640×480、320×240、160×120
PAL 信号
768×572、384×286、192×143
CameraLink
640×480
PCI/CPZ/CTP-55xx
NTSC 規格準拠
CBI/CSI/PEX/LPC-530x15
PCI/CPZ/CTP-55013x
PAL 規格準拠
PEX-530135
NTSC 信号
640×480、RGB24bit
PAL 信号
768×572、RGB24bit
8 点(IN8~IN1)
※PEX-H531322 は 16 点(IN16~IN1)
PCI/CTP/CPZ-55xx
6 点(OUT6~OUT1)
PCI/CTP/CPZ-55013x 6 点(OUT6~OUT1)
CBI-530x15(Tx)
8 点(OUT8~OUT1)
CSI-530x15
8 点(OUT8~OUT1)
PEX/LPC-530x15
8 点(OUT8~OUT1)
PCI-530111
8 点(OUT8~OUT1)
PCI-550231
8 点(OUT8~OUT1)
※PEX-H531322
16 点(OUT16~OUT1)
汎用入力(IN8~IN1)
フレーム転送完了
© 2002 Interface Corporation. All rights reserved.
3
GPC-5520 Help for Windows
面積トリガ
重心トリガ
面積 AND 重心トリガ
パターン一致検出
同期ズレ発生
© 2003, 2016 Interface Corporation. All rights reserved.
4
GPC-5520 Help for Windows
2.2
製品構成
製品構成
弊社管理用ファイル
最新情報ドキュメント
インストールプログラム
キャプチャプログラム
自己診断プログラム
サンプルプログラム
Visual C++ 6.0
Visual Basic 6.0
Delphi 5/6/7 Studio
ファイル名
GPC5520.ver
Readme.htm
Setup.exe
ImgCapture.exe
ImgDiag.exe
説明
弊社ソフト管理用ファイル
最新ドキュメント掲載ファイル
インストール用ファイル
インタフェースモジュール動作確認用プログラム
インタフェースモジュール自己診断プログラム
ImgCap
ImgSmpl
ImgBin
ImgTrigger
ImgSdram
ImgPtn
ImgContinuation
ImgMeasure
ImgLut
ImgFilter
ImgDilationErosion
ImgLbl
ImgSaveAvi
ImgSprString
ImgSprDateTime
ImgCap
ImgSmpl
ImgBin
ImgTrigger
ImgSdram
ImgPtn
ImgContinuation
ImgMeasure
ImgLut
ImgFilter
ImgDilationErosion
ImgLbl
ImgSprString
ImgSprDateTime
ImgSmpl
ImgBin
ImgTrigger
ImgSdram
ImgPtn
ImgContinuation
ImgMeasure
ImgLut
ImgFilter
ImgDilationErosion
ImgLbl
キャプチャサンプルプログラム(マニュアル記載プログラム)
1 フレームキャプチャサンプルプログラム
2 値化サンプルプログラム
面積、重心一致トリガサンプルプログラム
SDRAM キャプチャサンプルプログラム
パターン一致サンプルプログラム
連続フレーム取込みサンプルプログラム
2 値画像処理サンプルプログラム
階調変換処理サンプルプログラム
フィルタ処理サンプルプログラム
膨張・収縮処理サンプルプログラム
ラベリング処理サンプルプログラム
動画(Avi 形式)ファイルを保存するサンプルプログラム
文字列をスーパーインポーズするサンプルプログラム
日時時間をスーパーインポーズするサンプルプログラム
キャプチャサンプルプログラム(マニュアル記載プログラム)
1 フレームキャプチャサンプルプログラム
2 値化サンプルプログラム
面積、重心一致トリガサンプルプログラム
SDRAM キャプチャサンプルプログラム
パターン一致サンプルプログラム
連続フレーム取込みサンプルプログラム
2 値画像処理サンプルプログラム
階調変換処理サンプルプログラム
フィルタ処理サンプルプログラム
膨張・収縮処理サンプルプログラム
ラベリング処理サンプルプログラム
文字列をスーパーインポーズするサンプルプログラム
日時時間をスーパーインポーズするサンプルプログラム
1 フレームキャプチャサンプルプログラム
2 値化サンプルプログラム
面積、重心一致トリガサンプルプログラム
SDRAM キャプチャサンプルプログラム
パターン一致サンプルプログラム
連続フレーム取込みサンプルプログラム
2 値画像処理サンプルプログラム
階調変換処理サンプルプログラム
フィルタ処理サンプルプログラム
膨張・収縮処理サンプルプログラム
ラベリング処理サンプルプログラム
© 2003, 2016 Interface Corporation. All rights reserved.
5
GPC-5520 Help for Windows
製品構成
Visual C# .NET
Visual Basic .NET
Delphi .NET
DLL
デバイスドライバ
ファイル名
ImgSmpl
ImgSprString
ImgSprDateTime
ImgSmpl
ImgSprString
ImgSprDateTime
ImgSmpl
IfImg.dll
IfImg.lib
IfSaveFile.dll
IfSaveFile.lib
CP552x.sys
CP553x.sys
CP530x15.sys
説明
バスマスタ キャプチャサンプルプログラム
文字列をスーパーインポーズするサンプルプログラム
日時時間をスーパーインポーズするサンプルプログラム
バスマスタ キャプチャサンプルプログラム
文字列をスーパーインポーズするサンプルプログラム
日時時間をスーパーインポーズするサンプルプログラム
バスマスタ キャプチャサンプルプログラム
ダイナミックリンクライブラリファイル
インポートライブラリファイル(Visual C++用)
ダイナミックリンクライブラリファイル
インポートライブラリファイル(Visual C++用)
Windows 2000 以降の OS 用ドライバ
CP530135.sys
inf ファイル
GPC552x.inf
Windows 2000 以降の OS 用ドライバインストールファイル
GPC553x.inf
GPC530x15.inf
GPC530135.inf
SLD ファイル
ヘッダファイル
Help
GPC552x.SLD
GPC553x.SLD
GPC530x15.SLD
GPC530135.SLD
IfImg.h
IfImg.bas
IfImg.pas
IfSaveFile.h
IfSaveFile.bas
IfSaveFile.pas
Help.pdf
Help_NET.pdf
Windows Embedded 用ドライバ
SLD ファイル
Visual C++ 用ヘッダファイル
Visual Basic 用ヘッダファイル
Delphi 用ヘッダファイル
Visual C++ 用ヘッダファイル
Visual Basic 用ヘッダファイル
Delphi 用ヘッダファイル
Help(PDF 形式)
.NET 用補足 Help
※Visual C# .NET,Visual Basic.NET 用サンプルプログラムは、それぞれ Viausl C# .NET 2003,
Visual Basic .NET 2003 を使用して作成しています。
※Delphi .NET 用サンプルプログラムは、Delphi 8 for the Microsoft .NET Framework を使用し
て作成しています。
© 2003, 2016 Interface Corporation. All rights reserved.
6
GPC-5520 Help for Windows
2.3
x64 環境上の使用について
メインメモリの操作
x64 環境では、ユーザアプリケーション上で確保したメインメモリ領域に対して DMA 転送する
事ができません。
弊社 Windows ドライバは、OS が起動してドライバがロードされるタイミングで、連続した物理
メモリをカーネル内で確保し、確保したメモリ領域に DMA 転送を行います。確保するデータサイ
ズは 256MB 分 (※ Windows Xp/Server2003 の場合は約 32MB)で、確保する場所は 32bit 空間内と
なります。
ドライバは、ユーザアプリケーション側で ImgSetBuffer 関数を介して要求を受けると、指定サ
イズ分の物理メモリを論理空間へマッピングして、ユーザアプリ上でメモリアクセス可能にしま
す。ImgGetMemPtrValue 関数で論理メモリの先頭アドレスをポインタ変数として取得し、画像デ
ータをポインタ操作で使用する事ができます。
ユーザアプリケーション
ポインタ変数
論理メモリ
ユーザ空間
カーネル空間
論理メモリへマッピング
0xFFFFFFFF_FFFFFFFF
0x00000000_FFFFFFFF
256MB 分確保
0x00000000_00000000
物理メモリ空間
※PEX-H531322 は 2ch 分の物理メモリをそれぞれ割り当てています。
© 2003, 2016 Interface Corporation. All rights reserved.
7
GPC-5520 Help for Windows
物理メモリの確保結果の確認
OS 起動時に物理メモリを確保しますが、確保結果はイベントログとして保存されています。イ
ベントビューアの「システム」にドライバファイルと同じソース名でログとして情報を残してい
ます。
物理メモリの確保に成功すると、説明欄に「ドライバファイル -- It succeeded in allocating
a physical memory.」と記載されます。確保に失敗すると「ドライバファイル -- It failed in the
allocation of a physical memory.」と記載されます。
物理メモリの確保サイズの変更
OS 起動時に物理メモリを確保するサイズを変更する事も可能です。
サイズの変更は、キャプチャユーティリティ(ImgCapture.exe)で行う事ができます。
詳細は、「6.1 画像キャプチャユーティリティ」の「12. 画面説明(物理メモリ設定)」を参照してく
ださい。
© 2003, 2016 Interface Corporation. All rights reserved.
8
GPC-5520 Help for Windows
第3章 導入方法
3.1
インストール手順
README.HTM のインストール方法を参照してください。
3.2
実行手順
同一型式のインタフェースモジュールを複数枚使用する場合は、インタフェースモジュール上の
ロータリスイッチ RSW1,RSW2 の設定値が同一型式同士で重複しないように設定してからシステム
に実装してください。
同一型式で複数のインタフェースモジュールが存在する場合、インタフェースモジュールを一意
に識別するための番号となります。重複していた場合、本ソフトウェアは正常に動作いたしませ
ん。
以下に基本的な実行手順の流れを説明します。
PEX-H531322 をご使用になる場合は、本章と「4.6 動作仕様」の「■PEX-H531322 の制御方法」
の内容も参照してください。
© 2003, 2016 Interface Corporation. All rights reserved.
9
GPC-5520 Help for Windows
キャプチャ(バスマスタ)
1.初期化
インタフェースモジュールを ImgOpen 関数で初期化します。
初期化が正常終了すると、以後、インタフェースモジュールへのアクセスが可能となります。
2.接続カメラ設定(PEX-H531322 の場合)
ImgSetCLCaptureConfig 関数で、接続する CameraLink カメラの設定を行います。接続する
CameraLink カメラが PoCL 規格の場合、ImgOutputPower 関数でカメラへの電源を供給します。
3.キャプチャ準備
ImgSetBuffer 関数(Visual Basic の場合は ImgSetBufferVB 関数)で画像データを転送するメイ
ンメモリの設定を行います。設定を行わないと ImgStartCapture 関数実行時にエラーとなりま
す。
■x86 環境の場合
ア プ リ ケ ー シ ョ ン に て バ ッ フ ァ ( メ モ リ 領 域 ) を 用 意 し 、 ImgSetBuffer 関 数 ( ま た
ImgSetBufferVB 関数)へ渡す IMGBUFFERINFO 構造体の pBufferAddress 変数には先頭アドレ
スを、dwBufferSize 変数にはバッファのサイズを指定してください。
■x64 環境の場合
アプリケーション上のバッファでなく、ドライバ内で確保したメモリを使用します。
ImgSetBuffer 関 数 ( ま た ImgSetBufferVB 関 数 ) へ 渡 す IMGBUFFERINFO 構 造 体 の
pBufferAddress 変数には-1 を、dwBufferSize 変数には確保したいサイズを指定します。
ImgSetBuffer 関数成功後、ImgGetMemPtrValue 関数によりメモリの先頭アドレスをポインタ
変数として取得できます。
4.キャプチャ開始
ImgStartCapture 関数の引数 dwStartMode に IFIMG_DMACAPTURE_START を指定して、キャプチャ
を開始します。
ImgStartCapture 関数の引数 dwFrameCnt には、キャプチャするフレームの数を指定してくださ
い。
映像入力機器より取り込んだデータを、ImgSetBuffer 関数で設定したバッファ領域へバスマス
タ転送します。
dwFrameCnt に 0 を指定した場合、ImgStopCapture 関数を実行するまでキャプチャします。
5.キャプチャ停止
ImgStartCapture 関数の引数 dwFrameCnt に 0 を指定した場合、ImgStopCapture 関数でキャプチ
ャの停止を実行します。
dwFrameCnt を 0 以上に設定した場合は、設定値のフレーム数をキャプチャした後、自動停止し
ます。
© 2003, 2016 Interface Corporation. All rights reserved.
10
GPC-5520 Help for Windows
6.キャプチャ終了の監視
ImgGetCaptureStatus 関数でキャプチャ状態を定期的に監視します。ImgGetCaptureStatus 関数
で取得した IMGCAPSTATUS 構造体のメンバ引数 dwCapture 変数の bit0 が 0 になるまで監視しま
す。
bit0 が 0 になったとき、キャプチャが終了したと判断します。
また、IMGCAPSTATUS 構造体のメンバ変数 dwFrameCnt で、転送完了したフレーム数を取得でき
るので、ImgStartCapture 関数で指定した転送フレーム数と比較する方法もあります。
7.キャプチャデータ取得
キャプチャデータは、ImgSetBuffer 関数にて設定したメモリ領域にバスマスタ転送されます。
キャプチャーデータは、最初奇数フィールドのデータが転送され、奇数フィールドのデータが
全て転送後、偶数フィールドのデータが転送されます。
8.描画、画像処理
取得したキャプチャデータを元に、画像処理、描画等を行います。
9.終了処理
ImgClose 関数でデバイスの終了処理を行います。アプリケーションでは、必ずクローズ処理を
行ってから終了してください。
© 2003, 2016 Interface Corporation. All rights reserved.
11
GPC-5520 Help for Windows
キャプチャ(バスマスタ、割り込み使用時)
1.初期化
インタフェースモジュールを ImgOpen 関数で初期化します。
初期化が正常終了すると、以後、インタフェースモジュールへのアクセスが可能となります。
2.接続カメラ設定(PEX-H531322 の場合)
ImgSetCLCaptureConfig 関数で、接続する CameraLink カメラの設定を行います。接続する
CameraLink カメラが PoCL 規格の場合、ImgOutputPower 関数でカメラへの電源を供給します。
3.キャプチャ準備
ImgSetBuffer 関数(Visual Basic の場合は ImgSetBufferVB 関数)で画像データを転送するメイ
ンメモリの設定を行います。設定を行わないと ImgStartCapture 関数実行時にエラーとなりま
す。
■x86 環境の場合
ア プ リ ケ ー シ ョ ン に て バ ッ フ ァ ( メ モ リ 領 域 ) を 用 意 し 、 ImgSetBuffer 関 数 ( ま た
ImgSetBufferVB 関数)へ渡す IMGBUFFERINFO 構造体の pBufferAddress 変数には先頭アドレ
スを、dwBufferSize 変数にはバッファのサイズを指定してください。
■x64 環境の場合
アプリケーション上のバッファでなく、ドライバ内で確保したメモリを使用します。
ImgSetBuffer 関 数 ( ま た ImgSetBufferVB 関 数 ) へ 渡 す IMGBUFFERINFO 構 造 体 の
pBufferAddress 変数には-1 を、dwBufferSize 変数には確保したいサイズを指定します。
ImgSetBuffer 関数成功後、ImgGetMemPtrValue 関数によりメモリの先頭アドレスをポインタ
変数として取得できます。
4.割り込み設定
ImgSetEventMask 関数と ImgSetEvent 関数で割り込み設定を行います。
IMGEVENTTABLE 構造体のメンバ変数 dwFrame の bit0 を 1 にして、1 フレーム毎転送完了割り込
みをアンマスクします。ImgSetEventMask 関数に IMGEVENTTABLE 構造体変数を渡します。
ImgSetEvent 関数で割り込みイベントを設定します。
5.キャプチャ開始
ImgStartCapture 関数の引数 dwStartMode に IFIMG_DMACAPTURE_START を指定して、キャプチャ
を開始します。
ImgStartCapture 関数の引数 dwFrameCnt には、キャプチャするフレームの数を指定してくださ
い。
映像入力機器より取り込んだデータを、ImgSetBuffer 関数で設定したバッファ領域へバスマス
タ転送します。
dwFrameCnt に 0 を指定した場合、ImgStopCapture 関数を実行するまでキャプチャします。
© 2003, 2016 Interface Corporation. All rights reserved.
12
GPC-5520 Help for Windows
6.割り込みイベント発生
1 フレーム転送完了毎に割り込みイベントが発生します。
ImgGetCaptureStatus 関数でキャプチャ完了フレーム数を確認することが可能です。
キャプチャデータは、ImgSetBuffer 関数にて設定したメモリ領域にバスマスタ転送されます。
取得したキャプチャデータを元に、画像処理、描画等を行います。
※画像処理、描画処理に約 33ms 以上の時間を費やす場合、次のフレーム転送完了割り込みイベ
ントを取りこぼす可能性がありますので、ご注意ください。
7.キャプチャ終了の監視
ImgGetCaptureStatus 関数でキャプチャ状態を定期的に監視します。ImgGetCaptureStatus 関数
で取得した IMGCAPSTATUS 構造体のメンバ変数 dwCapture の bit0 が 0 になるまで監視します。
bit0 が 0 になったとき、キャプチャが終了したと判断します。
また、IMGCAPSTATUS 構造体のメンバ変数 dwFrameCnt で、転送完了したフレーム数を取得でき
るので、ImgStartCapture 関数で指定した転送フレーム数と比較する方法もあります。
8.キャプチャ停止
ImgStartCapture 関数の引数 dwFrameCnt に 0 を指定した場合、ImgStopCapture 関数でキャプチ
ャの停止を実行します。
9.終了処理
割り込みイベントを利用している場合は、ImgSetEventMask 関数で全ての割り込みをマスクし
ます。
ImgClose 関数でデバイスの終了処理を行います。アプリケーションでは、必ずクローズ処理を
行ってから終了してください。
© 2003, 2016 Interface Corporation. All rights reserved.
13
GPC-5520 Help for Windows
キャプチャ(SDRAM)
1.初期化
インタフェースモジュールを ImgOpen 関数で初期化します。
初期化が正常終了すると、以後、インタフェースモジュールへのアクセスが可能となります。
2.キャプチャ準備
ImgAllocateSDRAM 関数にて SDRAM 領域を確保し、ImgSetSDRAM 関数でキャプチャする SDRAM 領
域を指定してください。
SDRAM 領域を指定していない場合、ImgStartCapture 関数実行時にエラーとなります。
3.キャプチャ開始
ImgStartCapture 関数の引数 dwStartMode に IFIMG_SDRAMCAPTURE_START を指定して、キャプチ
ャを開始します。
ImgStartCapture 関数の引数 dwFrameCnt には、キャプチャするフレームの数を指定してくださ
い。
映像入力機器より取り込んだデータを、ImgSetSDRAM 関数で設定した SDRAM 領域へ転送します。
dwFrameCnt に 0 を指定した場合、ImgStopCapture 関数を実行するまでキャプチャします。
4.キャプチャ停止
ImgStartCapture 関数の引数 dwFrameCnt に 0 を指定した場合、ImgStopCapture 関数でキャプチ
ャの停止を実行します。
dwFrameCnt を 0 以上に設定した場合は、設定値分のフレーム数をキャプチャした後、自動停止
します。
5.キャプチャ終了の監視
ImgGetCaptureStatusEx 関数でキャプチャ状態を定期的に監視します。ImgGetCaptureStatusEx
関数で取得した IMGCAPSTATUSEX 構造体のメンバ引数 dwCapture 変数の bit3 が 0 になるまで監
視します。
bit3 が 0 になったとき、SDRAM によるキャプチャが終了したと判断します。
また、IMGCAPSTATUSEX 構造体のメンバ変数 dwFrameCntSDRAM で、転送完了したフレーム数を取
得できるので、ImgStartCapture 関数で指定した転送フレーム数と比較する方法もあります。
6.キャプチャデータ取得
キャプチャデータは、ImgSetSDRAM 関数にて設定した SDRAM 領域に転送されます。
SDRAM 領域に転送されたキャプチャデータは、ImgReadCaptureData 関数を使用して取得します。
キャプチャーデータは、最初奇数フィールドのデータが転送され、奇数フィールドのデータが
全て転送後、偶数フィールドのデータが転送されます。
7.描画、画像処理
取得したキャプチャデータを元に、画像処理、描画等を行います。
8.終了処理
キャプチャのために用意した SDRAM 領域を、ImgFreeSDRAM 関数で開放します。
ImgClose 関数でデバイスの終了処理を行います。アプリケーションでは、必ずクローズ処理を
行ってから終了してください。
© 2003, 2016 Interface Corporation. All rights reserved.
14
GPC-5520 Help for Windows
キャプチャ(SDRAM、割り込み使用時)
1.初期化
インタフェースモジュールを ImgOpen 関数で初期化します。
初期化が正常終了すると、以後、インタフェースモジュールへのアクセスが可能となります。
2.キャプチャ準備
ImgAllocateSDRAM 関数にて SDRAM 領域を確保し、ImgSetSDRAM 関数でキャプチャする SDRAM 領
域を指定してください。
SDRAM 流域を指定していない場合、ImgStartCapture 関数実行時にエラーとなります。
3.割り込み設定
ImgSetEventMask 関数と ImgSetEventEx 関数で割り込み設定を行います。
IMGEVENTTABLE 構造体のメンバ変数 dwFrame の bit1 を 1 にして、SDRAM キャプチャによる 1 フ
レーム毎転送完了割り込みをアンマスクします。ImgSetEventMask 関数に IMGEVENTTABLE 構造
体変数を渡します。
ImgSetEventEx 関数で割り込みイベントを設定します。
4.キャプチャ開始
ImgStartCapture 関数の引数 dwStartMode に IFIMG_SDRAMCAPTURE_START を指定して、キャプチ
ャを開始します。
ImgStartCapture 関数の引数 dwFrameCnt には、キャプチャするフレームの数を指定してくださ
い。
映像入力機器より取り込んだデータを、ImgSetSDRAM 関数で設定した SDRAM 領域へ転送します。
dwFrameCnt に 0 を指定した場合、ImgStopCapture 関数を実行するまでキャプチャします。
5.割り込みイベント発生
1 フレーム転送完了毎に割り込みイベントが発生します。
ImgGetCaptureStatusEx 関数でキャプチャ完了フレーム数を確認することが可能です。
キャプチャデータは、ImgSetSDRAM 関数にて設定した SDRAM 領域に転送されます。
SDRAM 領域に転送されたキャプチャデータは、ImgReadCaptureData 関数を使用して取得します。
取得したキャプチャデータを元に、画像処理、描画等を行います。
※画像処理、描画処理に約 33ms 以上の時間を費やす場合、次のフレーム転送完了割り込みイベ
ントを取りこぼす可能性がありますので、ご注意ください。
6.キャプチャ終了の監視
ImgGetCaptureStautsEx 関数でキャプチャ状態を定期的に監視します。ImgGetCaptureStatusEx
関数で取得した IMGCAPSTATUSEX 構造体のメンバ変数 dwCapture の bit3 が 0 になるまで監視し
ます。
bit3 が 0 になったとき、キャプチャが終了したと判断します。
また、IMGCAPSTATUSEX 構造体のメンバ変数 dwFrameCntSDRAM で、転送完了したフレーム数を取
得できるので、ImgStartCapture 関数で指定した転送フレーム数と比較する方法もあります。
7.キャプチャ停止
ImgStartCapture 関数の引数 dwFrameCnt に 0 を指定した場合、ImgStopCapture 関数でキャプチ
ャの停止を実行します。
© 2003, 2016 Interface Corporation. All rights reserved.
15
GPC-5520 Help for Windows
8.終了処理
割り込みイベントを利用している場合は、ImgSetEventMask 関数で全ての割り込みをマスクし
ます。
キャプチャのために用意した SDRAM 領域を、ImgFreeSDRAM 関数で開放します。
ImgClose 関数でデバイスの終了処理を行います。アプリケーションでは、必ずクローズ処理を
行ってから終了してください。
2 値化画像の取り込み
1.初期化
インタフェースモジュールを ImgOpen 関数で初期化します。
初期化が正常終了すると、以後、インタフェースモジュールへのアクセスが可能となります。
2.2 値化処理の設定
ImgSetBinarizationConfig 関数にて、2 値化処理設定を行います。
3.キャプチャ準備~キャプチャ開始~キャプチャ終了
前述の「キャプチャ(バスマスタ)」に記載している手順と同様の処理を行ってください。
4.描画、画像処理
取得したキャプチャデータを元に、画像処理、描画等を行います。
5.終了処理
ImgClose 関数でデバイスの終了処理を行います。アプリケーションでは、必ずクローズ処理を
行ってから終了してください。
指定対象物の面積値、重心値の取得(5522,5532,5523,5533)
1.初期化
インタフェースモジュールを ImgOpen 関数で初期化します。
初期化が正常終了すると、以後、インタフェースモジュールへのアクセスが可能となります。
2.2 値化処理の設定
ImgSetBinarizationConfig 関数にて、2 値化処理設定を行います。
3.測定範囲の設定
ImgSetMeasurementRange 関数でフレーム内における測定範囲を指定します。
4.面積値、重心値の取得
ImgGetMeasurementValue 関数で面積値、重心値を取得します。
5.終了処理
ImgClose 関数でデバイスの終了処理を行います。アプリケーションでは、必ずクローズ処理を
行ってから終了してください。
© 2003, 2016 Interface Corporation. All rights reserved.
16
GPC-5520 Help for Windows
トリガ発生条件の設定とトリガ検知
1.初期化
インタフェースモジュールを ImgOpen 関数で初期化します。
初期化が正常終了すると、以後、インタフェースモジュールへのアクセスが可能となります。
2.2 値化処理の設定
ImgSetBinarizationConfig 関数にて、2 値化処理設定を行います。
3.測定範囲の設定
ImgSetMeasurementRange 関数でフレーム内における測定範囲を指定します。
4.トリガ発生条件を指定
ImgSetTriggerConfig 関数で面積トリガ、重心トリガ、面積 AND 重心トリガの発生の有無と発
生条件を設定します。
5.割り込み設定
割り込みイベントを利用してトリガ検知したい場合は、ImgSetEventMask 関数と ImgSetEvent
関数で割り込み設定を行います。
IMGEVENTTABLE 構造体のメンバ変数 dwTrigger で割り込み検知したいトリガ割り込みをアンマ
スクします。ImgSetEventMask 関数に IMGEVENTTABLE 構造体変数を渡します。
ImgSetEvent 関数で割り込みイベントを指定します。
6.トリガ検知
ImgGetCaptureStatus 関数でトリガ状態を定期的に監視します。IMGCAPSTATUS 構造体のメンバ
引数 dwTrigger でトリガ状態を知ることが可能です。
7.トリガ検知(割り込み設定時)
トリガ条件を満たした時に、割り込みイベントが通知されます。
ImgGetCaptureStatus 関数で、どのトリガが発生したか知ることが可能です。
割り込みイベント通知が必要ない場合は、ImgSetEventMask 関数でトリガ割り込みをマスクし
てください。
8.終了処理
割り込みイベントを利用している場合は、ImgSetEventMask 関数で全ての割り込みをマスクし
ます。
ImgClose 関数でデバイスの終了処理を行います。アプリケーションでは、必ずクローズ処理を
行ってから終了してください。
© 2003, 2016 Interface Corporation. All rights reserved.
17
GPC-5520 Help for Windows
パターン一致
1.初期化
インタフェースモジュールを ImgOpen 関数で初期化します。
初期化が正常終了すると、以後、インタフェースモジュールへのアクセスが可能となります。
2.2 値化処理の設定
ImgSetBinarizationConfig 関数にて、2 値化処理設定を行います。
3.比較データの設定
ImgAllocateSDARAM 関数にて SDRAM 領域を確保し、ImgWriteComparisonData 関数で比較データ
を SDRAM 領域に書き込みます。
4.比較条件を指定
ImgSetConparisonConfig 関数で比較エリアの自動補正機能、比較開始 X 座標、比較開始 Y 座標、
比較データとの一致率、パターン一致トリガの発生条件を設定します。
5.割り込み設定
割り込みイベントを利用してトリガ検知したい場合は、ImgSetEventMask関数と ImgSetEventEx
関数で割り込み設定を行います。
IMGEVENTTABLE 構造体のメンバ変数 dwTrigger の bit3 を 1 にして、パターン一致割り込みをア
ンマスクします。ImgSetEventMask 関数に IMGEVENTTABLE 構造体変数を渡します。
ImgSetEventEx 関数で割り込みイベントを指定します。
6.トリガ検知
ImgGetCaptureStatusEx 関数でトリガ状態を定期的に監視します。IMGCAPSTATUSEX 構造体のメ
ンバ引数 dwTrigger の bit4 でパターン一致トリガの発生状態を知ることが可能です。
7.トリガ検知(割り込み設定時)
パターン一致トリガが発生した時に、割り込みイベントが通知されます。
ImgGetCaptureStatusEx 関数で、パターン一致トリガの発生を知ることが可能です。
割り込みイベント通知が必要ない場合は、ImgSetEventMask 関数でトリガ割り込みをマスクし
てください。
8.終了処理
割り込みイベントを利用している場合は、ImgSetEventMask 関数で全ての割り込みをマスクし
ます。
比較データのために用意した SDRAM 領域を、ImgFreeSDRAM 関数で開放します。
ImgClose 関数でデバイスの終了処理を行います。アプリケーションでは、必ずクローズ処理を
行ってから終了してください。
© 2003, 2016 Interface Corporation. All rights reserved.
18
GPC-5520 Help for Windows
指定対象物の面積値、重心値、フェレ径、傾き角の取得
55x4 系,55x5 系,55x6 系,PEX-H531322 専用です。
1.初期化
インタフェースモジュールを ImgOpen 関数で初期化します。
初期化が正常終了すると、以後、インタフェースモジュールへのアクセスが可能となります。
2.2 値化処理の設定
ImgSetBinarizationConfig 関数にて、2 値化処理設定を行います。
3.測定範囲の設定
ImgSetMeasurementRange 関数でフレーム内における測定範囲を指定します。
4.面積値、重心値、フェレ径、慣性等価楕円の傾き角
ImgGetMeasurementValueEx 関数で面積値、重心値、フェレ径、慣性等価楕円の傾き角を取得し
ます。
5.終了処理
ImgClose 関数でデバイスの終了処理を行います。アプリケーションでは、必ずクローズ処理を
行ってから終了してください。
取込み画像の濃度分布の取得
(5524,5525,5526,5534,5535,5536,PEX-H531322 専用)
1.初期化
インタフェースモジュールを ImgOpen 関数で初期化します。
初期化が正常終了すると、以後、インタフェースモジュールへのアクセスが可能となります。
2.対象色成分の指定
ImgSetColorIngredient 関数で、色成分を指定します。
3.転送領域の指定
ア プ リ ケ ー シ ョ ン に て バ ッ フ ァ ( メ モ リ 領 域 ) を 用 意 し 、 ImgSetBuffer 関 数 ( ま た は
ImgSetBufferVB 関数)でその領域の先頭アドレスとバッファサイズを設定してください。
バッファを設定していない場合、ImgStartCapture 関数実行時にエラーとなります。
4.バスマスタ転送開始
ImgStartCapture 関数の引数 dwStartMode に IFIMG_DMACAPTURE_START を指定して、キャプチャ
を開始します。
濃度分布データは、ImgSetBuffer 関数にて設定したメモリ領域にバスマスタ転送されます。
5.終了処理
ImgClose 関数でデバイスの終了処理を行います。アプリケーションでは、必ずクローズ処理を
行ってから終了してください。
© 2003, 2016 Interface Corporation. All rights reserved.
19
GPC-5520 Help for Windows
指定対象物の射影データの取得
(5524,5525,5526,5534,5535,5536,PEX-H531322 専用)
1.初期化
インタフェースモジュールを ImgOpen 関数で初期化します。
初期化が正常終了すると、以後、インタフェースモジュールへのアクセスが可能となります。
2.2 値化処理の設定
ImgSetBinarizationConfig 関数にて、2 値化処理設定を行います。
3.測定範囲の設定
ImgSetMeasurementRange 関数でフレーム内における測定範囲を指定します。
4.転送領域の指定
ア プ リ ケ ー シ ョ ン に て バ ッ フ ァ ( メ モ リ 領 域 ) を 用 意 し 、 ImgSetBuffer 関 数 ( ま た は
ImgSetBufferVB 関数)でその領域の先頭アドレスとバッファサイズを設定してください。
バッファを設定していない場合、ImgStartCapture 関数実行時にエラーとなります。
5.バスマスタ転送開始
ImgStartCapture 関数の引数 dwStartMode に IFIMG_DMACAPTURE_START を指定して、キャプチャ
を開始します。
射影データは、ImgSetBuffer 関数にて設定したメモリ領域にバスマスタ転送されます。
6.終了処理
ImgClose 関数でデバイスの終了処理を行います。アプリケーションでは、必ずクローズ処理を
行ってから終了してください。
© 2003, 2016 Interface Corporation. All rights reserved.
20
GPC-5520 Help for Windows
階調変換画像の取込み
55x5 系,55x6 系,PEX-H531322 専用です。
1.初期化
インタフェースモジュールを ImgOpen 関数で初期化します。
初期化が正常終了すると、以後、インタフェースモジュールへのアクセスが可能となります。
2.階調変換テーブルの設定
ImgSetLut 関数にて、階調変換テーブルのデータを設定します。
3.階調変換有効
ImgSetConversionConfig 関数の引数 dwCnvEnabled へ 0x01 を指定します。
4.キャプチャ準備~キャプチャ開始~キャプチャ終了
前述の キャプチャ手順と同様の処理を行ってください。
5.描画、画像処理
取得したキャプチャデータを元に、画像処理、描画等を行います。
6.終了処理
ImgClose 関数でデバイスの終了処理を行います。アプリケーションでは、必ずクローズ処理を
行ってから終了してください。
© 2003, 2016 Interface Corporation. All rights reserved.
21
GPC-5520 Help for Windows
フィルタ画像の取込み
55x5 系,55x6 系,PEX-H531322 専用です。
1.初期化
インタフェースモジュールを ImgOpen 関数で初期化します。
初期化が正常終了すると、以後、インタフェースモジュールへのアクセスが可能となります。
2.対象色成分の指定
ImgSetColorIngredient 関数で、色成分を指定します。
3.フィルタ処理の選択
ImgSetFilter 関数でフィルタ係数を設定します。
4.フィルタ処理の有効
ImgSetConversionConfig 関数の引数 dwCnvEnabled へ 0x02 を指定します。
5.キャプチャ準備~キャプチャ開始~キャプチャ終了
前述の キャプチャ手順と同様の処理を行ってください。
6.描画、画像処理
取得したキャプチャデータを元に、画像処理、描画等を行います。
7.終了処理
ImgClose 関数でデバイスの終了処理を行います。アプリケーションでは、必ずクローズ処理を
行ってから終了してください。
© 2003, 2016 Interface Corporation. All rights reserved.
22
GPC-5520 Help for Windows
膨張・収縮画像の取込み
55x5 系,55x6 系,PEX-H531322 専用です。
1.初期化
インタフェースモジュールを ImgOpen 関数で初期化します。
初期化が正常終了すると、以後、インタフェースモジュールへのアクセスが可能となります。
2.対象色成分の指定
ImgSetColorIngredient 関数で、色成分を指定します。
3.膨張・収縮設定
ImgSetDil_Er 関数にて、処理段数と各段に対する膨張処理、収縮処理の選択、そして連結数を
選択します。
4.2 値化処理の設定
ImgSetBinarizationConfig 関数にて、2 値化処理設定を行います。
5.キャプチャ準備~キャプチャ開始~キャプチャ終了
前述の キャプチャ手順と同様の処理を行ってください。
6.描画、画像処理
取得したキャプチャデータを元に、画像処理、描画等を行います。
7.終了処理
ImgClose 関数でデバイスの終了処理を行います。アプリケーションでは、必ずクローズ処理を
行ってから終了してください。
© 2003, 2016 Interface Corporation. All rights reserved.
23
GPC-5520 Help for Windows
ラベリング画像の取込み
55x6 系,PEX-H531322 専用です。
1.初期化
インタフェースモジュールを ImgOpen 関数で初期化します。
初期化が正常終了すると、以後、インタフェースモジュールへのアクセスが可能となります。
3.2 値化処理の設定
ImgSetBinarizationConfig 関数にて、2 値化処理設定を行います。
4.ラベリング処理の設定
ImgSetLabelingConfig 関数にて、ラベリング処理時の連結数を選択します。
5.キャプチャ準備~キャプチャ開始~キャプチャ終了
前述の キャプチャ手順と同様の処理を行ってください。
6.描画、画像処理
取得したキャプチャデータを元に、画像処理、描画等を行います。
7.終了処理
ImgClose 関数でデバイスの終了処理を行います。アプリケーションでは、必ずクローズ処理を
行ってから終了してください。
© 2003, 2016 Interface Corporation. All rights reserved.
24
GPC-5520 Help for Windows
ラベリング処理画像による画像処理結果の取得
55x5 系,55x6 系,PEX-H531322 専用です。
1.初期化
インタフェースモジュールを ImgOpen 関数で初期化します。
初期化が正常終了すると、以後、インタフェースモジュールへのアクセスが可能となります。
3.2 値化処理の設定
ImgSetBinarizationConfig 関数にて、2 値化処理設定を行います。
3.ラベリング処理の設定
ImgSetLabelingConfig 関数にて、ラベリング処理時の連結数を選択します。
4.転送領域の指定
ラベリング画像に対する各ブロックの画像処理結果を取得する為には、ラベリング画像も同時
にキャプチャする必要があります。
アプリケーションにて画像と画像処理結果用のバッファ(メモリ領域)を用意し、ImgSetBuffer
関数(または ImgSetBufferVB 関数)でその領域の先頭アドレスとバッファサイズを設定してく
ださい。
バッファを設定していない場合、ImgStartCapture 関数実行時にエラーとなります。
5.バスマスタ転送開始
ImgStartCapture 関数の引数 dwStartMode に IFIMG_DMACAPTURE_START を指定して、キャプチャ
を開始します。
6.各ブロックの面積値、重心値、フェレ径、慣性等価楕円の傾き角
ImgGetMeasurementValueLBL 関数でラベル数とラベル付けされたブロックの面積値、重心値、
フェレ径、慣性等価楕円の傾き角を取得します。
7.終了処理
ImgClose 関数でデバイスの終了処理を行います。アプリケーションでは、必ずクローズ処理を
行ってから終了してください。
© 2003, 2016 Interface Corporation. All rights reserved.
25
GPC-5520 Help for Windows
スーパーインポーズ
PCI-540111、PEX-H550411、CPZ-550411 専用です。
1.初期化
インタフェースモジュールを ImgOpen 関数で初期化します。
初期化が正常終了すると、以後、インタフェースモジュールへのアクセスが可能となります。
2.スーパーインポーズ画像の作成
スーパーインポーズ用の RGB24bit のビットマップ形式の画像データを作成します。
3.スーパーインポーズ画像の設定
ImgSetImposeImage 関数で、デバイスのオンボードメモリへ画像データを転送します。
4.スーパーインポーズ画像の有効
ImgSetImposeImage 関数で、スーパーインポーズの設定と、スーパーインポーズを有効にしま
す。
5.終了処理
ImgClose 関数でデバイスの終了処理を行います。アプリケーションでは、必ずクローズ処理を
行ってから終了してください。
© 2003, 2016 Interface Corporation. All rights reserved.
26
GPC-5520 Help for Windows
3.3
インタフェースモジュール固有情報
●PCI-530111 固有情報
弊社タフコン製品(ITC-x5537(y))、弊社 I/O タッチパネル CD シリーズ(TIO-N5537x(y))、弊社マザコ
ン製品(IMC-T5541(y))、エコ 3 製品(ECC-xxxxxx)に搭載されている画像機能には、使用できる関数に
制限があります。
対象型式は、デバイスマネージャ上で下記のように表示されます。
・CH1 のデバイス「Interface PCI-530111<CH1>」
・CH2 のデバイス「Interface PCI-530111<CH2>」
・CH3 のデバイス「Interface PCI-530111<CH3>」
上記製品は画像デバイスが 3 個搭載されている製品です。
そのため、3 つのデバイスのそれぞれにデバイス名が割り振られます。
各関数による制御を行う際は、それぞれでデバイスオープンを行い、制御を行ってください。
またタフコン製品(ITC-x5537(y))は、DIO 機能を GPC-2000 と共用で使用する事が出来ます。
各デバイスで制御できるビットは以下のようになります。
GPC-2000 での DI/DO の制御方法は、GPC-2000 の Help を参照してください。
※マザコン製品(IMC-T5541(y))は GPC-2000 では使用出来ません。
使用するドライバ
制御可能な端子
GPC-2000
IN/OUT32 ~ IN/OUT1
GPC-5520(CH1)
GPC-5520(CH2)
GPC-5520(CH3)
IN/OUT8 ~ IN/OUT1
IN/OUT16 ~ IN/OUT9
IN/OUT24 ~ IN/OUT17
© 2003, 2016 Interface Corporation. All rights reserved.
27
GPC-5520 Help for Windows
ImgInputDI関数, ImgOutputDO関数を実行した場合、それぞれ以下の入出力ピンを制御します。
<CH1 のデバイス>
デバイスの
ピン番号
ImgInputDI関数で
制御する INx
デバイスの
ピン番号
ImgOutputDO関数で
制御する OUTx
<CH2 のデバイス>
デバイスの
ピン番号
ImgInputDI関数で
制御する INx
デバイスの
ピン番号
ImgOutputDO関数で
制御する OUTx
IN8
IN7
・・・
IN2
IN1
IN8
IN7
・・・
IN2
IN1
OUT8
OUT7
・・・
OUT2
OUT1
OUT8
OUT7
・・・
OUT2
OUT1
IN16
IN15
・・・
IN10
IN9
IN8
IN7
・・・
IN2
IN1
OUT16
OUT15
・・・
OUT10
OUT9
OUT8
OUT7
・・・
OUT2
OUT1
・・・
IN18
IN17
・・・
IN2
IN1
・・・
OUT18
OUT17
・・・
OUT2
OUT1
<CH3 のデバイス>
IMC-T5541(y)では制御することが出来ません。
デバイスの
IN24
IN23
ピン番号
ImgInputDI関数で
IN8
IN7
制御する INx
IMC-T5541(y)では制御することが出来ません。
デバイスの
OUT24
OUT23
ピン番号
ImgOutputDO関数で
OUT8
OUT7
制御する OUTx
© 2003, 2016 Interface Corporation. All rights reserved.
28
GPC-5520 Help for Windows
使用可能関数
・ImgOpen
・ImgClose
・ImgGetDeviceInfo
・ImgGetCaptureStatus
・ImgSetBuffer
・ImgGetMemPtrValue
・ImgStartCapture
・ImgStopCapture
・ImgSetPosition
・ImgSetOutputMode
・ImgInputDI
・ImgOutputDO
・ImgSetEventMask
・ImgGetEventMask
・ImgSetEvent
・ImgSetBufferVB
・ImgSetCaptureConfig
・ImgClipData
・IfSaveBitMapFile
・ImgSetDecoderConfig
・ImgSetEncoderConfig
・ImgSetGainControl
・ImgSetBlankingLevel
・ImgSetSyncErrorDetection
・ImgGetCameraConnectionStatus
・ImgGetOsArchitecture
© 2003, 2016 Interface Corporation. All rights reserved.
29
GPC-5520 Help for Windows
●PCI-550231, PEX-H550411, CPZ-550411 固有情報
弊社タフコン製品(ITC-x5538(y))、弊社 I/O タッチパネル CD シリーズ(TIO-N5538x(y))、弊社マザコ
ン製品(IMC-T5540(y))、エコ 3 製品(ECC-xxxxxx), PEX-H550411、CPZ-550411 に搭載されている画像
機能には、使用できる関数に制限があります。
製品名
タフコン製品(ITC-x5539(y))
I/O タッチパネル CD シリーズ(TIO-N5539x(y))
マザコン製品(IMC-T5542(y))
エコ 3 製品(ECC-xxxxxx)
PEX-H550411
CPZ-550411
デバイス名
DIO 機能
PCI-550231
サポート
PEX-H550411
CPZ-550411
サポート
サポート
タフコン、I/O タッチパネル、マザコン、エコ 3 製品は、DIO 機能を GPC-2000 と共用で使用する事が出
来ます。
各デバイスで制御できるビットは以下のようになります。
GPC-2000 での DI/DO の制御方法は、GPC-2000 の Help を参照してください。
使用するドライバ
制御可能な端子
GPG-2000
IN/OUT32 ~ IN/OUT1
GPG-5520
IN/OUT8 ~ IN/OUT1
ImgInputDI関数, ImgOutputDO関数を実行した場合、それぞれ以下の入出力ピンを制御します。
デバイスの
ピン番号
ImgInputDI関数で
制御する INx
デバイスの
ピン番号
ImgOutputDO関数で
制御する OUTx
IN8
IN7
・・・
IN2
IN1
IN8
IN7
・・・
IN2
IN1
OUT8
OUT7
・・・
OUT2
OUT1
OUT8
OUT7
・・・
OUT2
OUT1
© 2003, 2016 Interface Corporation. All rights reserved.
30
GPC-5520 Help for Windows
使用可能関数
・ImgOpen
・ImgClose
・ImgGetDeviceInfo
・ImgGetCaptureStatus
・ImgSetBuffer
・ImgGetMemPtrValue
・ImgStartCapture
・ImgStopCapture
・ImgSetPosition
・ImgSetOutputMode
・ImgInputDI
・ImgOutputDO
・ImgSetEventMask
・ImgGetEventMask
・ImgSetEvent
・ImgSetBufferVB
・ImgSetChannel
・ImgSetCaptureConfig
・ImgClipData
・IfSaveBitMapFile
・ImgSetDecoderConfig
・ImgSetEncoderConfig
・ImgSetGainControl
・ImgSetBlankingLevel
・ImgSetSyncErrorDetection
・ImgGetCameraConnectionStatus
・ImgGetOsArchitecture
© 2003, 2016 Interface Corporation. All rights reserved.
31
GPC-5520 Help for Windows
●PCI/CPZ-540111, PEX-H540111 固有情報
弊社タフコン製品(ITC-x5539(y))、弊社 I/O タッチパネル CD シリーズ(TIO-N5539x(y))、弊社マザ
コン製品(IMC-T5542(y))、エコ 3 製品(ECC-xxxxxx)、PEX-H550411、CPZ-550411 には、スーパーイ
ンポーズ機能が搭載しています。
製品名
タフコン製品(ITC-x5539(y))
I/O タッチパネル CD シリーズ(TIO-N5539x(y))
マザコン製品(IMC-T5542(y))
エコ 3 製品(ECC-xxxxxx)
PEX-H550411
CPZ-550411
デバイス名
DIO 機能
PCI-540111
サポート
PEX-H540111
CPZ-540111
未サポート
未サポート
スーパーインポーズを制御する機能に特化されたデバイスです。キャプチャ、画像処理全般の機能
はご利用できません。
スーパーインポーズの機能については、「4.6 動作仕様」-「■ スーパーインポーズ機能」を参照し
てください。
タフコン、I/O タッチパネル、マザコン、エコ 3 製品は、DIO 機能を GPC-2000 と共用で使用する事
が出来ます。
各デバイスで制御できるビットは以下のようになります。
GPC-2000 での DI/DO の制御方法は、GPC-2000 の Help を参照してください。
使用するドライバ
制御可能な端子
GPC-2000
IN/OUT16 ~ IN/OUT1
GPC-5520
IN/OUT16 ~ IN/OUT9
ImgInputDI関数, ImgOutputDO関数を実行した場合、それぞれ以下の入出力ピンを制御します。
デバイスの
ピン番号
ImgInputDI関数で
制御する INx
デバイスの
ピン番号
ImgOutputDO関数で
制御する OUTx
IN16
IN15
・・・
IN10
IN9
IN8
IN7
・・・
IN2
IN1
OUT16
OUT15
・・・
OUT10
OUT9
OUT8
OUT7
・・・
OUT2
OUT1
© 2003, 2016 Interface Corporation. All rights reserved.
32
GPC-5520 Help for Windows
3.4
クラスライブラリの参照方法
.NET において DLL 関数の定義を容易にする為にクラスライブラリを用意しています。まず下の
ように参照の設定を行います。
クラスライブラリのソースファイルも用意しています。DLL 関数の呼び出しを貸すカスタマイズ
したい場合は、クラスライブラリのソースを参照してください。
GPC-5520 をインストールしても、DLL は存在しません。用意しているソースファイルからビルド
を行ない DLL を事前に作成してください。
IFCIMG クラスは x86 専用の定義です。以前のバージョンとの互換性のために残されています。
新たにアプリケーションを作成される場合には、IFCIMG_ANY クラス(x86、x64 共用)の定義をご
使用下さい。
・Visual C# .NET, Visual Basic .NET の場合
Visual Studio のメニューの「プロジェクト」の「参照の追加」を選択してください。
参照」ボタンをクリックして参照したいクラスライブラリ DLL を指定します。
<インストール先>\interface\GPC5520\samples\CS_NET\IFCIMG\bin\release\IFCIMG.dll
<インストール先>\interface\GPC5520\samples\CS_NET\IFCSAVEFIL\
bin\release\IFCSAVEFILE.dll
<インストール先>\interface\GPC5520\samples\VB_NET\IFCIMG\bin\release\IFCIMG.dll
<インストール先>\interface\GPC5520\samples\VB_NET\IFCSAVEFIL\
bin\release\IFCSAVEFILE.dll
「選択されたコンポーネント」に指定した DLL が表示されます。
「OK」ボタンをクリックすると設定は完了です。
次にソースのヘッダで各言語毎に下記のように InterfaceCorpDllWrap の名前空間を追加すれば
DLL 関数を次章の「使用例」の方法で呼び出すことができるようになります。
・Borland Delphi 8 for the Microsoft .NET Framework の場合
Delphi 8 のメニューの「プロジェクト」の「参照の追加」を選択してください。
「参照」ボタンをクリックして参照したいクラスライブラリ DLL を指定します。
<インストール先>\interface\GPC5520\samples\DELPHI_NET\IFCIMG\IFCIMG.DLL
<インストール先>\interface\GPC5520\samples\DELPHI_NET\IFCSAVEFILE\IFCSAVEFILE.DLL
「新しい参照」に指定した DLL が表示されます。
「OK」ボタンをクリックすると設定は完了です。
また、プロジェクト参照を使用する事も出来ます。詳しくは、Delphi8 のヘルプ、付属の.NET
用サンプルプログラムを参照して下さい。
・Visual C# .NET の場合
using
InterfaceCorpDllWrap;
・Visual Basic .NET の場合
Imports InterfaceCorpDllWrap
・Delphi 8 の場合
uses
InterfaceCorpDllWrap
InterfaceCorpDllWrap.IFCIMG(コールバック関数を使用する場合)
© 2003, 2016 Interface Corporation. All rights reserved.
33
GPC-5520 Help for Windows
■参照渡しする変数について
各関数はアンマネージ DLL 関数です。マネージオブジェクトの参照渡しをする際は、
GCHandle 構造体を使用してマネージオブジェクトがコレクトされるのを防いでください。
■構造体について
StructLayout クラスのオプションに「LayoutKind.Sequential」を指定しています。
© 2003, 2016 Interface Corporation. All rights reserved.
34
GPC-5520 Help for Windows
第4章 リファレンス
4.1
関数一覧
No
関数名
●初期化関連
1
ImgOpen
2
ImgClose
3
ImgGetDeviceInfo
●キャプチャ/映像出力関連
4
ImgGetCaptureStatus
5
ImgGetCaptureStatusEx
6
ImgSetBuffer
7
ImgGetMemPtrValue
8
ImgStartCapture
9
ImgStopCapture
10 ImgSetPosition
11 ImgSetOutputMode
●2 値画像処理関連
12 ImgSetBinarizationConfig
13 ImgSetMeasurementRange
14 ImgGetMeasurementValue
15 ImgSetTriggerConfig
●汎用入出力関連
16 ImgInputDI
17 ImgOutputDO
●割り込み関連
18 ImgSetEventMask
19 ImgGetEventMask
20 ImgSetEvent
21 ImgSetEventEx
●PCI/CTP/CPZ-553x シリーズ
22 ImgSetChannel
23 ImgSetCaptureConfig
●Visual Basic 専用関数
24 ImgSetBufferVB
●SDRAM 関連
25 ImgAllocateSDRAM
26 ImgFreeSDRAM
27 ImgSetSDRAM
28 ImgReadCaptureData
機能
デバイスをオープンします。
デバイスをクローズします。
型式、RSW1,RSW2 の設定を取得します。
キャプチャ状態を取得します。
キャプチャ状態を取得します。
(PCI/CTP/CPZ-5521/5523/5531/5533 用)
画像データ転送先バッファを設定します。(64bit 環境専用関数)
確保したメモリの先頭アドレスを取得します。
キャプチャを開始します。
キャプチャを停止します。
水平/垂直方向の取り込み開始位置を設定します。
映像出力信号の出力モードを設定します。
2 値化処理の設定を行います。
2 値画像処理の測定範囲を設定します。
2 値画像処理の測定結果を取得します。
トリガ発生条件を設定します。
汎用入力の状態を取得します。
汎用出力を制御します。
割り込みマスクの設定を行います。
割り込みマスクの設定を取得します。
割り込みの設定を行います。
割り込みの設定を行います。
使用チャンネルを設定します。
フレーム間引き設定、指定タイミングでのチャンネルの切り換え設
定を行います。
画像データ転送先バッファを設定します。
SDRAM 内に領域を確保します。
SDRAM 内の領域を開放します。
キャプチャする SDRAM 領域を指定します。
指定した SDRAM 領域に対して、キャプチャデータを取り出します。
© 2003, 2016 Interface Corporation. All rights reserved.
35
GPC-5520 Help for Windows
29
ImgBmCaptureData
30
ImgClipData
●パターン一致関連
31 ImgWriteComparisonData
32 ImgSetComparisonConfig
33 ImgGetMatchingLevel
●画像計測関連
34 ImgSetColorIngredient
35 ImgGetMeasurementValueEx
●画像変換関連
36 ImgSetConversionConfig
37 ImgSetLUT
38 ImgSetFilter
39 ImgSetDil_Er
●静止画出力関連
40 ImgSetStillPictureData
41 ImgGetStillPictureData
●ラベリング関連
42 ImgSetLabelingConfig
43 ImgGetMeasurementValueLBL
指定した SDRAM 領域に対して、キャプチャデータをバスマスタ方式
で取り出します。
指定したバッファ領域に対して、キャプチャデータを取り出しま
す。
比較データを書き込みます。
比較条件を指定します。
パターン一致率を取得します。
濃度分布処理を行なう色成分を指定します。
面積値、重心値、フェレ径、慣性等価楕円の傾き角を取得します。
階調変換処理、フィルタ処理、膨張・収縮処理を有効/無効にします。
階調変換テーブルを設定します。
フィルタ処理を選択します。
膨張・収縮処理の設定を行ないます。
映像出力用の静止画像をセットします。
映像出力用の静止画像を取得します。
ラベリング処理する際の連結手段を選択します。
ラベル付けされた各ブロックの面積値、重心値、フェレ径、慣性等
価楕円の傾き角を取得します。
●ファイル保存関連
ビットマップ形式でキャプチャデータを保存します。
44 IfSaveBitMapFile
●ビデオデコーダ/エンコーダ制御関連
ビデオデコーダの設定を行います。
45 ImgSetDecoderConfig
ビデオエンコーダの設定を行います。
46 ImgSetEncoderConfig
ゲイン調整を行います。
47 ImgSetGainControl
ブランキングレベルの調整を行います。
48 ImgSetBlankingLevel
●同期信号異常検出関連
49 ImgSetSyncErrorDetection
●カメラ接続関連
50 ImgGetCameraConnectionSta
tus
●OS 情報確認
51 ImgGetOsArchitecture
●PEX-H531322 専用制御
52 ImgSetCLCaptureConfig
53 ImgSetCCMode
54 ImgOutputPluse
55 ImgSerialSend
56 ImgSerialReceive
57 ImgGetSerialStatus
58 ImgSerialClear
59 ImgOutputPower
異常検出を行う同期信号を選択します。
カメラとの接続状態を取得します。
OS 情報を取得します。
接続カメラの設定を行います。
CC 信号の出力方式を設定します。
CC 信号を 1 パルス分出力します。
シリアル通信方式でカメラへデータを送信します。
シリアル通信方式でカメラからのデータを受信します。
シリアル通信方式によるデータ受信状態を取得します。
シリアル通信用の FIFO をクリアします。
PoCL 規格カメラに外部電源を供給します。
© 2003, 2016 Interface Corporation. All rights reserved.
36
GPC-5520 Help for Windows
60 ImgSetEncodeCntMode
61 ImgSetCounterCycle
62 ImgGetCounterValue
●スーパーインポーズ機能
63 ImgSetImposeImage
64
65
ImgSetImposeTime
ImgSetImposeDate
エンコーダパルスカウンタの設定を行います。
カウンタの周期を設定します。
カウンタ値を取得します。
スーパーインポーズ画像の設定、スーパーインポーズの有効/無効
の切替え、演算方法を設定します。
スーパーインポーズする時刻の設定を行います。
スーパーインポーズする日時の設定を行います。
© 2003, 2016 Interface Corporation. All rights reserved.
37
GPC-5520 Help for Windows
4.2
機能対応一覧
●各インタフェースモジュール型式による対応関数一覧
関数名
5521
5531
5522
5532
5523
5533
5524
5534
5525
5535
5526
5536
530115
530215
540111
ImgOpen
5520
5530
550131
550135
530111
550231
○
○
○
○
○
○
○
○
○
○
ImgClose
○
○
○
○
○
○
○
○
○
○
ImgGetDeviceInfo
○
○
○
○
○
○
○
○
○
○
ImgGetCaptureStatus
○
○
○
○
○
○
○
○
○
-
ImgGetCaptureStatusEx
-
○
-
○
-
-
-
-
-
-
ImgSetBuffer
○
○
○
○
○
○
○
○
○
-
ImgGetMemPtrValue
○
○
○
○
○
○
○
○
○
-
ImgStartCapture
○
○
○
○
○
○
○
○
○
-
ImgStopCapture
○
○
○
○
○
○
○
○
○
-
ImgSetPosition
○
○
○
○
○
○
○
○
○
-
ImgSetOutputMode
○
○
○
○
○
○
○
○
○
-
ImgSetBinarizationConfig
-
-
○
○
○
○
○
-
○
-
ImgSetMeasurementRange
-
-
○
○
○
○
○
-
○
-
ImgGetMeasurementValue
-
-
○
○
○
○
○
-
○
-
-
ImgSetTriggerConfig
-
-
○
○
○
○
○
-
○
ImgInputDI
○
○
○
○
○
○
○
○
○
○
ImgOutputDO
○
○
○
○
○
○
○
○
○
○
ImgSetEventMask
○
○
○
○
○
○
○
○
○
○
ImgGetEventMask
○
○
○
○
○
○
○
○
○
○
ImgSetEvent
○
○
○
○
○
○
○
○
○
○
ImgSetEventEx
-
○
-
○
-
-
-
-
-
○
ImgSetBufferVB
○
○
○
○
○
○
○
○
○
-
ImgSetChannel
○※
○※
○※
○※
○※
○※
○※
○
○
-
ImgSetCaptureConfig
○
○
○
○
○
○
○
○
○
-
ImgAllocateSDRAM
-
○
-
○
-
-
-
-
-
-
ImgFreeSDRAM
-
○
-
○
-
-
-
-
-
-
ImgSetSDRAM
-
○
-
○
-
-
-
-
-
-
-
ImgReadCaptureData
-
○
-
○
-
-
-
-
-
ImgBmCapture
-
○
-
○
-
-
-
-
-
-
ImgClipData
○
○
○
○
○
○
○
○
○
-
ImgWriteComparisonData
-
-
-
○
-
-
-
-
-
-
ImgSetComparisonConfig
-
-
-
○
-
-
-
-
-
-
ImgGetMatchingLevel
-
-
-
○
-
-
-
-
-
-
IfSaveBitMapFile
○
○
○
○
○
○
○
○
○
-
ImgSetColorIngredient
-
-
-
-
○
○
○
-
-
-
ImgGetMeasurementValueEx
-
-
-
-
○
○
○
-
-
-
ImgSetConversionConfig
-
-
-
-
-
○
○
-
-
-
ImgSetLUT
-
-
-
-
-
○
○
-
-
-
ImgSetFilter
-
-
-
-
-
○
○
-
-
-
ImgSetDil_Er
ImgSetStillPictureData
ImgGetStillPictureData
ImgSetLabelingConfig
ImgGetMeasurementValueLBL
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
○
○
○
-
-
○
○
○
○
○
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
© 2003, 2016 Interface Corporation. All rights reserved.
38
GPC-5520 Help for Windows
関数名
ImgSetDecoderConfig
ImgSetEncoderConfig
ImgSetGainControl
ImgSetBlankingLevel
ImgSetSyncErrorDetection
ImgGetCameraConnectionSta
tus
ImgGetOsArchitecture
ImgSetCLCaptureConfig
ImgSetCCMode
ImgOutputPluse
ImgSerialSend
ImgSerialReceive
ImgGetSerialStatus
ImgSerialClear
ImgOutputPower
ImgSetEncodeCntMode
ImgSetCounterCycle
ImgGetCounterValue
ImgSetImposeImage
ImgSetImposeTime
ImgSetImposeDate
5520
5530
550131
550135
530111
550231
○
○
○
○
○
5521
5531
5522
5532
5523
5533
5524
5534
5525
5535
5526
5536
530115
530215
540111
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
-
-
-
-
-
○
○
○
○
○
○
○
○
○
-
○
-
-
-
-
-
-
-
-
-
-
-
-
-
-
○
-
-
-
-
-
-
-
-
-
-
-
-
-
-
○
-
-
-
-
-
-
-
-
-
-
-
-
-
-
○
-
-
-
-
-
-
-
-
-
-
-
-
-
-
○
-
-
-
-
-
-
-
-
-
-
-
-
-
-
○
-
-
-
-
-
-
-
-
-
-
-
-
-
-
○
-
-
-
-
-
-
-
-
-
-
-
-
-
-
○
-
-
-
-
-
-
-
-
-
-
-
-
-
-
○
-
-
-
-
-
-
-
-
-
-
-
-
-
-
○
-
-
-
-
-
-
-
-
-
-
-
○
○
○
© 2003, 2016 Interface Corporation. All rights reserved.
39
GPC-5520 Help for Windows
インタフェースモジュールの CH 番号によって、一部の機能が対応・未対応となっています。
版数、CH 番号の確認方法は User’s Manual をご参照ください。
型式
PCI-5520
PCI-5521
PCI-5522
PCI-5523
PCI-5530
PCI-5531
PCI-5532
PCI-5533
CTP/CPZ-552
0
CTP/CPZ-552
1
CTP/CPZ-552
2
CTP/CPZ-552
3
CTP/CPZ-553
0
CTP/CPZ-553
1
CTP/CPZ-553
2
CTP/CPZ-553
3
CSI/CBI-530
115
CSI/CBI-530
215
版数/CH 番号
解像度
320×240
160×120
12 版
12 版/CH01
12 版/CH02
12 版/CH03 以降
12 版
12 版/CH01 以降
12 版
12 版/CH01
12 版/CH02 以降
12 版
12 版/CH01 以降
12 版
12 版/CH01
12 版/CH02 以降
12 版
12 版/CH01 以降
12 版
12 版/CH01 以降
12 版
12 版/CH01 以降
12 版
12 版/CH01 以降
12 版
12 版/CH01 以降
12 版
12 版/CH01 以降
12 版
12 版/CH01 以降
12 版
12 版/CH01 以降
12 版
12 版/CH01 以降
12 版
12 版/CH01 以降
12 版
12 版/CH01 以降
12 版 以降
-
-
○
○
○
○
-
○
○
○
○
-
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
-
-
○
○
○
○
-
○
○
○
○
-
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
R
8bit
-
-
○
○
○
○
-
○
○
○
○
-
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
12 版 以降
○
○
○
カラーフォーマット
G
B
RGB
8bit
8bit
16bit
-
-
-
-
-
-
○
○
-
○
○
○
○
○
-
○
○
○
-
-
-
○
○
-
○
○
○
○
○
-
○
○
○
-
-
-
○
○
-
○
○
○
○
○
-
○
○
○
○
○
-
○
○
○
○
○
-
○
○
○
○
○
-
○
○
○
○
○
-
○
○
○
○
○
-
○
○
○
○
○
-
○
○
○
○
○
-
○
○
○
○
○
-
○
○
○
○
○
-
○
○
○
○
○
-
○
○
○
○
○
○
○
© 2003, 2016 Interface Corporation. All rights reserved.
40
○
○
SDRAM データのメイ
ンメモリへの DMA 転
送
-
-
-
-
-
○
-
-
-
-
○
-
-
-
-
○
-
-
-
○
-
-
-
○
-
-
-
○
-
-
-
○
-
-
-
○
-
-
GPC-5520 Help for Windows
4.3
関数個別説明
1. ImgOpen
【機能】
カラー画像入力インタフェースモジュールのオープンを行い、以後のインタフェースモジュー
ルへのアクセスを行えるようにします。
【書式】
●C 言語(x86 専用)
HANDLE ImgOpen(
LPCTSTR
lpszName
);
●C 言語(x64 専用)
HANDLE ImgOpen(
LPCSTR
lpszName
);
//
デバイス名
//
デバイス名
●Visual Basic
Declare Function ImgOpen Lib "IfImg.dll"( _
ByVal LpszName As String _ ‘ デバイス名
)As Long
●Delphi
function ImgOpen(
LpszName: String
// デバイス名
):THandle; stdcall; external 'IfImg.dll';
●Visual C# .NET(x86、x64 共用)
[DllImport("IfImg.dll", CharSet=CharSet.Ansi)]
public static extern IntPtr ImgOpen (
string
LpszName
// デバイス名
);
●Visual C# .NET(x86 専用)
[DllImport("IfImg.dll", CharSet=CharSet.Ansi)]
public static extern uint ImgOpen (
string
LpszName
// デバイス名
);
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgOpen Lib "IfImg.DLL"(
ByVal LpszName As String
‘ デバイス名
)As IntPtr
●Visual Basic .NET
Declare Function ImgOpen Lib "IfImg.DLL"(
© 2003, 2016 Interface Corporation. All rights reserved.
41
GPC-5520 Help for Windows
ByVal LpszName
)As Integer
As String
‘
デバイス名
●Delphi 8
class function ImgOpen(
lpszName: String;
): Integer; static;
【パラメータ】
lpszName
オープンするインタフェースモジュールのデバイス名を指定してください。
デバイス名は、以下のようになります。
インタフェースモジュール型式
デバイス名
PCI/CTP/CPZ-5520 PCI/CTP/CPZ-5530
IFIMGSTx(x : 1~256)
CBI-530115(Tx) CSI-530115 PEX/LPC-530115
PCI/CTP/CPZ-550131 PCI/CTP/CPZ-550135
PEX-530135 PCI-530111 PCI-550231
PCI-5521 PCI-5531
IFIMGMEMx(x:1~256)
CTP/CPZ-5521 CTP/CPZ-5531
PCI-5522 PCI-5532
IFIMGBINx(x : 1~256)
CTP/CPZ-5522 CTP/CPZ-5532
CBI-530215(Tx) CSI-530215 PEX/LPC-530215
PCI-5523 PCI-5533
IFIMGPTNx(x : 1~256)
CTP/CPZ-5523 CTP/CPZ-5533
PCI-5524 PCI-5534
IFIMGMSRx(x : 1~16)
CTP/CPZ-5524 CTP/CPZ-5534
PCI-5525 PCI-5535
IFIMGCNVx(x : 1~16)
CTP/CPZ-5525 CTP/CPZ-5535
PCI-5526 PCI-5536
IFIMGLBLx(x : 1~16)
CTP/CPZ-5526 CTP/CPZ-5536
PEX-H531322
IFIMGLBLx(x : 17~32)
PCI-540111
IFIMGST2
PEX-H540111 CPZ-550411
IFIMGSTx(x : 17~32)
【戻り値】
ImgOpen 関数が正常に終了した場合には、有効なハンドルが返されます。
他の関数は、本関数により取得したハンドルを使用してデバイスの制御を行います。
オープンに失敗した場合には、INVALID_HANDLE_VALUE(FFFFFFFFh)が返されます。
© 2003, 2016 Interface Corporation. All rights reserved.
42
GPC-5520 Help for Windows
【備考】
●デバイス名について
オープンするにはデバイス名を指定します。
カラー画像入力インタフェースモジュールのデバイス名、RSW1,RSW2 の設定値によって割り当
てられます。
例)PCI-5520 の場合
RSW2
RSW1
デバイス名
0
0
IFIMGST1
0
1
IFIMGST2
:
:
:
0
F
IFIMGST16
1
0
IFIMGST17
1
1
IFIMGST18
:
:
:
F
F
IFIMGST256
CBI-530115(Tx)、CSI-53015、CBI-530215(Tx) 、CSI-53025 のデバイス名はカードバス ID 設定
ユーティリティで設定した ID 番号で割り当てられます。(1~16 まで)
例)CBI-530115 の場合
ID 番号
デバイス名
0
IFIMGST1
1
IFIMGST2
:
:
E
IFIMGST15
F
IFIMGST16
PCI/CTP/CPZ-5524 以降の型式と PEX/LPC-530x15 のデバイス名は RSW1 の設定値です。
例)PCI-5524 の場合
RSW1
デバイス名
0
IFIMGMSR1
1
IFIMGMSR2
:
:
F
IFIMGMSR16
複数枚ご使用になる場合は、制御するインタフェースモジュールのデバイス名を事前にご確認
ください。
各デバイス名は、デバイスマネージャにて確認できます。
キャプチャプログラム(ImgCapture.exe)、または診断プログラム(ImgDiag.exe)でも確認で
きます。
© 2003, 2016 Interface Corporation. All rights reserved.
43
GPC-5520 Help for Windows
【使用例】
●C 言語
HANDLE hDeviceHandle;
hDeviceHandle = ImgOpen(“IFIMGST1”);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
lpszName = “IFIMGST1”
hDeviceHandle = ImgOpen(lpszName)
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
lpszName := 'IFIMGST1';
hDeviceHandle := ImgOpen(lpszName);
●Visual C# .NET
IntPtr hDeviceHandle;
hDeviceHandle = IFCIMG_ANY.ImgOpen(“IFIMGST1”);
●Visual Basic .NET
Dim lpszName As String
Dim hDeviceHandle As IntPtr
lpszName = “IFIMGST1”
hDeviceHandle = IFCIMG_ANY.ImgOpen(lpszName)
●Delphi 8
var
lpszName: String;
begin
lpszName := ‘IFIMGST1;
hDeviceHandle := IFCIMG.ImgOpen(lpszName);
デバイス名「IFIMGST1」のデバイスをオープンします。
© 2003, 2016 Interface Corporation. All rights reserved.
44
GPC-5520 Help for Windows
2. ImgClose
【機能】
カラー画像入力インタフェースモジュールをクローズします。
インタフェースモジュールアクセスのために使用されていた各種リソースの解放を行い、以後
のインタフェースモジュールへのアクセスを禁止します。
【書式】
●C 言語
INT ImgClose(
HANDLE
hDeviceHandle
);
//
デバイスハンドル
●Visual Basic
Declare Function ImgClose Lib "IfImg.dll"( _
ByVal
hDeviceHandle
As Long _ ‘ デバイスハンドル
)As Long
●Delphi
function ImgClose (
hDeviceHandle: THandle
// デバイスハンドル
): Integer; stdcall; external 'IfImg.dll';
●Visual C# .NET(x86、x64 共用)
[DllImport("IfImg.dll")]
public static extern int ImgClose(
IntPtr
hDeviceHandle
);
●Visual C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgClose(
uint
hDeviceHandle
);
//
デバイスハンドル
//
デバイスハンドル
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgClose Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As IntPtr ‘ デバイスハンドル
)As Integer
●Visual Basic .NET(x86 専用)
Declare Function ImgClose Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As Integer ‘ デバイスハンドル
)As Integer
© 2003, 2016 Interface Corporation. All rights reserved.
45
GPC-5520 Help for Windows
●Delphi 8
class function ImgClose(
hDeviceHandle: Integer
): Integer; static;
【パラメータ】
hDeviceHandle
ImgOpen関数で取得したデバイスハンドルを指定してください。
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、
『4.5 戻り値一覧』をご参照くださ
い。
【備考】
キャプチャ中の場合、キャプチャ処理を停止します。
インタフェースモジュールクローズ後の各種設定はクリアされます。
再度、インタフェースモジュールへのアクセスを行う場合にはオープン処理(ImgOpen関数)を
呼び出してください。
【使用例】
●C 言語
HANDLE hDeviceHandle;
int nRet;
hDeviceHandle = ImgOpen(“IFIMGST1”);
:
:
nRet = ImgClose(hDeviceHandle);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim nRet As Long
lpszName = “IFIMGST1”
hDeviceHandle = ImgOpen(lpszName)
:
:
nRet = ImgClose(hDeviceHandle)
© 2003, 2016 Interface Corporation. All rights reserved.
46
GPC-5520 Help for Windows
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
nRet: Integer;
lpszName := 'IFIMGST1';
hDeviceHandle := ImgOpen(lpszName);
:
:
nRet := ImgClose(hDeviceHandle);
●Visual C# .NET
IntPtr hDeviceHandle;
int nRet;
hDeviceHandle = IFCIMG_ANY.ImgOpen(“IFIMGST1”);
:
:
nRet = IFCIMG_ANY.ImgClose(hDeviceHandle);
●Visual Basic .NET
Dim lpszName As String
Dim hDeviceHandle As IntPtr
Dim nRet As Integer
lpszName = “IFIMGST1”
hDeviceHandle = IFCIMG_ANY.ImgOpen(lpszName)
:
:
nRet = IFCIMG_ANY.ImgClose(hDeviceHandle)
●Delphi 8
var
lpszName: String;
hDeviceHandle: Integer;
nRet: Integer;
begin
lpszName := ' IFIMGST1';
hDeviceHandle := IFCIMG.ImgClose(lpszName);
:
:
nRet := IFCIMG.ImgClose(hDeviceHandle);
デバイス名「IFIMGST1」のデバイスのクローズ処理を行います。
© 2003, 2016 Interface Corporation. All rights reserved.
47
GPC-5520 Help for Windows
3. ImgGetDeviceInfo
【機能】
カラー画像入力インタフェースモジュールのデバイス情報(型式、RSW1,RSW2 の設定値)を取
得します。
【書式】
●C 言語
INT ImgGetDeviceInfo(
HANDLE
hDeviceHandle,
PIMGDEVICEINFO
pDeviceInfo
// デバイスハンドル
// IMGDEVICEINFO 構造体
へのポインタ
);
●Visual Basic
Declare Function ImgGetDeviceInfo Lib "IfImg.dll"( _
ByVal
hDeviceHandle
As Long, _
‘ デバイスハンドル
ByRef
pDeviceInfo
As IMGDEVICEINFO _ ‘ IMGDEVICEINFO 構造体
への参照渡し
)As Long
●Delphi
function ImgGetDeviceInfo (
hDeviceHandle:
THandle;
var pDeviceInfo:
IMGDEVICEINFO
// デバイスハンドル
// IMGDEVICEINFO 構造体
への参照渡し
): Integer; stdcall; external 'IfImg.dll';
●Visual C# .NET(x86、x64 共用)
[DllImport("IfImg.dll")]
public static extern int ImgGetDeviceInfo(
IntPtr
hDeviceHandle,
out IMGDEVICEINFO pDeviceInfo
// デバイスハンドル
// IMGDEVICEINFO 構造体
へのポインタ
);
●Visual C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgGetDeviceInfo(
uint
hDeviceHandle,
out IMGDEVICEINFO pDeviceInfo
// デバイスハンドル
// IMGDEVICEINFO 構造体
へのポインタ
);
© 2003, 2016 Interface Corporation. All rights reserved.
48
GPC-5520 Help for Windows
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgGetDeviceInfo Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As IntPtr,
‘ デバイスハンドル
ByRef
pDeviceInfo
As IMGDEVICEINFO
‘ IMGDEVICEINFO 構造体
への参照渡し
)As Integer
●Visual Basic .NET(x86 専用)
Declare Function ImgGetDeviceInfo Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As Integer,
‘ デバイスハンドル
ByRef
pDeviceInfo
As IMGDEVICEINFO
‘ IMGDEVICEINFO 構造体
への参照渡し
)As Integer
●Delphi 8
class function ImgGetDeviceInfo (
hDeviceHandle:
Integer;
var pDeviceInfo:
IMGDEVICEINFO
// デバイスハンドル
// IMGDEVICEINFO 構造体
への参照渡し
): Integer; static;
【パラメータ】
hDeviceHandle
ImgOpen関数で取得したデバイスハンドルを指定してください。
pDeviceInfo
取得したデバイス情報を格納するデバイス情報構造体(IMGDEVICEINFO)へのポインタを指
定してください。
構造体の説明については、『4.4 構造体』をご参照ください。
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、
『4.5 戻り値一覧』をご参照くださ
い。
© 2003, 2016 Interface Corporation. All rights reserved.
49
GPC-5520 Help for Windows
【使用例】
●C 言語
HANDLE hDeviceHandle;
IMGDEVICEINFO Device;
int nRet;
hDeviceHandle = ImgOpen(“IFIMGST1”);
:
:
nRet = ImgGetDeviceInfo(hDeviceHandle, &Device);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim Device As IMGDEVICEINFO
Dim nRet As Long
lpszName = “IFIMGST1”
hDeviceHandle = ImgOpen(lpszName)
:
:
nRet = ImgGetDeviceInfo(hDeviceHandle, Device)
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
Device: IMGDEVICEINFO;
nRet: Integer;
lpszName := 'IFIMGST1';
hDeviceHandle := ImgOpen(lpszName);
:
:
nRet := ImgGetDeviceInfo(hDeviceHandle, Device);
●Visual C# .NET
IntPtr hDeviceHandle;
IFCIMG_ANY.IMGDEVICEINFO Device;
int nRet;
hDeviceHandle = IFCIMG_ANY.ImgOpen(“IFIMGST1”);
:
:
nRet = IFCIMG_ANY.ImgGetDeviceInfo(hDeviceHandle, out Device);
© 2003, 2016 Interface Corporation. All rights reserved.
50
GPC-5520 Help for Windows
●Visual Basic .NET
Dim lpszName As String
Dim hDeviceHandle As IntPtr
Dim Device As IFCIMG_ANY.IMGDEVICEINFO
Dim nRet As Integer
lpszName = “IFIMGST1”
hDeviceHandle = IFCIMG_ANY.ImgOpen(lpszName)
:
:
nRet = IFCIMG_ANY.ImgGetDeviceInfo(hDeviceHandle, Device)
●Delphi 8
var
lpszName: String;
hDeviceHandle: Integer;
Device: IFCIMG_ANY.IMGDEVICEINFO;
nRet: Integer;
lpszName := 'IFIMGST1';
hDeviceHandle := IFCIMG_ANY.ImgOpen(lpszName);
:
:
nRet := IFCIMG_ANY.ImgGetDeviceInfo(hDeviceHandle, Device);
デバイス名「IFIMGST1」のデバイス情報を取得します。
© 2003, 2016 Interface Corporation. All rights reserved.
51
GPC-5520 Help for Windows
4. ImgGetCaptureStatus
【機能】
現在のキャプチャ状態とトリガ発生状態を取得します。
【書式】
●C 言語
INT ImgGetCaptureStatus(
HANDLE
hDeviceHandle,
PIMGCAPSTATUS
pStatus
// デバイスハンドル
// IMGCAPSTATUS 構造体
へのポインタ
);
●Visual Basic
Declare Function ImgGetCaptureStatus Lib "IfImg.dll"( _
ByVal
hDeviceHandle
As Long, _
‘ デバイスハンドル
ByRef
pStatus
As IMGCAPSTATUS _
‘ IMGCAPSTATUS 構造体
への参照渡し
)As Long
●Delphi
function ImgGetCaptureStatus (
hDeviceHandle: THandle;
var pStatus:
IMGCAPSTATUS
// デバイスハンドル
// IMGCAPSTATUS 構造体
への参照渡し
): Integer; stdcall; external 'IfImg.dll';
●Visual C# .NET(x86、x64 共用)
[DllImport("IfImg.dll")]
public static extern int ImgGetCaptureStatus(
IntPtr
hDeviceHandle,
out IMGCAPSTATUS pStatus
// デバイスハンドル
// IMGCAPSTATUS 構造体
へのポインタ
);
●Visual C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgGetCaptureStatus(
uint
hDeviceHandle,
out IMGCAPSTATUS pStatus
// デバイスハンドル
// IMGCAPSTATUS 構造体
へのポインタ
);
© 2003, 2016 Interface Corporation. All rights reserved.
52
GPC-5520 Help for Windows
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgGetCaptureStatus Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As IntPtr,
‘ デバイスハンドル
ByRef
pStatus
As IMGCAPSTATUS
‘ IMGCAPSTATUS 構造体
への参照渡し
)As Integer
●Visual Basic .NET(x86 専用)
Declare Function ImgGetCaptureStatus Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As Integer,
‘ デバイスハンドル
ByRef
pStatus
As IMGCAPSTATUS
‘ IMGCAPSTATUS 構造体
への参照渡し
)As Integer
●Delphi 8
class function ImgGetCaptureStatus (
hDeviceHandle: Integer;
var pStatus:
IMGCAPSTATUS
// デバイスハンドル
// IMGCAPSTATUS 構造体
への参照渡し
): Integer; static;
【パラメータ】
hDeviceHandle
ImgOpen関数で取得したデバイスハンドルを指定してください。
pStatus
取得したキャプチャ状態を格納するキャプチャ状態構造体(IMGCAPSTATUS)へのポインタ
を指定してください。
構造体の説明については、『4.4 構造体』をご参照ください。
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、
『4.5 戻り値一覧』をご参照くださ
い。
© 2003, 2016 Interface Corporation. All rights reserved.
53
GPC-5520 Help for Windows
【使用例】
●C 言語
HANDLE hDeviceHandle;
IMGCAPSTATUS Status;
int nRet;
hDeviceHandle = ImgOpen(“IFIMGST1”);
:
:
nRet = ImgGetCaptureStatus(hDeviceHandle, &Status);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim Status As IMGCAPSTATUS
Dim nRet As Long
lpszName = “IFIMGST1”
hDeviceHandle = ImgOpen(lpszName)
:
:
nRet = ImgGetCaptureStatus(hDeviceHandle, Status)
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
Status: IMGCAPSTATUS;
nRet: Integer;
lpszName := 'IFIMGST1';
hDeviceHandle := ImgOpen(lpszName);
:
:
nRet := ImgGetCaptureStatus(hDeviceHandle, Status);
●Visual C# .NET
IntPtr hDeviceHandle;
IFCIMG_ANY.IMGCAPSTATUS Status;
int nRet;
hDeviceHandle = IFCIMG_ANY.ImgOpen(“IFIMGST1”);
:
:
nRet = IFCIMG_ANY.ImgGetCaptureStatus(hDeviceHandle, out Status);
© 2003, 2016 Interface Corporation. All rights reserved.
54
GPC-5520 Help for Windows
●Visual Basic .NET
Dim lpszName As String
Dim hDeviceHandle As IntPtr
Dim Status As IFCIMG_ANY.IMGCAPSTATUS
Dim nRet As Integer
lpszName = “IFIMGST1”
hDeviceHandle = IFCIMG_ANY.ImgOpen(lpszName)
:
:
nRet = IFCIMG_ANY.ImgGetCaptureStatus(hDeviceHandle, Status)
●Delphi 8
var
lpszName: String;
hDeviceHandle: Integer;
Status: IFCIMG.IMGCAPSTATUS;
nRet: Integer;
lpszName := 'IFIMGST1';
hDeviceHandle := IFCIMG.ImgOpen(lpszName);
:
:
nRet := IFCIMG.ImgGetCaptureStatus(hDeviceHandle, Status);
デバイス名「IFIMGST1」のキャプチャ状態を取得します。
© 2003, 2016 Interface Corporation. All rights reserved.
55
GPC-5520 Help for Windows
5. ImgGetCaptureStatusEx
【機能】
現在のキャプチャ状態とトリガ発生状態を取得します。
【書式】
●C 言語
INT ImgGetCaptureStatusEx(
HANDLE
hDeviceHandle,
PIMGCAPSTATUSEX
pStatus
// デバイスハンドル
// IMGCAPSTATUSEX 構造体
へのポインタ
);
●Visual Basic
Declare Function ImgGetCaptureStatusEx Lib "IfImg.dll"( _
ByVal
hDeviceHandle
As Long, _
‘ デバイスハンドル
ByRef
pStatus
As IMGCAPSTATUSEX _ ‘ IMGCAPSTATUSEX 構造体
への参照渡し
)As Long
●Delphi
function ImgGetCaptureStatusEx (
hDeviceHandle: THandle;
var pStatus:
IMGCAPSTATUSEX
// デバイスハンドル
// IMGCAPSTATUSEX 構造体
への参照渡し
): Integer; stdcall; external 'IfImg.dll';
●Visual C# .NET(x86、x64 共用)
[DllImport("IfImg.dll")]
public static extern int ImgGetCaptureStatusEx(
IntPtr
hDeviceHandle,
// デバイスハンドル
out IMGCAPSTATUSEX pStatus
// IMGCAPSTATUSEX 構造体
へのポインタ
);
●Visual C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgGetCaptureStatusEx(
uint
hDeviceHandle,
// デバイスハンドル
out IMGCAPSTATUSEX pStatus
// IMGCAPSTATUSEX 構造体
へのポインタ
);
© 2003, 2016 Interface Corporation. All rights reserved.
56
GPC-5520 Help for Windows
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgGetCaptureStatusEx Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As IntPtr,
‘ デバイスハンドル
ByRef
pStatus
As IMGCAPSTATUSEX
‘ IMGCAPSTATUSEX 構造体
への参照渡し
)As Integer
●Visual Basic .NET(x86 専用)
Declare Function ImgGetCaptureStatusEx Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As Integer,
‘ デバイスハンドル
ByRef
pStatus
As IMGCAPSTATUSEX
‘ IMGCAPSTATUSEX 構造体
への参照渡し
)As Integer
●Delphi 8
class function ImgGetCaptureStatusEx (
hDeviceHandle: Integer;
var pStatus:
IMGCAPSTATUSEX
// デバイスハンドル
// IMGCAPSTATUSEX 構造体
への参照渡し
): Integer; static;
【パラメータ】
hDeviceHandle
ImgOpen関数で取得したデバイスハンドルを指定してください。
pStatus
取得したキャプチャ状態を格納するキャプチャ状態構造体(IMGCAPSTATUSEX)へのポイン
タを指定してください。
構造体の説明については、『4.4 構造体』をご参照ください。
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、
『4.5 戻り値一覧』をご参照くださ
い。
© 2003, 2016 Interface Corporation. All rights reserved.
57
GPC-5520 Help for Windows
【使用例】
●C 言語
HANDLE hDeviceHandle;
IMGCAPSTATUSEX Status;
int nRet;
hDeviceHandle = ImgOpen(“IFIMGMEM1”);
:
:
nRet = ImgGetCaptureStatus(hDeviceHandle, &Status);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim Status As IMGCAPSTATUSEX
Dim nRet As Long
lpszName = “IFIMGMEM1”
hDeviceHandle = ImgOpen(lpszName)
:
:
nRet = ImgGetCaptureStatus(hDeviceHandle, Status)
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
Status: IMGCAPSTATUSEX;
nRet: Integer;
lpszName := 'IFIMGMEM1';
hDeviceHandle := ImgOpen(lpszName);
:
:
nRet := ImgGetCaptureStatusEx(hDeviceHandle, Status);
●Visual C# .NET
IntPtr hDeviceHandle;
IFCIMG_ANY.IMGCAPSTATUSEX Status;
int nRet;
hDeviceHandle = IFCIMG_ANY.ImgOpen(“IFIMGMEM1”);
:
:
nRet = IFCIMG_ANY.ImgGetCaptureStatusEx(hDeviceHandle, out Status);
© 2003, 2016 Interface Corporation. All rights reserved.
58
GPC-5520 Help for Windows
●Visual Basic .NET
Dim lpszName As String
Dim hDeviceHandle As IntPtr
Dim Status As IFCIMG_ANY.IMGCAPSTATUSEX
Dim nRet As Integer
lpszName = “IFIMGMEM1”
hDeviceHandle = IFCIMG_ANY.ImgOpen(lpszName)
:
:
nRet = IFCIMG_ANY.ImgGetCaptureStatusEx(hDeviceHandle, Status)
●Delphi
var
lpszName: String;
hDeviceHandle: Integer;
Status: IFCIMG.IMGCAPSTATUSEX;
nRet: Integer;
lpszName := 'IFIMGMEM1';
hDeviceHandle := IFCIMG.ImgOpen(lpszName);
:
:
nRet := IFCIMG.ImgGetCaptureStatusEx(hDeviceHandle, Status);
デバイス名「IFIMGMEM1」のキャプチャ状態を取得します。
© 2003, 2016 Interface Corporation. All rights reserved.
59
GPC-5520 Help for Windows
6. ImgSetBuffer
【機能】
転送先バッファの先頭ポインタとサイズ、画像のフォーマットを設定します。
また、SDRAM 領域内のデータ転送用(DMA 転送)のバッファを設定します。
【書式】
●C 言語
INT ImgSetBuffer(
HANDLE
PIMGBUFFERINFO
DWORD
hDeviceHandle,
pBuffer,
// デバイスハンドル
// IMGBUFFERINFO 構造体
へのポインタ
// カラーフォーマット
dwBufferFormat
);
●Visual Basic
『24 ImgSetBufferVB』を参照ください。
●Delphi
function ImgSetBuffer (
hDeviceHandle: THandle;
var pBuffer:
IMGBUFFERINFO;
// デバイスハンドル
// IMGBUFFERINFO 構造体
への参照渡し
dwBufferFormat: DWORD
): Integer; stdcall; external 'IfImg.dll';
●Visual C# .NET(x86、x64 共用)
[DllImport("IfImg.dll")]
public static extern int ImgSetBuffer(
IntPtr
hDeviceHandle,
ref IMGBUFFERINFO pBuffer,
uint
dwBufferFormat
//
カラーフォーマット
// デバイスハンドル
// IMGBUFFERINFO 構造体への
ポインタ
// カラーフォーマット
);
●Visual C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgSetBuffer(
uint
hDeviceHandle,
ref IMGBUFFERINFO pBuffer,
uint
dwBufferFormat
// デバイスハンドル
// IMGBUFFERINFO 構造体への
ポインタ
// カラーフォーマット
);
© 2003, 2016 Interface Corporation. All rights reserved.
60
GPC-5520 Help for Windows
●Visual Basic .NET
『24 ImgSetBufferVB』を参照ください。
●Delphi 8
class function ImgSetBuffer (
hDeviceHandle: Integer;
var pBuffer:
IMGBUFFERINFO;
// デバイスハンドル
// IMGBUFFERINFO 構造体
への参照渡し
dwBufferFormat: Cardinal
//
カラーフォーマット
): Integer; static;
【パラメータ】
hDeviceHandle
ImgOpen関数で取得したデバイスハンドルを指定してください。
pBuffer
設定するバッファ情報を格納したバッファ情報構造体(IMGBUFFERINFO)へのポインタを指
定してください。
ここで指定した領域へ、
「キャプチャデータ」または「SDRAM領域内のデータ」を転送しま
す。
構造体の説明については、『4.4 構造体』をご参照ください。
dwBufferFormat
DMA 転送データのフォーマットを指定します。
SDRAM 領域内のデータ転送時は、「IFIMG_COLOR_RGB24」を指定して下さい。
●カラーフォーマット識別子
画像データを DMA 転送する場合は、以下のカラーフォーマット識別子を指定します。
識別子
値
意味
IFIMG_COLOR_RGB32
00000001h
RGB32 bit
IFIMG_COLOR_RGB24
00000002h
RGB24 bit
IFIMG_COLOR_RGB15
00000003h
RGB15 bit
IFIMG_COLOR_RGB16
0000000Bh
RGB16 bit
IFIMG_COLOR_GRAY8
00000004h
GRAY8 bit
IFIMG_COLOR_RED8
00000005h
R 8bit
IFIMG_COLOR_GREEN8
00000006h
G 8bit
IFIMG_COLOR_BLUE8
00000007h
B 8bit
IFIMG_COLOR_BIN8
00000008h
2 値化処理データ 8bit
IFIMG_COLOR_FIL8
0000000Ch
フィルタ 8bit
IFIMG_COLOR_LABEL8
0000000Dh
ラベリング 8bit
IFIMG_COLOR_GRAY10
0000000Eh
GRAY 10bit ※
IFIMG_COLOR_GRAY12
0000000Fh
GRAY 12bit ※
IFIMG_COLOR_GRAY14
00000010h
GRAY 14bit ※
IFIMG_COLOR_GRAY16
00000011h
GRAY 16bit ※
※PEX-H531322 専用です。
© 2003, 2016 Interface Corporation. All rights reserved.
61
GPC-5520 Help for Windows
●解像度識別子
解像度を変更する場合、以下の識別子を OR 指定します。
識別子
値
意味
NTSC/CameraLink 製品
IFIMG_RESOLUTION_640_480
00000000h
640×480
IFIMG_RESOLUTION_320_240
80000000h
320×240
IFIMG_RESOLUTION_160_120
40000000h
160×120
IFIMG_RESOLUTION_768_572
08000000h
未対応
IFIMG_RESOLUTION_384_286
04000000h
未対応
IFIMG_RESOLUTION_192_143
02000000h
未対応
●画像処理データ識別子
識別子
IFIMG_MEASUEMENT_HSIT
IFIMG_MEASUEMENT_PRO
IFIMG_MEASUEMENT_LBLCNT
IFIMG_MEASUEMENT_AREA
IFIMG_MEASUEMENT_GRV
IFIMG_MEASUEMENT_FERE
IFIMG_MEASUEMENT_ELLIPSE
値
00000200h
00000400h
00000800h
00001000h
00002000h
00004000h
00008000h
意味
濃度分布
射影
ラベル数
各ブロックの面積
各ブロックのΣX、ΣY
各ブロックのフェレ径座標
各ブロックのΣX2、ΣXY、ΣY2
以下の識別子の組み合わせで、各画像処理結果を指定してください。
ラベル数
面積値
重心値
フェレ径
識別子
IFIMG_MEASUEMENT_LBLCNT
○
○
○
○
IFIMG_MEASUEMENT_AREA
-
○
○
-
IFIMG_MEASUEMENT_GRV
-
-
○
-
IFIMG_MEASUEMENT_FERE
-
-
-
○
IFIMG_MEASUEMENT_ELLIPSE
-
-
-
-
© 2003, 2016 Interface Corporation. All rights reserved.
62
PAL 製品
未対応
未対応
未対応
768×572
384×286
192×143
慣性等価楕円の傾き角
○
○
○
-
○
GPC-5520 Help for Windows
識別子の対応表
識別子
IFIMG_COLOR_RGB32
IFIMG_COLOR_RGB24
IFIMG_COLOR_RGB15
IFIMG_COLOR_RGB16
IFIMG_COLOR_GRAY8
IFIMG_COLOR_RED8 ※
IFIMG_COLOR_GREEN8 ※
IFIMG_COLOR_BLUE8 ※
IFIMG_COLOR_BIN8
IFIMG_COLOR_FIL8
IFIMG_COLOR_LABEL8
IFIMG_RESOLUTION_320_240
IFIMG_RESOLUTION_160_120
IFIMG_MEASUEMENT_HSIT
IFIMG_MEASUEMENT_PRO
IFIMG_MEASUEMENT_LBLCNT
IFIMG_MEASUEMENT_AREA
IFIMG_MEASUEMENT_GRV
IFIMG_MEASUEMENT_FERE
IFIMG_MEASUEMENT_ELLIPSE
IFIMG_RESOLUTION_768_572
IFIMG_RESOLUTION_384_286
IFIMG_RESOLUTION_192_143
IFIMG_COLOR_GRAY10
IFIMG_COLOR_GRAY12
IFIMG_COLOR_GRAY14
IFIMG_COLOR_GRAY16
55x0
○
○
○
○
○
○
○
○
―
―
―
○
○
―
―
―
―
―
―
―
―
―
―
―
―
―
―
55x1
○
○
○
○
○
○
○
○
―
―
―
○
○
―
―
―
―
―
―
―
―
―
―
―
―
―
―
55x2
○
○
○
○
○
○
○
○
○
―
―
○
○
―
―
―
―
―
―
―
―
―
―
―
―
―
―
55x3
○
○
○
○
○
○
○
○
○
―
―
○
○
―
―
―
―
―
―
―
―
―
―
―
―
―
―
55x4
○
○
○
○
○
○
○
○
○
―
―
○
○
○
○
―
―
―
―
―
―
―
―
―
―
―
―
55x5
○
○
○
○
○
○
○
○
○
○
―
○
○
○
○
―
―
―
―
―
―
―
―
―
―
―
―
55x6
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
―
―
―
―
―
―
―
530115
○
○
○
○
○
○
○
○
―
―
―
○
○
―
―
―
―
―
―
―
―
―
―
―
―
―
―
530215
○
○
○
○
○
○
○
○
○
―
―
○
○
―
―
―
―
―
―
―
―
―
―
―
―
―
―
※ PCI-5520 は、[12]C02 以降のインタフェースモジュールが対応しています。
© 2003, 2016 Interface Corporation. All rights reserved.
63
530215
○
○
○
○
○
○
○
○
○
―
―
○
○
―
―
―
―
―
―
―
―
―
―
―
―
―
―
GPC-5520 Help for Windows
識別子
IFIMG_COLOR_RGB32
IFIMG_COLOR_RGB24
IFIMG_COLOR_RGB15
IFIMG_COLOR_RGB16
IFIMG_COLOR_GRAY8
IFIMG_COLOR_RED8
IFIMG_COLOR_GREEN8
IFIMG_COLOR_BLUE8
IFIMG_COLOR_BIN8
IFIMG_COLOR_FIL8
IFIMG_COLOR_LABEL8
IFIMG_RESOLUTION_320_240
IFIMG_RESOLUTION_160_120
IFIMG_MEASUEMENT_HSIT
IFIMG_MEASUEMENT_PRO
IFIMG_MEASUEMENT_LBLCNT
IFIMG_MEASUEMENT_AREA
IFIMG_MEASUEMENT_GRV
IFIMG_MEASUEMENT_FERE
IFIMG_MEASUEMENT_ELLIPSE
IFIMG_RESOLUTION_768_572
IFIMG_RESOLUTION_384_286
IFIMG_RESOLUTION_192_143
IFIMG_COLOR_GRAY10
IFIMG_COLOR_GRAY12
IFIMG_COLOR_GRAY14
IFIMG_COLOR_GRAY16
55013x
○
○
○
○
○
○
○
○
―
―
―
―
―
―
―
―
―
―
―
―
○
○
○
―
―
―
―
551322
―
○
―
―
○
―
―
―
―
○
○
―
―
○
○
○
○
○
○
○
―
―
―
○
○
○
○
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、
『4.5 戻り値一覧』をご参照くださ
い。
© 2003, 2016 Interface Corporation. All rights reserved.
64
GPC-5520 Help for Windows
【使用例】
●C 言語(x86)
IHANDLE hDeviceHandle;
IMGBUFFERINFO Buffer;
int nRet;
hDeviceHandle = ImgOpen(“IFIMGST1”);
:
:
Buffer.pBufferAddress = malloc(640*480*3);
Buffer.dwBufferSize = 640*480*3;
nRet = ImgSetBuffer(hDeviceHandle, &Buffer, IFIMG_COLOR_RGB24);
●C 言語(x64)
IHANDLE hDeviceHandle;
IMGBUFFERINFO Buffer;
int nRet;
hDeviceHandle = ImgOpen(“IFIMGST1”);
:
Buffer.pBufferAddress = (PVOID)-1;
Buffer.dwBufferSize = 640*480*3;
:
nRet = ImgSetBuffer(hDeviceHandle, &Buffer, IFIMG_COLOR_RGB24);
●Visual Basic
『24 ImgSetBufferVB』を参照ください。
© 2003, 2016 Interface Corporation. All rights reserved.
65
GPC-5520 Help for Windows
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
Buffer: IMGBUFFERINFO;
nRet: Integer;
lpszName := 'IFIMGST1';
hDeviceHandle := ImgOpen(lpszName);
:
:
Buffer.pBufferAddress := AllocMem(640*480*3);
Buffer.dwBufferSize := 640*480*3;
nRet := ImgSetBuffer(hDeviceHandle, Buffer, IFIMG_COLOR_RGB24);
●Visual C# .NET(x86)
IntPtr hDeviceHandle;
IFCIMG_ANY.IMGBUFFERINFO Buffer;
int nRet;
IntPtr array_p;
hDeviceHandle = IFCIMG_ANY.ImgOpen(“IFIMGST1”);
:
:
array_p = Marshal.AllocCoTaskMem(640*480*3);
Buffer.pBufferAddress = array_p;
Buffer.dwBufferSize = 640*480*3;
nRet = IFCIMG_ANY.ImgSetBuffer(hDeviceHandle, ref Buffer,
IFCIMG_ANY.IFIMG_COLOR_RGB24);
© 2003, 2016 Interface Corporation. All rights reserved.
66
GPC-5520 Help for Windows
●Visual C# .NET(x64)
IntPtr hDeviceHandle;
IFCIMG_ANY.IMGBUFFERINFO Buffer;
int nRet;
hDeviceHandle = IFCIMG_ANY.ImgOpen(“IFIMGST1”);
:
:
Buffer.pBufferAddress = new IntPtr(-1);
Buffer.dwBufferSize = 640*480*3;
nRet = IFCIMG_ANY.ImgSetBuffer(hDeviceHandle, ref Buffer,
IFCIMG_ANY.IFIMG_COLOR_RGB24);
●Delphi 8
var
lpszName: String;
hDeviceHandle: Integer;
Buffer: IFCIMG.IMGBUFFERINFO;
nRet: Integer;
lpszName := 'IFIMGST1';
hDeviceHandle := IFCIMG.ImgOpen(lpszName);
:
:
Buffer.pBufferAddress := Marshal.AllocHGlobal(640*480*3);
Buffer.dwBufferSize := 640*480*3;
nRet := IFCIMG.ImgSetBuffer(hDeviceHandle, Buffer, IFCIMG.IFIMG_COLOR_RGB24);
デバイス名「IFIMGST1」のデバイスに対してキャプチャ用バッファを設定します。
カラーフォーマットは RGB24 で、解像度は 640×480 です。
© 2003, 2016 Interface Corporation. All rights reserved.
67
GPC-5520 Help for Windows
7. ImgGetMemPtrValue
【機能】
x64 専用関数です。ImgSetBuffer 関数で論理空間へマッピングされたメインメモリの先頭アドレ
スを取得する事ができます。
【書式】
●C 言語
INT ImgGetMemPtrValue(
HANDLE
hDeviceHandle,
PVOID
*MemoryAddress
);
//
//
デバイスハンドル
先頭アドレス
●Visual Basic
Declare Function ImgGetMemPtrValue Lib "IFCml.DLL"( _
ByVal
DeviceHandle
As Long, _
‘ デバイスハンドル
ByRef
MemoryAddress
As Any
‘ 先頭アドレス
)As Long
●Delphi
function ImgGetMemPtrValue (
DeviceHandle:
THandle;
//
var MemoryAddress:
Pointer
//
): Integer; stdcall; external 'IfImg.dll';
●Visual C# .NET(x64 専用)
[DllImport("IfImg.dll")]
public static extern int ImgGetMemPtrValue (
IntPtr
hDeviceHandle,
out IntPtr
MemoryAddress
);
デバイスハンドル
先頭アドレス
//
//
デバイスハンドル
先頭アドレス
●Visual Basic .NET(x64 専用)
Declare Function ImgGetMemPtrValue Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As IntPtr,
‘ デバイスハンドル
ByRef
MemoryAddress
As IntPtr _
‘ 先頭アドレス
)As Integer
【パラメータ】
hDeviceHandle
ImgOpen関数で取得したデバイスハンドルを指定してください。
MemoryAddress
確保されたメインメモリのポインタを取得する変数へのポインタを指定してください。
© 2003, 2016 Interface Corporation. All rights reserved.
68
GPC-5520 Help for Windows
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、
『4.5 戻り値一覧』をご参照くださ
い。
【使用例】
●C 言語
HANDLE hDeviceHandle;
IMGBUFFERINFO Buffer;
int nRet;
PVOID
BuffPtr;
hDeviceHandle = ImgOpen(“IFIMGST1”);
:
Buffer.pBufferAddress = (PVOID)-1;
Buffer.dwBufferSize = 640*480*3;
:
nRet = ImgSetBuffer(hDeviceHandle, &Buffer, IFIMG_COLOR_RGB24);
nRet = ImgGetMemPtrValue(DeviceHandle, &BuffPtr);
●Visual Basic
Dim hDeviceHandle As Long
Dim nRet As Long
Dim BuffPtr As Long
lpszName = “IFIMGST1”
hDeviceHandle = ImgOpen(lpszName)
:
nRet = ImgSetBufferVB(hDeviceHandle, ByVal -1, 640*480*3, IFIMG_COLOR_RGB24)
nRet = ImgGetMemPtrValue(hDeviceHandle, BuffPtr)
© 2003, 2016 Interface Corporation. All rights reserved.
69
GPC-5520 Help for Windows
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
Buffer: IMGBUFFERINFO;
nRet: Integer;
pBuffer: Pointer;
lpszName := 'IFIMGST1';
hDeviceHandle := ImgOpen(lpszName);
:
BufInfo.pBufferAddress := Pointer(-1);
BufInfo.dwBufferSize := 640*480*3;
:
nRet := ImgSetBuffer(hDeviceHandle, Buffer, IFIMG_COLOR_RGB24);
nRet := ImgGetMemPtrValue(hDevice, pBuffer);
●Visual C# .NET(x64)
IntPtr hDeviceHandle;
IFCIMG_ANY.IMGBUFFERINFO Buffer;
int nRet;
IntPtr array_p;
hDeviceHandle = IFCIMG_ANY.ImgOpen(“IFIMGST1”);
:
Buffer.pBufferAddress = new IntPtr(-1);
Buffer.dwBufferSize = 640*480*3;
nRet = IFCIMG_ANY.ImgSetBuffer(hDeviceHandle, ref Buffer,
IFCIMG_ANY.IFIMG_COLOR_RGB24);
nRet = IFCIMG_ANY.ImgGetMemPtrValue(hDeviceHandle, out array_p);
© 2003, 2016 Interface Corporation. All rights reserved.
70
GPC-5520 Help for Windows
●Visual Basic .NET(x64)
Dim lpszName As String
Dim hDeviceHandle As IntPtr
Dim buffersize As Integer
Dim array_p As IntPtr
lpszName = “IFIMGST1”
hDeviceHandle = IFCIMG.ImgOpen(lpszName)
:
:
buffersize = 640*480*3
nRet = IFCIMG_ANY.ImgSetBufferVB(_
hDeviceHandle, New IntPtr(-1), buffersize, IFCIMG.IFIMG_COLOR_RGB24)
nRet = IFCIMG_ANY.ImgGetMemPtrValue(hDeviceHandle, array_p)
メインメモリから先頭アドレスを取得します。
© 2003, 2016 Interface Corporation. All rights reserved.
71
GPC-5520 Help for Windows
8. ImgStartCapture
【機能】
キャプチャ、または画像処理データ転送を開始します。
(画像処理データの転送は CTP/CPZ/PCI-5524/5534/5525/5535/5526/5536 専用です。)
【書式】
●C 言語
INT ImgStartCapture(
HANDLE
DWORD
DWORD
);
hDeviceHandle,
dwFrameCnt,
dwStartMode
//
//
//
●Visual Basic
Declare Function ImgStartCapture Lib "IfImg.dll"(
ByVal
hDeviceHandle
As Long, _
‘
ByVal
dwFrameCnt
As Long, _
‘
ByVal
dwStartMode
As Long _
‘
)As Long
●Delphi
function ImgStartCapture (
hDeviceHandle: THandle;
dwFrameCnt:
DWORD;
dwStartMode
DWORD
): Integer; stdcall; external 'IfImg.dll';
●Visual C# .NET(x86、x64 共用)
[DllImport("IfImg.dll")]
public static extern int ImgStartCapture(
IntPtr
hDeviceHandle,
uint
dwFrameCnt,
uint
dwStartMode
);
●Visual C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgStartCapture(
uint
hDeviceHandle,
uint
dwFrameCnt,
uint
dwStartMode
);
_
デバイスハンドル
キャプチャフレーム数
キャプチャ開始モード
//
//
//
デバイスハンドル
キャプチャフレーム数
キャプチャ開始モード
//
//
//
デバイスハンドル
キャプチャフレーム数
キャプチャ開始モード
//
//
//
デバイスハンドル
キャプチャフレーム数
キャプチャ開始モード
© 2003, 2016 Interface Corporation. All rights reserved.
72
デバイスハンドル
キャプチャフレーム数
キャプチャ開始モード
GPC-5520 Help for Windows
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgStartCapture Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As IntPtr,
‘ デバイスハンドル
ByVal
dwFrameCnt
As Integer,
‘ キャプチャフレーム数
ByVal
dwStartMode
As Integer
‘ キャプチャ開始モード
)As Integer
●Visual Basic .NET(x86 専用)
Declare Function ImgStartCapture Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As Integer,
‘ デバイスハンドル
ByVal
dwFrameCnt
As Integer,
‘ キャプチャフレーム数
ByVal
dwStartMode
As Integer
‘ キャプチャ開始モード
)As Integer
●Delphi 8
class function ImgStartCapture (
hDeviceHandle: Integer;
dwFrameCnt:
Cardinal;
dwStartMode
Cardinal
): Integer; static;
//
//
//
デバイスハンドル
キャプチャフレーム数
キャプチャ開始モード
【パラメータ】
hDeviceHandle
ImgOpen関数で取得したデバイスハンドルを指定してください。
dwFrameCnt
キャプチャフレーム数を指定します。
値
0
0 以外(1~)
意味
繰り返し
ImgStopCapture関数を実行するまでキャプチャします。
指定フレーム数キャプチャ後、停止します。
dwStartMode
キャプチャ開始モードを指定します。識別子の OR 論理を渡すことにより、DMA、SDRAM の
よるキャプチャを同時に実行することが可能です。
ただし、データフォーマットは必ず、同じフォーマットを指定してください。
識別子
IFIMG_DMACAPTURE_START
IFIMG_SDRAMCAPTURE_START
値
00000001h
00000002h
意味
DMA 転送によるキャプチャ
SDRAM へのキャプチャ
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、
『4.5 戻り値一覧』をご参照くださ
い。
© 2003, 2016 Interface Corporation. All rights reserved.
73
GPC-5520 Help for Windows
【備考】
繰り返しキャプチャを実行する場合、リングバッファ形式で設定したバッファ領域に対して上
書きされます。
ImgSetBuffer 関数、ImgSetBufferVB 関数で解像度を 640×480 モード(PAL 対応画像入力製品の
場合は 768×572 モード)で指定した場合、映像入力機器から取り込んだデータは、奇数フィー
ルドと偶数フィールドに分離した状態でメインメモリへと転送します。
■NTSC 製品の場合
640 pixel
奇数フィールド
(ライン 1~240)
480 pixel
偶数フィールド
(ライン 241~480)
■PAL 製品の場合
768 pixel
奇数フィールド
(ライン 1~286)
572 pixel
偶数フィールド
(ライン 287~572)
© 2003, 2016 Interface Corporation. All rights reserved.
74
GPC-5520 Help for Windows
奇数フィールドデータと偶数フィールドデータを交互に配置することで、1 フレームのデータ
となります。
(NTSC 製品の場合)
1
奇数フィールドデータ
2
偶数フィールドデータ
3
奇数フィールドデータ
4
偶数フィールドデータ
5
奇数フィールドデータ
6
偶数フィールドデータ
7
奇数フィールドデータ
8
偶数フィールドデータ
…
…
479
奇数フィールドデータ
480
偶数フィールドデータ
ライン 1
ライン 241
ライン 2
ライン 242
ライン 3
ライン 243
ライン 4
ライン 244
…
ライン 240
ライン 480
(PAL 製品の場合)
1
奇数フィールドデータ
2
偶数フィールドデータ
3
奇数フィールドデータ
4
偶数フィールドデータ
5
奇数フィールドデータ
6
偶数フィールドデータ
7
奇数フィールドデータ
8
偶数フィールドデータ
…
…
571
奇数フィールドデータ
572
偶数フィールドデータ
ライン 1
ライン 287
ライン 2
ライン 288
ライン 3
ライン 289
ライン 4
ライン 290
…
ライン 286
ライン 572
詳細については『4.6 動作仕様』 を参照ください。
© 2003, 2016 Interface Corporation. All rights reserved.
75
GPC-5520 Help for Windows
【使用例】
●C 言語
HANDLE hDeviceHandle;
IMGBUFFERINFO Buffer;
int nRet;
hDeviceHandle = ImgOpen(“IFIMGST1”);
:
:
nRet = ImgSetBuffer(hDeviceHandle, &Buffer, IFIMG_COLOR_RGB24);
:
nRet = ImgStartCapture(hDeviceHandle, 10, IFIMG_DMACAPTURE_START);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
IMGBUFFERINFO Buffer
Dim nRet As Long
lpszName = “IFIMGST1”
hDeviceHandle = ImgOpen(lpszName)
:
:
nRet = ImgSetBuffer(hDeviceHandle, Buffer, IFIMG_COLOR_RGB24)
:
nRet = ImgStartCapture(hDeviceHandle, 10, IFIMG_DMACAPTURE_START)
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
Buffer: IMGBUFFERINFO;
nRet: Integer;
lpszName := 'IFIMGST1';
hDeviceHandle := ImgOpen(lpszName);
:
:
nRet := ImgSetBuffer(hDeviceHandle, Buffer, IFIMG_COLOR_RGB24);
:
nRet := ImgStartCapture(hDeviceHandle, 10, IFIMG_DMACAPTURE_START);
© 2003, 2016 Interface Corporation. All rights reserved.
76
GPC-5520 Help for Windows
●Visual C# .NET
IntPtr hDeviceHandle;
IFCIMG.IMGBUFFERINFO Buffer;
int nRet;
hDeviceHandle = IFCIMG_ANY.ImgOpen(“IFIMGST1”);
:
:
nRet = IFCIMG_ANY.ImgSetBuffer(hDeviceHandle,
G_COLOR_RGB24);
:
nRet = IFCIMG.ImgStartCapture(hDeviceHandle, 10, IFCIMG.IFIMG_DMACAPTURE_START);
●Visual C# .NET(x86)
IntPtr hDeviceHandle;
IFCIMG_ANY.IMGBUFFERINFO Buffer;
int nRet;
IntPtr array_p;
hDeviceHandle = IFCIMG_ANY.ImgOpen(“IFIMGST1”);
:
:
array_p = Marshal.AllocCoTaskMem(640*480*3*10);
Buffer.pBufferAddress = array_p;
Buffer.dwBufferSize = 640*480*3*10;
nRet = IFCIMG_ANY.ImgSetBuffer(hDeviceHandle, ref Buffer,
IFCIMG_ANY.IFIMG_COLOR_RGB24);
nRet = IFCIMG_ANY.ImgStartCapture(hDeviceHandle,
10, IFCIMG_ANY.IFIMG_DMACAPTURE_START);
© 2003, 2016 Interface Corporation. All rights reserved.
77
GPC-5520 Help for Windows
●Visual C# .NET(x64)
IntPtr hDeviceHandle;
IFCIMG_ANY.IMGBUFFERINFO Buffer;
int nRet;
hDeviceHandle = IFCIMG_ANY.ImgOpen(“IFIMGST1”);
:
:
Buffer.pBufferAddress = new IntPtr(-1);
Buffer.dwBufferSize = 640*480*3*10;
nRet = IFCIMG_ANY.ImgSetBuffer(hDeviceHandle, ref Buffer,
IFCIMG_ANY.IFIMG_COLOR_RGB24);
nRet = IFCIMG_ANY.ImgStartCapture(hDeviceHandle,
10, IFCIMG_ANY.IFIMG_DMACAPTURE_START);
●Visual Basic .NET(x86)
Dim lpszName As String
Dim hDeviceHandle As IntPtr
Dim buffersize As Integer
Dim buffer(640*480*3*10) As Byte
lpszName = “IFIMGST1”
hDeviceHandle = IFCIMG_ANY.ImgOpen(lpszName)
:
:
buffersize = 640*480*3*10
nRet = IFCIMG_ANY.ImgSetBufferVB(_
hDeviceHandle, buffer, buffersize, IFCIMG_ANY.IFIMG_COLOR_RGB24)
nRet = IFCIMG_ANY.ImgStartCapture(hDeviceHandle,_
10, IFCIMG_ANY.IFIMG_DMACAPTURE_START)
© 2003, 2016 Interface Corporation. All rights reserved.
78
GPC-5520 Help for Windows
●Visual Basic .NET(x64)
Dim lpszName As String
Dim hDeviceHandle As IntPtr
Dim buffersize As Integer
Dim array_p As IntPtr
lpszName = “IFIMGST1”
hDeviceHandle = IFCIMG_ANY.ImgOpen(lpszName)
:
:
buffersize = 640*480*3*10
nRet = IFCIMG_ANY.ImgSetBufferVB(_
hDeviceHandle, New IntPtr(-1), buffersize, IFCIMG_ANY.IFIMG_COLOR_RGB24)
nRet = IFCIMG_ANY.ImgStartCapture(hDeviceHandle,_
10, IFCIMG_ANY.IFIMG_DMACAPTURE_START)
●Delphi 8
var
lpszName: String;
hDeviceHandle: Integer;
Buffer: IFCIMG.IMGBUFFERINFO;
nRet: Integer;
lpszName := 'IFIMGST1';
hDeviceHandle := IFCIMG.ImgOpen(lpszName);
:
:
nRet := IFCIMG.ImgSetBuffer(hDeviceHandle, Buffer, IFCIMG.IFIMG_COLOR_RGB24);
:
nRet := IFCIMG.ImgStartCapture(hDeviceHandle, 10, IFCIMG.IFIMG_DMACAPTURE_START);
デバイス名「IFIMGST1」のデバイスに対して DMA 転送によるキャプチャを開始します。
© 2003, 2016 Interface Corporation. All rights reserved.
79
GPC-5520 Help for Windows
9. ImgStopCapture
【機能】
キャプチャ、または画像処理データ転送を停止します。
【書式】
●C 言語
INT ImgStopCapture(
HANDLE
DWORD
);
hDeviceHandle,
dwStopMode
//
//
デバイスハンドル
停止モード
●Visual Basic
Declare Function ImgStopCapture Lib "IfImg.dll"( _
ByVal
hDeviceHandle
As Long, _
‘ デバイスハンドル
ByVal
dwStopMode
As Long _
‘ 停止モード
)As Long
●Delphi
function ImgStopCapture (
hDeviceHandle: THandle;
dwStopMode:
DWORD
): Integer; stdcall; external 'IfImg.dll';
●Visual C# .NET(x86、x64 共用)
[DllImport("IfImg.dll")]
public static extern int (
IntPtr
hDeviceHandle,
uint
dwStopMode
);
●Visual C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int (
uint
hDeviceHandle,
uint
dwStopMode
);
//
//
デバイスハンドル
停止モード
//
//
デバイスハンドル
停止モード
//
//
デバイスハンドル
停止モード
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgStopCapture Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As IntPtr,
‘
ByVal
dwStopMode
As Integer
‘
)As Integer
デバイスハンドル
停止モード
© 2003, 2016 Interface Corporation. All rights reserved.
80
GPC-5520 Help for Windows
●Visual Basic .NET(x86 専用)
Declare Function ImgStopCapture Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As Integer,
‘
ByVal
dwStopMode
As Integer
‘
)As Integer
●Delphi 8
class function ImgStopCapture (
hDeviceHandle: Integer;
dwStopMode:
Cardinal
): Integer; static;
デバイスハンドル
停止モード
//
//
デバイスハンドル
停止モード
【パラメータ】
hDeviceHandle
ImgOpen関数で取得したデバイスハンドルを指定してください。
dwStopMode
キャプチャ停止モードを指定します。識別子の論理和で指定します。
識別子
IFIMG_FRAME_STOP
値
00000001h
IFIMG_IMMEDIATE_STOP
IFIMG_SDRAM_FRAME_STOP
00000002h
00000004h
IFIMG_SDRAM_IMMEDIATE_STOP
00000008h
意味
DMA キャプチャによる
フレーム単位で転送停止
DMA キャプチャによる即停止
SDRAM キャプチャ
によるフレーム単位で転送停止
SDRAM キャプチャによる即停止
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、
『4.5 戻り値一覧』をご参照くださ
い。
【備考】
dwStopMode にフレーム単位での転送停止を指定した場合、関数から戻っても、キャプチャは動
作しています。(フレーム転送が完了するまで)
即停止が有効となります。
© 2003, 2016 Interface Corporation. All rights reserved.
81
GPC-5520 Help for Windows
【使用例】
●C 言語
HANDLE hDeviceHandle;
int nRet;
hDeviceHandle = ImgOpen(“IFIMGST1”);
:
nRet = ImgSetBuffer(hDeviceHandle, &Buffer, IFIMG_COLOR_RGB24);
:
nRet = ImgStartCapture(hDeviceHandle, 0, IFIMG_DMACAPTURE_START);
:
nRet = ImgStopCapture(hDeviceHandle, IFIMG_FRAME_STOP);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim nRet As Long
lpszName = “IFIMGST1”
hDeviceHandle = ImgOpen(lpszName)
:
nRet = ImgSetBuffer(hDeviceHandle, Buffer, IFIMG_COLOR_RGB24)
:
nRet = ImgStartCapture(hDeviceHandle, 0, IFIMG_DMACAPTURE_START)
:
nRet = ImgStopCapture(hDeviceHandle, IFIMG_FRAME_STOP)
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
nRet: Integer;
lpszName := 'IFIMGST1';
hDeviceHandle := ImgOpen(lpszName);
:
nRet := ImgSetBuffer(hDeviceHandle, Buffer, IFIMG_COLOR_RGB24);
:
nRet := ImgStartCapture(hDeviceHandle, 0, IFIMG_DMACAPTURE_START);
:
nRet := ImgStopCapture(hDeviceHandle, IFIMG_FRAME_STOP);
© 2003, 2016 Interface Corporation. All rights reserved.
82
GPC-5520 Help for Windows
●Visual C# .NET
IntPtr hDeviceHandle;
int nRet;
hDeviceHandle = IFCIMG_ANY.ImgOpen(“IFIMGST1”);
:
nRet = IFCIMG_ANY.ImgSetBuffer(hDeviceHandle, ref Buffer,
IFCIMG_ANY.IFIMG_COLOR_RGB24);
:
nRet = IFCIMG_ANY.ImgStartCapture(hDeviceHandle, 0,
IFCIMG_ANY.IFIMG_DMACAPTURE_START);
:
nRet = IFCIMG_ANY.ImgStopCapture(hDeviceHandle, IFCIMG_ANY.IFIMG_FRAME_STOP);
●Visual Basic .NET
Dim lpszName As String
Dim hDeviceHandle As IntPtr
Dim nRet As Integer
lpszName = “IFIMGST1”
hDeviceHandle = IFCIMG_ANY.ImgOpen(lpszName)
:
nRet = IFCIMG_ANY.ImgSetBuffer(hDeviceHandle, Buffer, IFCIMG_ANY.IFIMG_COLOR_RGB24)
:
nRet = IFCIMG_ANY.ImgStartCapture(hDeviceHandle, 0, _
IFCIMG_ANY.IFIMG_DMACAPTURE_START)
:
nRet = IFCIMG_ANY.ImgStopCapture(hDeviceHandle, IFCIMG_ANY.IFIMG_FRAME_STOP)
●Delphi 8
var
lpszName: String;
hDeviceHandle: Integer;
nRet: Integer;
lpszName := 'IFIMGST1';
hDeviceHandle := IFCIMG.ImgOpen(lpszName);
:
nRet := IFCIMG.ImgSetBuffer(hDeviceHandle, Buffer, IFCIMG.IFIMG_COLOR_RGB24);
:
nRet := IFCIMG.ImgStartCapture(hDeviceHandle, 0, IFCIMG.IFIMG_DMACAPTURE_START);
:
nRet := IFCIMG.ImgStopCapture(hDeviceHandle, IFCIMG.IFIMG_FRAME_STOP);
デバイス名「IFIMGST1」のデバイスに対してキャプチャを停止します。
© 2003, 2016 Interface Corporation. All rights reserved.
83
GPC-5520 Help for Windows
10. ImgSetPosition
【機能】
キャプチャする画像の、水平位置と垂直位置を調整します。
【書式】
●C 言語
INT ImgSetPosition(
HANDLE
INT
INT
hDeviceHandle,
nHorizontal,
nVertical
//
//
デバイスハンドル
水平位置
//
垂直位置
);
●Visual Basic
Declare Function ImgSetPosition Lib "IfImg.dll"( _
ByVal
hDeviceHandle
As Long, _
‘ デバイスハンドル
ByVal
nHorizontal
As Long, _
‘ 水平位置
ByVal
nVertical
As Long _
‘ 垂直位置
)As Long
●Delphi
function ImgSetPosition (
hDeviceHandle: THandle;
nHorizontal:
Cardinal;
nVertical
Cardinal
): Integer; stdcall; external 'IfImg.dll';
●Visual C# .NET(x86、x64 共用)
[DllImport("IfImg.dll")]
public static extern int ImgSetPosition(
IntPtr
hDeviceHandle,
int
nHorizontal,
int
nVertical
//
//
デバイスハンドル
水平位置
//
垂直位置
//
//
デバイスハンドル
水平位置
//
垂直位置
//
//
デバイスハンドル
水平位置
//
垂直位置
);
●Visual C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgSetPosition(
uint
hDeviceHandle,
int
nHorizontal,
int
nVertical
);
© 2003, 2016 Interface Corporation. All rights reserved.
84
GPC-5520 Help for Windows
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgSetPosition Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As IntPtr,
‘
ByVal
nHorizontal
As Integer,
‘
ByVal
nVertical
As Integer
‘
デバイスハンドル
水平位置
垂直位置
)As Integer
●Visual Basic .NET(x86 専用)
Declare Function ImgSetPosition Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As Integer,
‘
ByVal
nHorizontal
As Integer,
‘
ByVal
nVertical
As Integer
‘
デバイスハンドル
水平位置
垂直位置
)As Integer
●Delphi 8
class function ImgSetPosition (
hDeviceHandle: Integer;
nHorizontal:
Cardinal;
nVertical
Cardinal
//
//
デバイスハンドル
水平位置
//
垂直位置
): Integer; static;
【パラメータ】
hDeviceHandle
ImgOpen関数で取得したデバイスハンドルを指定してください。
nHorizontal
水平位置を指定して下さい。
設定範囲:-8 ~ +7
-8~-1
右へ移動
0
基準位置(初期位置)
1~7
左へ移動
nVertical
垂直位置を指定して下さい。
設定範囲:-4 ~ +4
-4~-1
下へ移動
0
基準位置(初期位置)
1~4
上へ移動
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、
『4.5 戻り値一覧』をご参照くださ
い。
© 2003, 2016 Interface Corporation. All rights reserved.
85
GPC-5520 Help for Windows
【備考】
キャプチャ中に本関数を実行することは出来ません。
【使用例】
●C 言語
HANDLE hDeviceHandle;
int nRet;
hDeviceHandle = ImgOpen(“IFIMGST1”);
:
:
nRet = ImgSetPosition(hDeviceHandle, 1. 1);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim nRet As Long
lpszName = “IFIMGST1”
hDeviceHandle = ImgOpen(lpszName)
:
:
nRet = ImgSetPosition(hDeviceHandle, 1, 1)
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
nRet: Integer
lpszName := 'IFIMGST1';
hDeviceHandle := ImgOpen(lpszName);
:
:
nRet := ImgSetPosition(hDeviceHandle, 1, 1);
●Visual C# .NET
IntPtr hDeviceHandle;
int nRet;
hDeviceHandle = IFCIMG_ANY.ImgOpen(“IFIMGST1”);
:
:
nRet = IFCIMG_ANY.ImgSetPosition(hDeviceHandle, 1. 1);
© 2003, 2016 Interface Corporation. All rights reserved.
86
GPC-5520 Help for Windows
●Visual Basic .NET
Dim lpszName As String
Dim hDeviceHandle As IntPtr
Dim nRet As Integer
lpszName = “IFIMGST1”
hDeviceHandle = IFCIMG_ANY.ImgOpen(lpszName)
:
:
nRet = IFCIMG_ANY.ImgSetPosition(hDeviceHandle, 1, 1)
●Delphi 8
var
lpszName: String;
hDeviceHandle: Integer;
nRet: Integer
lpszName := 'IFIMGST1';
hDeviceHandle := IFCIMG.ImgOpen(lpszName);
:
:
nRet := IFCIMG.ImgSetPosition(hDeviceHandle, 1, 1);
デバイス名「IFIMGST1」のデバイスに対して、
「水平位置 = +1」
「垂直位置 = +1」の設定を行
います。
© 2003, 2016 Interface Corporation. All rights reserved.
87
GPC-5520 Help for Windows
11. ImgSetOutputMode
【機能】
映像出力(チャンネル 2)の出力モードの設定を行います。
【書式】
●C 言語
INT ImgSetOutputMode(
HANDLE
hDeviceHandle,
WORD
wMode
);
//
//
デバイスハンドル
出力モード
●Visual Basic
Declare Function ImgSetOutputMode Lib "IfImg.dll"( _
ByVal
hDeviceHandle
As Long, _
‘ デバイスハンドル
ByVal
wMode
As Integer _
‘ 出力モード
)As Long
●Delphi
function ImgSetOutputMode (
hDeviceHandle: THandle;
wMode:
WORD
): Integer; stdcall; external 'IfImg.dll';
●Visual C# .NET(x86、x64 共用)
[DllImport("IfImg.dll")]
public static extern int ImgSetOutputMode(
IntPtr
hDeviceHandle,
short
wMode
);
●Visual C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgSetOutputMode(
uint
hDeviceHandle,
short
wMode
);
//
//
デバイスハンドル
出力モード
//
//
デバイスハンドル
出力モード
//
//
デバイスハンドル
出力モード
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgSetOutputMode Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As IntPtr,
‘ デバイスハンドル
ByVal
wMode
As Short
‘ 出力モード
)As Integer
© 2003, 2016 Interface Corporation. All rights reserved.
88
GPC-5520 Help for Windows
●Visual Basic .NET(x86 専用)
Declare Function ImgSetOutputMode Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As Integer,
‘ デバイスハンドル
ByVal
wMode
As Short
‘ 出力モード
)As Integer
●Delphi 8
class function ImgSetOutputMode (
hDeviceHandle: Integer;
wMode:
Word
): Integer; static;
//
//
デバイスハンドル
出力モード
【パラメータ】
hDeviceHandle
ImgOpen関数で取得したデバイスハンドルを指定してください。
wMode
出力モードを指定して下さい。
識別子
IFIMG_OUTMODE_THROUGH
値
00000001h
IFIMG_OUTMODE_COLORBAR
IFIMG_OUTMODE_STILL_PICTURE
00000002h
00000003h
意味
映像入力端子に入力されたデータ
をそのまま出力します。
カラーバーを出力します。
静止画を出力します。
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、
『4.5 戻り値一覧』をご参照くださ
い。
【備考】
IFIMG_OUTMODE_STILL_PICTURE 指定による静止画出力機能は
PCI/CPZ/CTP-5525,5535,5526,5536 専用の機能です。
本関数を実行した瞬間の画像を静止画像として出力します。
静止画出力中に ImgSetConversionConfig 関数で、フィルタ処理や膨張・収縮処理を無効に設定
しないでください。静止画出力が解除されます。
また、静止画出力中にキャプチャを行なうと静止画像がキャプチャされます。
2 値画像、フィルタ画像でキャプチャすると、静止画を 2 値化、フィルタ処理した画像がキャ
プチャされます。
映像出力端子から出力される画像も同様に処理されます。
© 2003, 2016 Interface Corporation. All rights reserved.
89
GPC-5520 Help for Windows
【使用例】
●C 言語
int nRet;
HANDLE hDeviceHandle;
hDeviceHandle = ImgOpen(“IFIMGST1”);
:
:
nRet = ImgSetOutputMode(hDeviceHandle, IFIMG_OUTMODE_COLORBAR);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim nRet As Long
lpszName = “IFIMGST1”
hDeviceHandle = ImgOpen(lpszName)
:
:
nRet = ImgSetOutputMode(hDeviceHandle, IFIMG_OUTMODE_COLORBAR)
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
nRet: Integer;
lpszName := 'IFIMGST1';
hDeviceHandle := ImgOpen(lpszName);
:
:
nRet := ImgSetOutputMode(hDeviceHandle, IFIMG_OUTMODE_COLORBAR);
●Visual C# .NET
int nRet;
IntPtr hDeviceHandle;
hDeviceHandle = IFCIMG_ANY.ImgOpen(“IFIMGST1”);
:
:
nRet
=
IFCIMG_ANY.ImgSetOutputMode(hDeviceHandle,
IFCIMG_ANY.IFIMG_OUTMODE_COLORBAR);
© 2003, 2016 Interface Corporation. All rights reserved.
90
GPC-5520 Help for Windows
●Visual Basic .NET
Dim lpszName As String
Dim hDeviceHandle As IntPtr
Dim nRet As Integer
lpszName = “IFIMGST1”
hDeviceHandle = IFCIMG_ANY.ImgOpen(lpszName)
:
:
nRet
=
IFCIMG_ANY.ImgSetOutputMode(hDeviceHandle,
IFCIMG_ANY.IFIMG_OUTMODE_COLORBAR)
●Delphi 8
var
lpszName: String;
hDeviceHandle: Integr;
nRet: Integer;
lpszName := 'IFIMGST1';
hDeviceHandle := IFCIMG.ImgOpen(lpszName);
:
:
nRet := IFCIMG.ImgSetOutputMode(hDeviceHandle, IFCIMG.IFIMG_OUTMODE_COLORBAR);
デバイス名「IFIMGST1」のチャンネル 2 をカラーバー出力に設定します。
© 2003, 2016 Interface Corporation. All rights reserved.
91
GPC-5520 Help for Windows
12. ImgSetBinarizationConfig
2 値化処理条件を設定します。
【書式】
●C 言語
INT ImgSetBinarizationConfig(
HANDLE
hDeviceHandle,
PIMGBINCONFIG
pBinConfig
// デバイスハンドル
// IMGBINCONFIG 構造体
へのポインタ
);
●Visual Basic
Declare Function ImgSetBinarizationConfig Lib "IfImg.dll"( _
ByVal
hDeviceHandle
As Long, _
‘ デバイスハンドル
ByRef
pBinConfig
As IMGBINCONFIG _ ‘ IMGBINCONFIG 構造体
への参照渡し
)As Long
●Delphi
function ImgSetBinarizationConfig (
hDeviceHandle:
THandle;
var pBinConfig:
IMGBINCONFIG
// デバイスハンドル
// IMGBINCONFIG 構造体
への参照渡し
): Integer; stdcall; external 'IfImg.dll';
●VISUAL C# .NET(x86、x64 共用)
[DllImport("IfImg.dll")]
public static extern int ImgSetBinarizationConfig(
IntPtr
hDeviceHandle,
// デバイスハンドル
ref IMGBINCONFIG pBinConfig
// IMGBINCONFIG 構造体
へのポインタ
);
●VISUAL C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgSetBinarizationConfig(
uint
hDeviceHandle,
// デバイスハンドル
ref IMGBINCONFIG pBinConfig
// IMGBINCONFIG 構造体
へのポインタ
);
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgSetBinarizationConfig Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As IntPtr,
‘ デバイスハンドル
ByRef
pBinConfig
As IMGBINCONFIG
‘ IMGBINCONFIG 構造体
への参照渡し
)As Integer
© 2003, 2016 Interface Corporation. All rights reserved.
92
GPC-5520 Help for Windows
●Visual Basic .NET(x86 専用)
Declare Function ImgSetBinarizationConfig Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As Integer,
‘ デバイスハンドル
ByRef
pBinConfig
As IMGBINCONFIG
‘ IMGBINCONFIG 構造体
への参照渡し
)As Integer
●Delphi 8
class function ImgSetBinarizationConfig (
hDeviceHandle:
Integer;
var pBinConfig:
IMGBINCONFIG
// デバイスハンドル
// IMGBINCONFIG 構造体
への参照渡し
): Integer; static;
【パラメータ】
hDeviceHandle
ImgOpen関数で取得したデバイスハンドルを指定してください。
pBinConfig
IMGBINCONFIG構造体へのポインタを指定してください。
構造体の説明については、『4.4 構造体』をご参照ください。
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、
『4.5 戻り値一覧』をご参照くださ
い。
【使用例】
●C 言語
IMGBINCONFIG BinConf;
HANDLE hDeviceHandle;
int nRet;
hDeviceHandle = ImgOpen(“IFIMGBIN1”);
:
BinConf.dwColorIngredient = IFIMG_INGREDIENT_GRAY;
BinConf.dwMaxthreshold = 255;
BinConf.dwMinthreshold = 128;
BinConf.dwBinarizationMode = IFIMG_BINMODE_NORMAL;
nRet = ImgSetBinarizationConfig(hDeviceHandle, &BinConf);
© 2003, 2016 Interface Corporation. All rights reserved.
93
GPC-5520 Help for Windows
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim BinConf As IMGBINCONFIG
Dim nRet As Long
lpszName = “IFIMGBIN1”
hDeviceHandle = ImgOpen(lpszName)
:
BinConf.dwColorIngredient = IFIMG_INGREDIENT_GRAY
BinConf.dwMaxthreshold = 255
BinConf.dwMinthreshold = 128
BinConf.dwBinarizationMode = IFIMG_BINMODE_NORMAL
nRet = ImgSetBinarizationConfig (hDeviceHandle, BinConf)
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
nRet: Integer;
BinConf: IMGBINCONFIG;
lpszName := 'IFIMGBIN1';
hDeviceHandle := ImgOpen(lpszName);
:
:
BinConf.dwColorIngredient := IFIMG_INGREDIENT_GRAY;
BinConf.dwMaxthreshold := 255;
BinConf.dwMinthreshold := 128;
BinConf.dwBinarizationMode := IFIMG_BINMODE_NORMAL;
nRet := ImgSetBinarizationConfig(hDeviceHandle, BinConf);
© 2003, 2016 Interface Corporation. All rights reserved.
94
GPC-5520 Help for Windows
●Visual C# .NET
IFCIMG_ANY.IMGBINCONFIG BinConf;
IntPtr hDeviceHandle;
int nRet;
hDeviceHandle = IFCIMG_ANY.ImgOpen(“IFIMGBIN1”);
:
BinConf.dwColorIngredient = IFCIMG_ANY.IFIMG_INGREDIENT_GRAY;
BinConf.dwMaxthreshold = 255;
BinConf.dwMinthreshold = 128;
BinConf.dwBinarizationMode = IFCIMG_ANY.IFIMG_BINMODE_NORMAL;
nRet = IFCIMG_ANY.ImgSetBinarizationConfig(hDeviceHandle, ref BinConf);
●Visual Basic .NET
Dim lpszName As String
Dim hDeviceHandle As IntPtr
Dim BinConf As IFCIMG_ANY.IMGBINCONFIG
Dim nRet As Integer
lpszName = “IFIMGBIN1”
hDeviceHandle = IFCIMG_ANY.ImgOpen(lpszName)
:
BinConf.dwColorIngredient = IFCIMG_ANY.IFIMG_INGREDIENT_GRAY
BinConf.dwMaxthreshold = 255
BinConf.dwMinthreshold = 128
BinConf.dwBinarizationMode = IFCIMG_ANY.IFIMG_BINMODE_NORMAL
nRet = IFCIMG_ANY.ImgSetBinarizationConfig (hDeviceHandle, BinConf)
© 2003, 2016 Interface Corporation. All rights reserved.
95
GPC-5520 Help for Windows
●Delphi 8
var
lpszName: String;
hDeviceHandle: Integer;
nRet: Integer;
BinConf: IFCIMG.IMGBINCONFIG;
lpszName := 'IFIMGBIN1';
hDeviceHandle := IFCIMG.ImgOpen(lpszName);
:
:
BinConf.dwColorIngredient := IFCIMG.IFIMG_INGREDIENT_GRAY;
BinConf.dwMaxthreshold := 255;
BinConf.dwMinthreshold := 128;
BinConf.dwBinarizationMode := IFCIMG.IFIMG_BINMODE_NORMAL;
nRet := IFCIMG.ImgSetBinarizationConfig(hDeviceHandle, BinConf);
デバイス名「IFIMGBIN1」のデバイスに対して、2 値化処理設定を行います。
2 値化対象とする画像データの色成分を輝度成分、上限しきい値を 255、下限しきい値を 128、
上限と下限の間の場合、2 値化データを”0xFF”にします。
© 2003, 2016 Interface Corporation. All rights reserved.
96
GPC-5520 Help for Windows
13. ImgSetMeasurementRange
面積、重心の測定範囲を設定します。
※解像度設定が「320×240」または「160×120」の場合、面積、重心の機能は使用できません。
【書式】
●C 言語
INT ImgSetMeasurementRange(
HANDLE
hDeviceHandle,
DWORD
dwStartPointX,
DWORD
dwStartPointY,
DWORD
dwXLength,
DWORD
dwYLength
);
// デバイスハンドル
// 始点の X 座標
// 始点の Y 座標
// 始点からの長さ(X 方向)
// 始点からの長さ(Y 方向)
●Visual Basic
Declare Function ImgSetMeasurementRange Lib "IfImg.dll"( _
ByVal
hDeviceHandle
As Long, _
‘ デバイスハンドル
ByVal
dwStartPointX
As Long, _
‘ 始点の X 座標
ByVal
dwStartPointY
As Long, _
‘ 始点の Y 座標
ByVal
dwXLength
As Long, _
‘ 始点からの長さ(X 方向)
ByVal
dwYLength
As Long _
‘ 始点からの長さ(Y 方向)
)As Long
●Delphi
function ImgSetMeasurementRange (
hDeviceHandle:
THandle;
dwStartPointX:
DWORD;
dwStartPointY:
DWORD;
dwXLength:
DWORD;
dwYLength:
DWORD
): Integer; stdcall; external 'IfImg.dll';
// デバイスハンドル
// 始点の X 座標
// 始点の Y 座標
// 始点からの長さ(X 方向)
// 始点からの長さ(Y 方向)
●Visual C# .NET(x86、x64 共用)
[DllImport("IfImg.dll")]
public static extern int ImgSetMeasurementRange(
IntPtr
hDeviceHandle,
// デバイスハンドル
uint
dwStartPointX,
// 始点の X 座標
uint
dwStartPointY,
// 始点の Y 座標
uint
dwXLength,
// 始点からの長さ(X 方向)
uint
dwYLength
// 始点からの長さ(Y 方向)
);
© 2003, 2016 Interface Corporation. All rights reserved.
97
GPC-5520 Help for Windows
●Visual C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgSetMeasurementRange(
uint
hDeviceHandle,
// デバイスハンドル
uint
dwStartPointX,
// 始点の X 座標
uint
dwStartPointY,
// 始点の Y 座標
uint
dwXLength,
// 始点からの長さ(X 方向)
uint
dwYLength
// 始点からの長さ(Y 方向)
);
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgSetMeasurementRange Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As IntPtr,
‘ デバイスハンドル
ByVal
dwStartPointX
As Integer,
‘ 始点の X 座標
ByVal
dwStartPointY
As Integer,
‘ 始点の Y 座標
ByVal
dwXLength
As Integer,
‘ 始点からの長さ(X 方向)
ByVal
dwYLength
As Integer
‘ 始点からの長さ(Y 方向)
)As Integer
●Visual Basic .NET(x86 専用)
Declare Function ImgSetMeasurementRange Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As Integer,
‘ デバイスハンドル
ByVal
dwStartPointX
As Integer,
‘ 始点の X 座標
ByVal
dwStartPointY
As Integer,
‘ 始点の Y 座標
ByVal
dwXLength
As Integer,
‘ 始点からの長さ(X 方向)
ByVal
dwYLength
As Integer
‘ 始点からの長さ(Y 方向)
)As Integer
●Delphi 8
class function ImgSetMeasurementRange (
hDeviceHandle:
Integer;
dwStartPointX:
Cardinal;
dwStartPointY:
Cardinal;
dwXLength:
Cardinal;
dwYLength:
Cardinal
): Integer; static;
// デバイスハンドル
// 始点の X 座標
// 始点の Y 座標
// 始点からの長さ(X 方向)
// 始点からの長さ(Y 方向)
【パラメータ】
hDeviceHandle
ImgOpen関数で取得したデバイスハンドルを指定してください。
dwStartPointX
測定範囲の開始座標における X 座標を指定します。(0~639)
dwStartPointY
測定範囲の開始座標における Y 座標を指定します。(0~479)
© 2003, 2016 Interface Corporation. All rights reserved.
98
GPC-5520 Help for Windows
dwXLength
開始座標からの X 軸方向への長さを指定します。(1~640)
dwYLength
開始座標からの Y 軸方向への長さを指定します。(1~480)
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESS が返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、
『4.5 戻り値一覧』をご参照くださ
い。
【備考】
開始座標は測定範囲の左上となります。
640
(0,0)
X:dwStartPointX
開始座標
dwXLength
Y:dwStartPointY
(X,Y)
480
dwYLength
(479,639)
【使用例】
●C 言語
HANDLE hDeviceHandle;
IMGBINCONFIG BinConf;
HANDLE hDeviceHandle;
int nRet;
hDeviceHandle = ImgOpen(“IFIMGBIN1”);
:
BinConf.dwColorIngredient = IFIMG_INGREDIENT_GRAY;
BinConf.dwMaxthreshold = 255;
BinConf.dwMinthreshold = 128;
BinConf.dwBinarizationMode = IFIMG_BINMODE_NORMAL;
:
nRet = ImgSetBinarizationConfig(hDeviceHandle, &BinConf);
:
nRet = ImgSetMeasurementRange(hDeviceHandle, 0, 0, 320, 240);
© 2003, 2016 Interface Corporation. All rights reserved.
99
GPC-5520 Help for Windows
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim nRet As Long
Dim pBinConf As IMGBINCONFIG
lpszName = “IFIMGBIN1”
hDeviceHandle = ImgOpen(lpszName)
:
BinConf.dwColorIngredient = IFIMG_INGREDIENT_GRAY
BinConf.dwMaxthreshold = 255
BinConf.dwMinthreshold = 128
BinConf.dwBinarizationMode = IFIMG_BINMODE_NORMAL
:
nRet = ImgSetBinarizationConfig (hDeviceHandle, BinConf)
:
:
nRet = ImgSetMeasurementRange (hDeviceHandle, 0, 0, 320, 240)
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
nRet: Integer;
BinConf: IMGBINCONFIG;
lpszName := 'IFIMGBIN1';
hDeviceHandle := ImgOpen(lpszName);
:
:
BinConf.dwColorIngredient := IFIMG_INGREDIENT_GRAY;
BinConf.dwMaxthreshold := 255;
BinConf.dwMinthreshold := 128;
BinConf.dwBinarizationMode := IFIMG_BINMODE_NORMAL;
nRet := ImgSetBinarizationConfig(hDeviceHandle, BinConf);
:
nRet := ImgSetMeasurementRange(hDeviceHandle, 0, 0, 320, 240);
© 2003, 2016 Interface Corporation. All rights reserved.
100
GPC-5520 Help for Windows
●Visual C# .NET
IntPtr hDeviceHandle;
IFCIMG_ANY.IMGBINCONFG BinConf;
int nRet;
hDeviceHandle = IFCIMG_ANY.ImgOpen(“IFIMGBIN1”);
:
BinConf.dwColorIngredient = IFCIMG_ANY.IFIMG_INGREDIENT_GRAY;
BinConf.dwMaxthreshold = 255;
BinConf.dwMinthreshold = 128;
BinConf.dwBinarizationMode = IFCIMG_ANY.IFIMG_BINMODE_NORMAL;
:
nRet = IFCIMG_ANY.ImgSetBinarizationConfig(hDeviceHandle, ref BinConf);
:
nRet = IFCIMG_ANY.ImgSetMeasurementRange(hDeviceHandle, 0, 0, 320, 240);
●Visual Basic .NET
Dim lpszName As String
Dim hDeviceHandle As IntPtr
Dim nRet As Integer
Dim pBinConf As IFCIMG_ANY.IMGBINCONFIG
lpszName = “IFIMGBIN1”
hDeviceHandle = IFCIMG_ANY.ImgOpen(lpszName)
:
BinConf.dwColorIngredient = IFCIMG_ANY.IFIMG_INGREDIENT_GRAY
BinConf.dwMaxthreshold = 255
BinConf.dwMinthreshold = 128
BinConf.dwBinarizationMode = IFCIMG_ANY.IFIMG_BINMODE_NORMAL
:
nRet = IFCIMG_ANY.ImgSetBinarizationConfig (hDeviceHandle, BinConf)
:
:
nRet = IFCIMG_ANY.ImgSetMeasurementRange (hDeviceHandle, 0, 0, 320, 240)
© 2003, 2016 Interface Corporation. All rights reserved.
101
GPC-5520 Help for Windows
●Delphi 8
var
lpszName: String;
hDeviceHandle: Integer;
nRet: Integer;
BinConf: IFCIMG.IMGBINCONFIG;
lpszName := 'IFIMGBIN1';
hDeviceHandle := IFCIMG.ImgOpen(lpszName);
:
:
BinConf.dwColorIngredient := IFCIMG.IFIMG_INGREDIENT_GRAY;
BinConf.dwMaxthreshold := 255;
BinConf.dwMinthreshold := 128;
BinConf.dwBinarizationMode := IFCIMG.IFIMG_BINMODE_NORMAL;
nRet := IFCIMG.ImgSetBinarizationConfig(hDeviceHandle, BinConf);
:
nRet := IFCIMG.ImgSetEventMask(hDeviceHandle, 0, 0, 320, 240);
デバイス名「IFIMGBIN1」のデバイスに対して、2 値化処理設定を行います。
2 値化対象の色成分を輝度成分、上限しきい値を 255、下限しきい値を 128、上限と下限の間の
場合、2 値化データを 0xFF にします。
また、面積値、重心値を求める為の測定範囲を指定します。開始点(0,0)(左上)とし、開始点
からの X 方向を 320、Y 方向を 240 とした測定範囲を設定します。
© 2003, 2016 Interface Corporation. All rights reserved.
102
GPC-5520 Help for Windows
14. ImgGetMeasurementValue
キャプチャ処理を完了した最新のフレームに対する面積、重心値を取得します。
※解像度の設定が「320×240」または「160×120」の場合、本関数は実行できません。
【書式】
●C 言語
INT ImgGetMeasurementValue(
HANDLE hDeviceHandle,
PDWORD pdwArea,
PDWORD pdwXcoordinates,
PDWORD pdwYcoordinates,
PDWORD pdwFrameNum
);
//
//
//
//
//
デバイスハンドル
面積
重心 X 座標
重心 Y 座標
フレーム数
●Visual Basic
Declare Function ImgGetMeasurementValue Lib "IfImg.dll"( _
ByVal
hDeviceHandle
As Long, _ ‘ デバイスハンドル
ByRef
pdwArea
As Long, _ ‘ 面積
ByRef
pdwXcoordinates
As Long, _ ‘ 重心 X 座標
ByRef
pdwYcoordinates
As Long, _ ‘ 重心 Y 座標
ByRef
pdwFrameNum
As Long _
‘ フレーム数
)As Long
●Delphi
function ImgGetMeasurementValue (
hDeviceHandle:
var pdwArea:
var pdwXcoordinates:
var pdwYcoordinate:
var pdwFrameNum:
THandle;
DWORD;
DWORD;
DWORD;
DWORD
): Integer; stdcall; external 'IfImg.dll';
//
//
//
//
//
●Visual C# .NET(x86、x64 共用)
[DllImport("IfImg.dll")]
public static extern int ImgGetMeasurementValue(
IntPtr
hDeviceHandle,
//
out uint
pdwArea,
//
out uint
pdwXcoordinates,
//
out uint
pdwYcoordinates,
//
out uint
pdwFrameNum
//
);
© 2003, 2016 Interface Corporation. All rights reserved.
103
デバイスハンドル
面積
X 座標
Y 座標
フレーム数
デバイスハンドル
面積
重心 X 座標
重心 Y 座標
フレーム数
GPC-5520 Help for Windows
●Visual C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgGetMeasurementValue(
uint
hDeviceHandle,
//
out uint
pdwArea,
//
out uint
pdwXcoordinates,
//
out uint
pdwYcoordinates,
//
out uint
pdwFrameNum
//
);
デバイスハンドル
面積
重心 X 座標
重心 Y 座標
フレーム数
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgGetMeasurementValue Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As IntPtr,
‘ デバイスハンドル
ByRef
pdwArea
As Integer,
‘ 面積
ByRef
pdwXcoordinates
As Integer,
‘ 重心 X 座標
ByRef
pdwYcoordinates
As Integer,
‘ 重心 Y 座標
ByRef
pdwFrameNum
As Integer
‘ フレーム数
)As Integer
●Visual Basic .NET(x86 専用)
Declare Function ImgGetMeasurementValue Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As Integer,
‘ デバイスハンドル
ByRef
pdwArea
As Integer,
‘ 面積
ByRef
pdwXcoordinates
As Integer,
‘ 重心 X 座標
ByRef
pdwYcoordinates
As Integer,
‘ 重心 Y 座標
ByRef
pdwFrameNum
As Integer
‘ フレーム数
)As Integer
●Delphi 8
class function ImgGetMeasurementValue (
hDeviceHandle:
Integer;
var pdwArea:
Cardinal;
var pdwXcoordinates:
Cardinal;
var pdwYcoordinate:
Cardinal;
var pdwFrameNum:
Cardinal
): Integer; static;
//
//
//
//
//
デバイスハンドル
面積
X 座標
Y 座標
フレーム数
【パラメータ】
hDeviceHandle
ImgOpen関数で取得したデバイスハンドルを指定してください。
pdwArea
計算された面積値を格納するバッファポインタを指定してください。
pdwXcoordinates
計算された重心の X 座標を格納するバッファポインタを指定してください。
© 2003, 2016 Interface Corporation. All rights reserved.
104
GPC-5520 Help for Windows
pdwYcoordinates
計算された重心の Y 座標を格納するバッファポインタを指定してください。
pdwFrameNum
計算されたフレーム番号を格納するバッファポインタを指定してください。
このフレーム番号はバスマスタによるキャプチャ時の番号です。
SDRAM キャプチャのフレーム番号は取得できません。
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESS が返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、
『4.5 戻り値一覧』をご参照くださ
い。
【使用例】
●C 言語
HANDLE hDeviceHandle;
DWORD dwArea;
DWORD dwXcoordinates;
DWORD dwYcoordinates;
DWORD dwFrameNum;
HANDLE hDeviceHandle;
IMGBINCONFIG pBinConf;
int nRet;
hDeviceHandle = ImgOpen(“IFIMGBIN1”);
:
pBinConf.dwColorIngredient = IFIMG_INGREDIENT_GRAY;
pBinConf.dwMaxthreshold = 255;
pBinConf.dwMinthreshold = 128;
pBinConf.dwBinarizationMode = IFIMG_BINMODE_NORMAL;
:
nRet = ImgSetBinarizationConfig(hDeviceHandle, &pBinConf);
:
nRet = ImgSetMeasurementRange(hDeviceHandle, 0, 0, 320, 240);
:
nRet = ImgGetMeasurementValue (
hDeviceHandle,
&dwArea,
&dwXcoordinates,
&dwYcoordinates,
&dwFrameNum
);
© 2003, 2016 Interface Corporation. All rights reserved.
105
GPC-5520 Help for Windows
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim dwArea As Long
Dim dwXcoordinates As Long
Dim dwYcoordinates As Long
Dim dwFrameNum As Long
Dim pBinConf As IMGBINCONFIG
Dim nRet As Long
lpszName = “IFIMGBIN1”
hDeviceHandle = ImgOpen(lpszName)
:
pBinConf.dwColorIngredient = IFIMG_INGREDIENT_GRAY
pBinConf.dwMaxthreshold = 255
pBinConf.dwMinthreshold = 128
pBinConf.dwBinarizationMode = IFIMG_BINMODE_NORMAL
:
nRet = ImgSetBinarizationConfig (hDeviceHandle, pBinConf)
:
:
nRet = ImgSetMeasurementRange (hDeviceHandle, 0, 0, 320, 240)
:
:
nRet = ImgGetMeasurementValue ( _
hDeviceHandle, _
dwArea, _
dwXcoordinates, _
dwYcoordinates, _
dwFrameNum_
)
© 2003, 2016 Interface Corporation. All rights reserved.
106
GPC-5520 Help for Windows
●Delphi
var
lpsName:String;
hDeviceHandle: THandle;
dwArea; DWORD:
dwXcoordinates; DWORD:
dwYcoordinates; DWORD;
dwFrameNum; DWORD;
nRet: Integer;
pBinConf: IMGBINCONFIG;
lpszName := 'IFIMGBIN1';
hDeviceHandle := ImgOpen(lpszName);
:
:
pBinConf.dwColorIngredient := IFIMG_INGREDIENT_GRAY;
pBinConf.dwMaxthreshold := 255;
pBinConf.dwMinthreshold := 128;
pBinConf.dwBinarizationMode := IFIMG_BINMODE_NORMAL;
nRet := ImgSetBinarizationConfig(hDeviceHandle, pBinConf);
:
:
nRet := ImgSetEventMask(hDeviceHandle, 0, 0, 320, 240);
:
:
nRet := ImgGetMeasurementValue (
hDeviceHandle,
dwArea,
dwXcoordinates,
dwYcoordinates,
dwFrameNum
);
© 2003, 2016 Interface Corporation. All rights reserved.
107
GPC-5520 Help for Windows
●Visual C# .NET
IntPtr hDeviceHandle;
uint dwArea;
uint dwXcoordinates;
uint dwYcoordinates;
uint dwFrameNum;
IFCIMG_ANY.IMGBINCONFIG pBinConf;
int nRet;
hDeviceHandle = IFCIMG_ANY.ImgOpen(“IFIMGBIN1”);
:
pBinConf.dwColorIngredient = IFCIMG_ANY.IFIMG_INGREDIENT_GRAY;
pBinConf.dwMaxthreshold = 255;
pBinConf.dwMinthreshold = 128;
pBinConf.dwBinarizationMode = IFCIMG_ANY.IFIMG_BINMODE_NORMAL;
:
nRet = IFCIMG_ANY.ImgSetBinarizationConfig(hDeviceHandle, ref pBinConf);
:
nRet = IFCIMG_ANY.ImgSetMeasurementRange(hDeviceHandle, 0, 0, 320, 240);
:
nRet = IFCIMG_ANY.ImgGetMeasurementValue (
hDeviceHandle,
out dwArea,
out dwXcoordinates,
out dwYcoordinates,
out dwFrameNum
);
© 2003, 2016 Interface Corporation. All rights reserved.
108
GPC-5520 Help for Windows
●Visual Basic .NET
Dim lpszName As String
Dim hDeviceHandle As IntPtr
Dim dwArea As Integer
Dim dwXcoordinates As Integer
Dim dwYcoordinates As Integer
Dim dwFrameNum As Integer
Dim pBinConf As IFCIMG_ANY.IMGBINCONFIG
Dim nRet As Integer
lpszName = “IFIMGBIN1”
hDeviceHandle = IFCIMG_ANY.ImgOpen(lpszName)
:
pBinConf.dwColorIngredient = IFCIMG_ANY.IFIMG_INGREDIENT_GRAY
pBinConf.dwMaxthreshold = 255
pBinConf.dwMinthreshold = 128
pBinConf.dwBinarizationMode = IFCIMG_ANY.IFIMG_BINMODE_NORMAL
:
nRet = IFCIMG_ANY.ImgSetBinarizationConfig(hDeviceHandle, pBinConf)
:
:
nRet = IFCIMG_ANY.ImgSetMeasurementRange(hDeviceHandle, 0, 0, 320, 240)
:
:
nRet = IFCIMG_ANY.ImgGetMeasurementValue( _
hDeviceHandle, _
dwArea, _
dwXcoordinates, _
dwYcoordinates, _
dwFrameNum_
)
© 2003, 2016 Interface Corporation. All rights reserved.
109
GPC-5520 Help for Windows
●Delphi 8
var
hDeviceHandle: Integer;
dwArea; Cardinal:
dwXcoordinates; Cardinal:
dwYcoordinates; Cardinal;
dwFrameNum; Cardinal;
nRet: Integer;
pBinConf: IFCIMG_ANY.IMGBINCONFG;
lpszName := 'IFIMGBIN1';
hDeviceHandle := IFCIMG_ANY.ImgOpen(lpszName);
:
pBinConf.dwColorIngredient := IFCIMG_ANY.IFIMG_INGREDIENT_GRAY;
pBinConf.dwMaxthreshold := 255;
pBinConf.dwMinthreshold := 128;
pBinConf.dwBinarizationMode := IFCIMG_ANY.IFIMG_BINMODE_NORMAL;
nRet := IFCIMG_ANY.ImgSetBinarizationConfig(hDeviceHandle, pBinConf);
:
:
nRet := IFCIMG_ANY.ImgSetEventMask(hDeviceHandle, 0, 0, 320, 240);
:
nRet := IFCIMG_ANY.ImgGetMeasurementValue (
hDeviceHandle,
dwArea,
dwXcoordinates,
dwYcoordinates,
dwFrameNum
);
デバイス名「IFIMGBIN1」のデバイスに対して、2 値化処理設定を行います。
2 値化対象の色成分を輝度成分、上限しきい値を 255、下限しきい値を 128、上限と下限の間の
場合、2 値化データを 0xFF にします。
面積値、重心値を求める為の測定範囲を指定します。開始点(0,0)(左上)とし、開始点からの X
方向を 320、Y 方向を 240 とした測定範囲を設定します。
その後、面積値、重心値(X 座標値と Y 座標値)を取得します。
キャプチャ中に ImgGetMeasurementValue 関数を実行した場合、フレーム数を取得します。
dwFrame の値で何フレーム目のデータに対して測定を行ったのか、知ることができます。
※キャプチャを実行せずともカメラ等に接続している限り、取り込んでいるフレームデータに
対して、面積値、重心値を取得することも可能です。ただし、dwFrame の値は無効なデータ
です。
© 2003, 2016 Interface Corporation. All rights reserved.
110
GPC-5520 Help for Windows
15. ImgSetTriggerConfig
トリガ発生条件を設定します。
【書式】
●C 言語
INT ImgSetTriggerConfig(
HANDLE
hDeviceHandle,
PIMGTRGCONFIG
pTriggerConfig
// デバイスハンドル
// IMGTRGCONFIG 構造体の
ポインタ
);
●Visual Basic
Declare Function ImgSetTriggerConfig Lib "IfImg.dll"( _
ByVal
hDeviceHandle
As Long, _
‘ デバイスハンドル
ByRef
pTriggerConfig As IMGTRGCONFIG _ ‘ IMGTRGCONFIG 構造体
への参照渡し
)As Long
●Delphi
function ImgSetTriggerConfig (
hDeviceHandle:
THandle;
var pTriggerConfig: IMGTRGCONFIG
// デバイスハンドル
// IMGTRGCONFIG 構造体
への参照渡し
): Integer; stdcall; external 'IfImg.dll';
●Visual C# .NET(x86、x64 共用)
[DllImport("IfImg.dll")]
public static extern int ImgSetTriggerConfig(
IntPtr
hDeviceHandle,
ref IMGTRGCONFIG pTriggerConfig
// デバイスハンドル
// IMGTRGCONF 構造体の
ポインタ
);
●Visual C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgSetTriggerConfig(
uint
hDeviceHandle,
ref IMGTRGCONFIG pTriggerConfig
// デバイスハンドル
// IMGTRGCONF 構造体の
ポインタ
);
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgSetTriggerConfig Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As IntPtr,
‘ デバイスハンドル
ByRef
pTriggerConfig As IMGTRGCONFIG
‘ IMGTRGCONF 構造体
への参照渡し
)As Integer
© 2003, 2016 Interface Corporation. All rights reserved.
111
GPC-5520 Help for Windows
●Visual Basic .NET(x86 専用)
Declare Function ImgSetTriggerConfig Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As Integer,
‘ デバイスハンドル
ByRef
pTriggerConfig As IMGTRGCONFIG
‘ IMGTRGCONF 構造体
への参照渡し
)As Integer
●Delphi 8
class function ImgSetTriggerConfig (
hDeviceHandle:
Integer;
var pTriggerConfig: IMGTRGCONFIG
// デバイスハンドル
// IMGTRGCONF 構造体
への参照渡し
): Integer; static;
【パラメータ】
hDeviceHandle
ImgOpen関数で取得したデバイスハンドルを指定してください。
pTriggerConfig
IMGTRGCONFIG 構造体へのポインタを指定してください。
構造体の説明については、『4.4 構造体』をご参照ください。
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、
『4.5 戻り値一覧』をご参照くださ
い。
© 2003, 2016 Interface Corporation. All rights reserved.
112
GPC-5520 Help for Windows
●C 言語
HANDLE hDeviceHandle;
IMGBINCONFG pBinConf;
IMGTRGCONFIG pTrigConf;
int nRet;
hDeviceHandle = ImgOpen(“IFIMGBIN1”);
:
pBinConf.dwColorIngredient = IFIMG_INGREDIENT_GRAY;
pBinConf.dwMaxthreshold = 255;
pBinConf.dwMinthreshold = 128;
pBinConf.dwBinarizationMode = IFIMG_BINMODE_NORMAL;
:
nRet = ImgSetBinarizationConfig(hDeviceHandle, &pBinConf);
:
nRet = ImgSetMeasurementRange(hDeviceHandle, 159, 119, 320, 240);
:
pTrigConf.dwTriggerEnabled = 0x07; // 面積、重心、面積 AND 重心トリガ発生の有効
pTrigConf.dwAreaMax = 3000;
// 面積上限値
pTrigConf.dwAreaMin = 2000;
// 面積下限値
pTrigConf.dwStartPointX = 239;
// トリガ範囲開始点(X 座標)
pTrigConf.dwStartPointY = 179;
// トリガ範囲開始点(Y 座標)
pTrigConf.dwXLength = 160;
// 開始点からの X 方向への長さ
pTrigConf.dwYLength = 120;
// 開始点からの Y 方向への長さ
pTrigConf.dwTriggerRangeMode = 0x00; // 論理反転設定
:
nRet = ImgSetTriggerConfig(hDeviceHandle, &pTrigConf);
:
© 2003, 2016 Interface Corporation. All rights reserved.
113
GPC-5520 Help for Windows
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim dwArea As Long
Dim dwXcoordinates As Long
Dim dwYcoordinates As Long
Dim dwFrameNum As Long
Dim pBinConf As IMGBINCONFIG
Dim pTrigConf As IMGTRGCONFIG
Dim nRet As Long
lpszName = “IFIMGBIN1”
hDeviceHandle = ImgOpen(lpszName)
:
pBinConf.dwColorIngredient = IFIMG_INGREDIENT_GRAY
pBinConf.dwMaxthreshold = 255
pBinConf.dwMinthreshold = 128
pBinConf.dwBinarizationMode = IFIMG_BINMODE_NORMAL
:
nRet = ImgSetBinarizationConfig (hDeviceHandle, pBinConf)
:
nRet = ImgSetMeasurementRange(hDeviceHandle, 159, 119, 320, 240)
:
pTrigConf.dwTriggerEnabled = &H07 ‘ 面積、重心、面積 AND 重心トリガ発生の有効
pTrigConf.dwAreaMax = 3000
‘ 面積上限値
pTrigConf.dwAreaMin = 2000
‘ 面積下限値
pTrigConf.dwStartPointX = 239
‘ トリガ範囲開始点(X 座標)
pTrigConf.dwStartPointY = 179
‘ トリガ範囲開始点(Y 座標)
pTrigConf.dwXLength = 160
‘ 開始点からの X 方向への長さ
pTrigConf.dwYLength = 120
‘ 開始点からの Y 方向への長さ
pTrigConf.dwTriggerRangeMode = &H00 ‘ 転設定
:
nRet = ImgSetTriggerConfig(hDeviceHandle, pTrigConf)
© 2003, 2016 Interface Corporation. All rights reserved.
114
GPC-5520 Help for Windows
●Delphi
var
lpsName:String;
hDeviceHandle: THandle;
dwArea; DWORD:
dwXcoordinates; DWORD:
dwYcoordinates; DWORD;
dwFrameNum; DWORD;
nRet: Integer;
pBinConf: IMGBINCONFIG;
pTrigConf: IMGTRGCONFIG;
lpszName := 'IFIMGBIN1';
hDeviceHandle := ImgOpen(lpszName);
:
:
pBinConf.dwColorIngredient := IFIMG_INGREDIENT_GRAY;
pBinConf.dwMaxthreshold := 255;
pBinConf.dwMinthreshold := 128;
pBinConf.dwBinarizationMode := IFIMG_BINMODE_NORMAL;
:
nRet := ImgSetBinarizationConfig(hDeviceHandle, pBinConf);
:
nRet := ImgSetMeasurementRange(hDeviceHandle, 159, 119, 320, 240);
:
pTrigConf.dwTriggerEnabled := 0x07; // 面積、重心、面積 AND 重心トリガ発生の有効
pTrigConf.dwAreaMax := 3000;
// 面積上限値
pTrigConf.dwAreaMin := 2000;
// 面積下限値
pTrigConf.dwStartPointX := 239;
// トリガ範囲開始点(X 座標)
pTrigConf.dwStartPointY := 179;
// トリガ範囲開始点(Y 座標)
pTrigConf.dwXLength := 160;
// 開始点からの X 方向への長さ
pTrigConf.dwYLength := 120;
// 開始点からの Y 方向への長さ
pTrigConf.dwTriggerRangeMode := 0x00; // 論理反転設定
:
nRet := ImgSetTriggerConfig(hDeviceHandle, pTrigConf);
© 2003, 2016 Interface Corporation. All rights reserved.
115
GPC-5520 Help for Windows
●Visual C# .NET
IntPtr hDeviceHandle;
IFCIMG_ANY.IMGBINCONFG pBinConf;
IFCIMG_ANY.IMGTRGCONFIG pTrigConf;
int nRet;
hDeviceHandle = IFCIMG_ANY.ImgOpen(“IFIMGBIN1”);
:
pBinConf.dwColorIngredient = IFCIMG_ANY.IFIMG_INGREDIENT_GRAY;
pBinConf.dwMaxthreshold = 255;
pBinConf.dwMinthreshold = 128;
pBinConf.dwBinarizationMode = IFCIMG_ANY.IFIMG_BINMODE_NORMAL;
:
nRet = IFCIMG_ANY.ImgSetBinarizationConfig(hDeviceHandle, ref pBinConf);
:
nRet = IFCIMG_ANY.ImgSetMeasurementRange(hDeviceHandle, 159, 119, 320, 240);
:
pTrigConf.dwTriggerEnabled = 0x07; // 面積、重心、面積 AND 重心トリガ発生の有効
pTrigConf.dwAreaMax = 3000;
// 面積上限値
pTrigConf.dwAreaMin = 2000;
// 面積下限値
pTrigConf.dwStartPointX = 239;
// トリガ範囲開始点(X 座標)
pTrigConf.dwStartPointY = 179;
// トリガ範囲開始点(Y 座標)
pTrigConf.dwXLength = 160;
// 開始点からの X 方向への長さ
pTrigConf.dwYLength = 120;
// 開始点からの Y 方向への長さ
pTrigConf.dwTriggerRangeMode = 0x00; // 論理反転設定
:
nRet = IFCIMG_ANY.ImgSetTriggerConfig(hDeviceHandle, ref pTrigConf);
:
© 2003, 2016 Interface Corporation. All rights reserved.
116
GPC-5520 Help for Windows
●Visual Basic .NET
Dim lpszName As String
Dim hDeviceHandle As IntPtr
Dim dwArea As Integer
Dim dwXcoordinates As Integer
Dim dwYcoordinates As Integer
Dim dwFrameNum As Integer
Dim pBinConf As IFCIMG_ANY.IMGBINCONFIG
Dim pTrigConf As IFCIMG_ANY.IMGTRGCONFIG
Dim nRet As Integer
lpszName = “IFIMGBIN1”
hDeviceHandle = IFCIMG_ANY.ImgOpen(lpszName)
:
pBinConf.dwColorIngredient = IFCIMG_ANY.IFIMG_INGREDIENT_GRAY
pBinConf.dwMaxthreshold = 255
pBinConf.dwMinthreshold = 128
pBinConf.dwBinarizationMode = IFCIMG_ANY.IFIMG_BINMOED_NORMAL
:
nRet = IFCIMG_ANY.ImgSetBinarizationConfig (hDeviceHandle, pBinConf)
:
nRet = IFCIMG_ANY.ImgSetMeasurementRange(hDeviceHandle, 159, 119, 320, 240)
:
pTrigConf.dwTriggerEnabled = &H07 ‘ 面積、重心、面積 AND 重心トリガ発生の有効
pTrigConf.dwAreaMax = 3000
‘ 面積上限値
pTrigConf.dwAreaMin = 2000
‘ 面積下限値
pTrigConf.dwStartPointX = 239
‘ トリガ範囲開始点(X 座標)
pTrigConf.dwStartPointY = 179
‘ トリガ範囲開始点(Y 座標)
pTrigConf.dwXLength = 160
‘ 開始点からの X 方向への長さ
pTrigConf.dwYLength = 120
‘ 開始点からの Y 方向への長さ
pTrigConf.dwTriggerRangeMode = &H00 ‘ 転設定
:
nRet = IFCIMG_ANY.ImgSetTriggerConfig(hDeviceHandle, pTrigConf)
© 2003, 2016 Interface Corporation. All rights reserved.
117
GPC-5520 Help for Windows
●Delphi 8
var
hDeviceHandle: Integer;
dwArea; Cardinal:
dwXcoordinates; Cardinal:
dwYcoordinates; Cardinal;
dwFrameNum; Cardinal;
nRet: Integer;
pBinConf: IFCIMG.IMGBINCONFG;
pTrigConf: IFCIMG.IMGTRGCONFG;
lpszName := 'IFIMGBIN1';
hDeviceHandle := IFCIMG.ImgOpen(lpszName);
:
:
pBinConf.dwColorIngredient := IFCIMG.IFIMG_INGREDIENT_GRAY;
pBinConf.dwMaxthreshold := 255;
pBinConf.dwMinthreshold := 128;
pBinConf.dwBinarizationMode := IFCIMG.IFIMG_BINMOED_NORMAL;
:
nRet := IFCIMG.ImgSetBinarizationConfig(hDeviceHandle, pBinConf);
:
nRet := IFCIMG.ImgSetMeasurementRange(hDeviceHandle, 159, 119, 320, 240);
:
pTrigConf.dwTriggerEnabled := 0x07; // 面積、重心、面積 AND 重心トリガ発生の有効
pTrigConf.dwAreaMax := 3000;
// 面積上限値
pTrigConf.dwAreaMin := 2000;
// 面積下限値
pTrigConf.dwStartPointX := 239;
// トリガ範囲開始点(X 座標)
pTrigConf.dwStartPointY := 179;
// トリガ範囲開始点(Y 座標)
pTrigConf.dwXLength := 160;
// 開始点からの X 方向への長さ
pTrigConf.dwYLength := 120;
// 開始点からの Y 方向への長さ
pTrigConf.dwTriggerRangeMode := 0x00; // 論理反転設定
:
nRet := IFCIMG.ImgSetTriggerConfig(hDeviceHandle, pTrigConf);
デバイス名「IFIMGBIN1」のデバイスに対して、トリが発生条件を指定します。
2 値化対象の色成分を輝度成分、上限しきい値を 255、下限しきい値を 128、上限と下限の間の
場合、2 値化データを 0xFF にします。
面積値、重心値を求める為の測定範囲を指定します。開始点(159,119)とし、開始点からの X
方向を 320、Y 方向を 240 とした測定範囲を設定します。
トリが発生条件を設定します。
面積トリガ、重心トリガ、面積 AND 重心トリガの発生を有効にします。
面積値の上限値を 3000、下限値を 2000 に設定します。
重心値トリガ発生エリアの開始点を(239,179)とし、開始点からの X 方向を 160、Y 方向を 120
とした測定範囲を設定します。
© 2003, 2016 Interface Corporation. All rights reserved.
118
GPC-5520 Help for Windows
※キャプチャを実行せずとも、カメラ等の映像機器に接続している限り、取り込んでいるフレ
ームデータに対して、トリガ発生状態を取得することが可能です。ImgGetCaptureStatus関数
で、トリガ発生状態を取得する事が可能です。また、ImgSetEventMask関数で割り込み発生を
有効にすることにより、割り込みイベントによる検知も可能です。
© 2003, 2016 Interface Corporation. All rights reserved.
119
GPC-5520 Help for Windows
16. ImgInputDI
【機能】
汎用入力の状態を取得します。
【書式】
●C 言語
INT ImgInputDI(
HANDLE
hDeviceHandle,
PWORD
pwDI
);
//
//
デバイスハンドル
状態を格納する変数のポインタ
●Visual Basic
Declare Function ImgInputDI Lib "IfImg.dll"( _
ByVal
hDeviceHandle
As Long, _ ‘ デバイスハンドル
ByRef
pwDI
As Integer _ ‘ 状態を格納する変数への参照渡し
)As Long
●Delphi
function ImgInoutDI (
hDeviceHandle: THandle;
// デバイスハンドル
var pwDI:
WORD
// 状態を格納する変数の参照渡し
): Integer; stdcall; external 'IfImg.dll';
●Visual C# .NET(x86、x64 共用)
[DllImport("IfImg.dll")]
public static extern int ImgInputDI(
IntPtr
hDeviceHandle,
ref short
pwDI
);
●Visual C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgInputDI(
uint
hDeviceHandle,
ref short
pwDI
);
//
//
デバイスハンドル
状態を格納する変数のポインタ
//
//
デバイスハンドル
状態を格納する変数のポインタ
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgInputDI Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As IntPtr, ‘ デバイスハンドル
ByRef
pwDI
As Short
‘ 状態を格納する変数への参照渡し
)As Integer
© 2003, 2016 Interface Corporation. All rights reserved.
120
GPC-5520 Help for Windows
●Visual Basic .NET(x86 専用)
Declare Function ImgInputDI Lib "IfImg.DLL"(
ByVal
hDeviceHandle As Integer, ‘ デバイスハンドル
ByRef
pwDI
As Short
‘ 状態を格納する変数のへ参照渡し
)As Integer
●Delphi 8
class function ImgInoutDI (
hDeviceHandle: THandle;
var pwDI:
Word
): Integer; static;
//
//
デバイスハンドル
状態を格納する変数の参照渡し
【パラメータ】
hDeviceHandle
ImgOpen関数で取得したデバイスハンドルを指定してください。
pwDI
入力状態を格納する変数へのポインタを指定してください。
入力値のフォーマットは以下のとおりです。
ビット
内容
ビット
内容
bit15
IN16
bit7
IN8
bit14
IN15
bit6
IN7
0:High
1:Low
bit13
IN14
bit5
IN6
bit12
IN13
bit4
IN5
bit11
IN12
bit3
IN4
bit10
IN11
bit2
IN3
bit9
IN10
bit1
IN2
bit8
IN9
bit0
IN1
IN9~IN16 は、PEX-H531322 専用です。
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、
『4.5 戻り値一覧』をご参照くださ
い。
【使用例】
●C 言語
INT nRet;
HANDLE hDeviceHandle;
WORD wDI;
hDeviceHandle = ImgOpen(“IFIMGST1”);
:
:
nRet = ImgInputDI(hDeviceHandle, &wDI);
© 2003, 2016 Interface Corporation. All rights reserved.
121
GPC-5520 Help for Windows
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim wDI As Integer
lpszName = “IFIMGST1”
hDeviceHandle = ImgOpen(lpszName)
:
:
nRet = ImgInputDI(hDeviceHandle, wDI)
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
DI; WORD:
lpszName := 'IFIMGST1';
hDeviceHandle := ImgOpen(lpszName);
:
:
nRet := ImgInputDI(hDeviceHandle, wDI);
●Visual C# .NET
int nRet;
IntPtr hDeviceHandle;
short wDI;
hDeviceHandle = IFCIMG_ANY.ImgOpen(“IFIMGST1”);
nRet = IFCIMG_ANY.ImgInputDI(hDeviceHandle, ref wDI);
●Visual Basic .NET
Dim lpszName As String
Dim hDeviceHandle As IntPtr
Dim wDI As Short
lpszName = “IFIMGST1”
hDeviceHandle = IFCIMG_ANY.ImgOpen(lpszName)
nRet = IFCIMG_ANY.ImgInputDI(hDeviceHandle, wDI)
© 2003, 2016 Interface Corporation. All rights reserved.
122
GPC-5520 Help for Windows
●Delphi 8
var
lpszName: String;
hDeviceHandle: Integer;
wDI; Word:
lpszName := 'IFIMGST1';
hDeviceHandle := IFCIMG.ImgOpen(lpszName);
nRet := IFCIMG.ImgInputDI(hDeviceHandle, wDI);
デバイス名「IFIMGST1」の汎用入力状態を取得します。(変数 wDI に格納します)
© 2003, 2016 Interface Corporation. All rights reserved.
123
GPC-5520 Help for Windows
17. ImgOutputDO
【機能】
汎用出力の制御を行います。
【書式】
●C 言語
INT ImgOutputDO(
HANDLE
WORD
);
hDeviceHandle,
wDO
//
//
●Visual Basic
Declare Function ImgOutputDO Lib "IfImg.dll"( _
ByVal
hDeviceHandle
As Long, _
‘
ByVal
wDO
As Integer _
‘
)As Long
●Delphi
function ImgOutputDO (
hDeviceHandle: THandle;
wDO:
WORD
): Integer; stdcall; external 'IfImg.dll';
●Visual C# .NET(x86、x64 共用)
[DllImport("IfImg.dll")]
public static extern int ImgOutputDO(
IntPtr
hDeviceHandle,
short
wDO
);
●Visual C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgOutputDO(
uint
hDeviceHandle,
short
wDO
);
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgOutputDO Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As IntPtr,
ByVal
wDO
As Short
)As Integer
デバイスハンドル
出力の設定
デバイスハンドル
出力の設定
//
//
デバイスハンドル
出力の設定
//
//
デバイスハンドル
出力の設定
//
//
デバイスハンドル
出力の設定
‘
‘
デバイスハンドル
出力の設定
© 2003, 2016 Interface Corporation. All rights reserved.
124
GPC-5520 Help for Windows
●Visual Basic .NET(x86 専用)
Declare Function ImgOutputDO Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As Integer,
ByVal
wDO
As Short
)As Integer
●Delphi 8
class function ImgOutputDO (
hDeviceHandle: Integer;
wDO:
Word
): Integer; static;
‘
‘
デバイスハンドル
出力の設定
//
//
デバイスハンドル
出力の設定
【パラメータ】
hDeviceHandle
ImgOpen関数で取得したデバイスハンドルを指定してください。
wDO
出力の設定を指定してください。
出力値のフォーマットは以下のとおりです。
ビット
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
内容
OUT 16 OUT 15 OUT 14 OUT 13 OUT 12 OUT 11 OUT 10 OUT 9
ビット
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
内容
OUT8
OUT7
OUT6
OUT 5
OUT 4
OUT 3
OUT 2
OUT 1
※ OUT8/OUT7:CBI-530115(Tx) CSI-530115 CBI-530215(Tx) CSI-530215 に対応
※ OUT9~OUT16 は、PEX-H531322 専用です。
0:High を出力
1:Low を出力
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、
『4.5 戻り値一覧』をご参照くださ
い。
【使用例】
●C 言語
INT nRet;
HANDLE hDeviceHandle;
hDeviceHandle = ImgOpen(“IFIMGST1”);
:
:
nRet = ImgOutputDO(hDeviceHandle, 0x01);
© 2003, 2016 Interface Corporation. All rights reserved.
125
GPC-5520 Help for Windows
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
lpszName = “IFIMGST1”
hDeviceHandle = ImgOpen(lpszName)
:
:
nRet = ImgOutputDO(hDeviceHandle, &H01)
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
lpszName := 'IFIMGST1';
hDeviceHandle := ImgOpen(lpszName);
:
:
nRet := ImgOutputDO(hDeviceHandle, $01);
●Visual C# .NET
int nRet;
IntPtr hDeviceHandle;
hDeviceHandle = IFCIMG_ANY.ImgOpen(“IFIMGST1”);
nRet = IFCIMG_ANY.ImgOutputDO(hDeviceHandle, 0x01);
●Visual Basic .NET
Dim lpszName As String
Dim hDeviceHandle As IntPtr
lpszName = “IFIMGST1”
hDeviceHandle = IFCIMG_ANY.ImgOpen(lpszName)
nRet = IFCIMG_ANY.ImgOutputDO(hDeviceHandle, &H01)
© 2003, 2016 Interface Corporation. All rights reserved.
126
GPC-5520 Help for Windows
●Delphi 8
var
lpszName: String;
hDeviceHandle: Integer;
lpszName := 'IFIMGST1';
hDeviceHandle := IFCIMG.ImgOpen(lpszName);
nRet := IFCIMG.ImgOutputDO(hDeviceHandle, $01);
デバイス名「IFIMGST1」の汎用出力の OUT1 のみ Low 出力に設定します。
© 2003, 2016 Interface Corporation. All rights reserved.
127
GPC-5520 Help for Windows
18. ImgSetEventMask
【機能】
汎用入力割り込み、1 フレーム転送完了割り込み、各種トリガ割り込みのマスク、アンマスク
を設定します。
【書式】
●C 言語
INT ImgSetEventMask(
HANDLE
PIMGEVENTTABLE
hDeviceHandle,
pMask
// デバイスハンドル
// IMGEVENTTABLE 構造体
へのポインタ
);
●Visual Basic
Declare Function ImgSetEventMask Lib "IfImg.dll"( _
ByVal
hDeviceHandle
As Long, _
‘ デバイスハンドル
ByRef
pMask
As IMGEVENTTABLE _ ‘ IMGEVENTTABLE 構造体
への参照渡し
)As Long
●Delphi
function ImgSetEventMask (
hDeviceHandle: THandle;
var pMask:
IMGEVENTTABLE
// デバイスハンドル
// IMGEVENTTABLE 構造体
への参照渡し
): Integer; stdcall; external 'IfImg.dll';
●Visual C# .NET(x86、x64 共用)
[DllImport("IfImg.dll")]
public static extern int ImgSetEventMask(
IntPtr
hDeviceHandle,
ref IMGEVENTTABLE pMask
// デバイスハンドル
// IMGEVENTTABLE 構造体
へのポインタ
);
●Visual C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgSetEventMask(
uint
hDeviceHandle,
ref IMGEVENTTABLE pMask
// デバイスハンドル
// IMGEVENTTABLE 構造体
へのポインタ
);
© 2003, 2016 Interface Corporation. All rights reserved.
128
GPC-5520 Help for Windows
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgSetEventMask Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As IntPtr,
‘ デバイスハンドル
ByRef
pMask
As IMGEVENTTABLE
‘ IMGEVENTTABLE 構造体
への参照渡し
)As Integer
●Visual Basic .NET(x86 専用)
Declare Function ImgSetEventMask Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As Integer,
‘ デバイスハンドル
ByRef
pMask
As IMGEVENTTABLE
‘ IMGEVENTTABLE 構造体
への参照渡し
)As Integer
●Delphi 8
class function ImgSetEventMask (
hDeviceHandle: Integer;
var pMask:
IMEVENTTABLE
// デバイスハンドル
// IMGEVENTTABLE 構造体
への参照渡し
): Integer; static;
【パラメータ】
hDeviceHandle
ImgOpen関数で取得したデバイスハンドルを指定してください。
pMask
割り込みマスク設定構造体(IMGEVENTTABLE)へのポインタを指定してください。
構造体の説明については、『4.4 構造体』をご参照ください。
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、
『4.5 戻り値一覧』をご参照くださ
い。
【使用例】
●C 言語
HANDLE hDeviceHandle;
IMGEVENTTABLE Mask;
hDeviceHandle = ImgOpen(“IFIMGST1”);
:
:
Mask.dwDI = 0x01;
Mask.dwFrame = 0x01;
Mask.dwTrigger = 0;
nRet = ImgSetEventMask(hDeviceHandle, &Mask);
© 2003, 2016 Interface Corporation. All rights reserved.
129
GPC-5520 Help for Windows
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim Mask As IMGEVENTTABLE
lpszName = “IFIMGST1”
hDeviceHandle = ImgOpen(lpszName)
:
:
Mask.dwDI = &H01
Mask.dwFrame = &H01
Mask.dwTrigger = 0
nRet = ImgSetEventMask(hDeviceHandle, Mask)
●Delphi
var
lpsName:String;
hDeviceHandle: THandle;
Mask: IMGEVENTTABLE;
hDeviceHandle := ImgOpen(“IFIMGST1”);
:
:
Mask.dwDI := $01;
Mask.dwFrame := $01;
Maskd.dwTrigger := 0;
nRet := ImgSetEventMask(hDeviceHandle, Mask);
●Visual C# .NET
IntPtr hDeviceHandle;
IFCIMG_ANY.IMGEVENTTABLE Mask;
hDeviceHandle = IFCIMG_ANY.ImgOpen(“IFIMGST1”);
:
:
Mask.dwDI = 0x01;
Mask.dwFrame = 0x01;
Mask.dwTrigger = 0;
nRet = IFCIMG_ANY.ImgSetEventMask(hDeviceHandle, ref Mask);
© 2003, 2016 Interface Corporation. All rights reserved.
130
GPC-5520 Help for Windows
●Visual Basic .NET
Dim lpszName As String
Dim hDeviceHandle As IntPtr
Dim Mask As IFCIMG_ANY.IMGEVENTTABLE
lpszName = “IFIMGST1”
hDeviceHandle = IFCIMG_ANY.ImgOpen(lpszName)
:
:
Mask.dwDI = &H01
Mask.dwFrame = &H01
Mask.dwTrigger = 0
nRet = IFCIMG_ANY.ImgSetEventMask(hDeviceHandle, Mask)
●Delphi 8
var
hDeviceHandle: Inetger;
Mask: IFCIMG.IMGEVENTTABLE;
hDeviceHandle := IFCIMG.ImgOpen(“IFIMGST1”);
:
:
Mask.dwDI := $01;
Mask.dwFrame := $01;
Maskd.dwTrigger := 0;
nRet := IFCIMG.ImgSetEventMask(hDeviceHandle, Mask);
デバイス名「IFIMGST1」のデバイスに対して、
「IN1 割り込み」「フレーム転送完了割り込み」
をアンマスク(有効に)します。
© 2003, 2016 Interface Corporation. All rights reserved.
131
GPC-5520 Help for Windows
【使用例 2】
●C 言語
HANDLE hDeviceHandle;
IMGEVENTTABLE Mask;
hDeviceHandle = ImgOpen(“IFIMGMEM1”);
:
:
Mask.dwDI = 0x01;
Mask.dwFrame = 0x02;
Mask.dwTrigger = 0;
nRet = ImgSetEventMask(hDeviceHandle, &Mask);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim Mask As IMGEVENTTABLE
lpszName = “IFIMGMEM1”
hDeviceHandle = ImgOpen(lpszName)
:
:
Mask.dwDI = &H01
Mask.dwFrame = &H02
Mask.dwTrigger = 0
nRet = ImgSetEventMask(hDeviceHandle, Mask)
●Delphi
var
hDeviceHandle: THandle;
Mask: IMGEVENTTABLE;
hDeviceHandle := ImgOpen(“IFIMGMEM1”);
:
:
Mask.dwDI := $01;
Mask.dwFrame := $02;
Maskd.dwTrigger := 0;
nRet := ImgSetEventMask(hDeviceHandle, Mask);
© 2003, 2016 Interface Corporation. All rights reserved.
132
GPC-5520 Help for Windows
●Visual C# .NET
IntPtr hDeviceHandle;
IFCIMG_ANY.IMGEVENTTABLE Mask;
hDeviceHandle = IFCIMG_ANY.ImgOpen(“IFIMGMEM1”);
:
:
Mask.dwDI = 0x01;
Mask.dwFrame = 0x02;
Mask.dwTrigger = 0;
nRet = IFCIMG_ANY.ImgSetEventMask(hDeviceHandle, ref Mask);
●Visual Basic .NET
Dim lpszName As String
Dim hDeviceHandle As IntPtr
Dim Mask As IFCIMG_ANY.IMGEVENTTABLE
lpszName = “IFIMGMEM1”
hDeviceHandle = IFCIMG_ANY.ImgOpen(lpszName)
:
:
Mask.dwDI = &H01
Mask.dwFrame = &H02
Mask.dwTrigger = 0
nRet = IFCIMG_ANY.ImgSetEventMask(hDeviceHandle, Mask)
●Delphi 8
var
hDeviceHandle: Integer;
Mask: IFCIMG.IMGEVENTTABLE;
hDeviceHandle := IFCIMG.ImgOpen(“IFIMGMEM1”);
:
:
Mask.dwDI := $01;
Mask.dwFrame := $02;
Maskd.dwTrigger := 0;
nRet := IFCIMG.ImgSetEventMask(hDeviceHandle, Mask);
デバイス名「IFIMGMEM1」のデバイスに対して、
「IN1 割り込み」「フレーム転送完了割り込み」
をアンマスク(有効に)します。この場合 SDRAM によるキャプチャでのフレーム転送完了割り
込みのアンマスクが実行されます。
© 2003, 2016 Interface Corporation. All rights reserved.
133
GPC-5520 Help for Windows
【使用例 3】
●C 言語
HANDLE hDeviceHandle;
IMGEVENTTABLE Mask;
hDeviceHandle = ImgOpen(“IFIMGBIN1”);
:
:
Mask.dwDI = 0x01;
Mask.dwFrame = 0x01;
Mask.dwTrigger = 0x07;
nRet = ImgSetEventMask(hDeviceHandle, &Mask);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim Mask As IMGEVENTTABLE
lpszName = “IFIMGBIN1”
hDeviceHandle = ImgOpen(lpszName)
:
:
Mask.dwDI = &H01
Mask.dwFrame = &H01
Mask.dwTrigger = &H07
nRet = ImgSetEventMask(hDeviceHandle, Mask)
●Delphi
var
hDeviceHandle: THandle;
Mask: IMGEVENTTABLE;
hDeviceHandle := ImgOpen(“IFIMGBIN1”);
:
:
Mask.dwDI := $01;
Mask.dwFrame := $01;
Maskd.dwTrigger := $07;
nRet := ImgSetEventMask(hDeviceHandle, Mask);
© 2003, 2016 Interface Corporation. All rights reserved.
134
GPC-5520 Help for Windows
zzzzzzzzzzzzzzzzzz
●Visual C# .NET
IntPtr hDeviceHandle;
IFCIMG_ANY.IMGEVENTTABLE Mask;
hDeviceHandle = IFCIMG_ANY.ImgOpen(“IFIMGBIN1”);
:
:
Mask.dwDI = 0x01;
Mask.dwFrame = 0x01;
Mask.dwTrigger = 0x07;
nRet = IFCIMG_ANY.ImgSetEventMask(hDeviceHandle, ref Mask);
●Visual Basic .NET
Dim lpszName As String
Dim hDeviceHandle As IntPtr
Dim Mask As IFCIMG_ANY.IMGEVENTTABLE
lpszName = “IFIMGBIN1”
hDeviceHandle = IFCIMG_ANY.ImgOpen(lpszName)
:
:
Mask.dwDI = &H01
Mask.dwFrame = &H01
Mask.dwTrigger = &H07
nRet = IFCIMG_ANY.ImgSetEventMask(hDeviceHandle, Mask)
●Delphi 8
var
hDeviceHandle: Integer;
Mask: IFCIMG.IMGEVENTTABLE;
hDeviceHandle := IFCIMG.ImgOpen(“IFIMGBIN1”);
:
:
Mask.dwDI := $01;
Mask.dwFrame := $01;
Maskd.dwTrigger := $07;
nRet := IFCIMG.ImgSetEventMask(hDeviceHandle, Mask);
デバイス名「IFIMGBIN1」のデバイスに対して、
「IN1 割り込み」「フレーム転送完了割り込み」
をアンマスク(有効に)します。
PCI/CTP/CPZ-55x2,55x3,55x4,55x5,55x6、CSI/LPC/PEX/LPC-530215 はトリガ発生の割り込みも
設定できます。この場合、「面積トリガ」、「重心トリガ」、
「面積 AND 重心トリガ」をアンマス
クします。キャプチャを開始せずとも、「面積トリガ」、「重心トリガ」、
「面積 AND 重心トリガ」
は条件を満たしていれば割り込みは発生します。
© 2003, 2016 Interface Corporation. All rights reserved.
135
GPC-5520 Help for Windows
19. ImgGetEventMask
【機能】
各種割り込みマスクの設定状態を取得します。
【書式】
●C 言語
INT ImgGetEventMask(
HANDLE
PIMGEVENTTABLE
hDeviceHandle,
pMask
// デバイスハンドル
// IMGEVENTTABLE 構造体
へのポインタ
);
●Visual Basic
Declare Function ImgGetEventMask Lib "IfImg.dll"( _
ByVal
hDeviceHandle
As Long, _
‘ デバイスハンドル
ByRef
pMask
As IMGEVENTTABLE _ ‘ IMGEVENTTABLE 構造体
への参照渡し
)As Long
●Delphi
function ImgGetEventMask (
hDeviceHandle: THandle;
var pMask:
IMEVENTTABLE
// デバイスハンドル
// IMGEVENTTABLE 構造体
へのポインタ
): Integer; stdcall; external 'IfImg.dll';
●Visual C# .NET(x86、x64 共用)
[DllImport("IfImg.dll")]
public static extern int ImgGetEventMask(
IntPtr
hDeviceHandle,
out IMGEVENTTABLE pMask
// デバイスハンドル
// IMGEVENTTABLE 構造体
へのポインタ
);
●Visual C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgGetEventMask(
uint
hDeviceHandle,
out IMGEVENTTABLE pMask
// デバイスハンドル
// IMGEVENTTABLE 構造体
へのポインタ
);
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgGetEventMask Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As IntPtr,
‘ デバイスハンドル
ByRef
pMask
As IMGEVENTTABLE
‘ IMGEVENTTABLE 構造体
への参照渡し
)As Integer
© 2003, 2016 Interface Corporation. All rights reserved.
136
GPC-5520 Help for Windows
●Visual Basic .NET(x86 専用)
Declare Function ImgGetEventMask Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As Integer,
‘ デバイスハンドル
ByRef
pMask
As IMGEVENTTABLE
‘ IMGEVENTTABLE 構造体
への参照渡し
)As Integer
●Delphi
class function ImgGetEventMask (
hDeviceHandle: Integer;
var pMask:
IMEVENTTABLE
// デバイスハンドル
// IMGEVENTTABLE 構造体
へのポインタ
): Integer; static;
【パラメータ】
hDeviceHandle
ImgOpen関数で取得したデバイスハンドルを指定してください。
pMask
割り込みマスク設定構造体(IMGEVENTTABLE)へのポインタを指定してください。
構造体の説明については、『4.4 構造体』をご参照ください。
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、
『4.5 戻り値一覧』をご参照くださ
い。
【使用例】
●C 言語
HANDLE hDeviceHandle;
IMGEVENTTABLE Mask;
hDeviceHandle = ImgOpen(“IFIMGST1”);
:
:
nRet = ImgGetEventMask(hDeviceHandle, &Mask);
© 2003, 2016 Interface Corporation. All rights reserved.
137
GPC-5520 Help for Windows
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim Mask As IMGEVENTTABLE
lpszName = “IFIMGST1”
hDeviceHandle = ImgOpen(lpszName)
:
:
nRet = ImgGetEventMask(hDeviceHandle, Mask)
●Delphi
var
hDeviceHandle: THandle;
Mask: IMGEVENTTABLE;
hDeviceHandle := ImgOpen(“IFIMGST1”);
:
:
nRet := ImgGetEventMask(hDeviceHandle, Mask);
●Visual C# .NET
IntPtr hDeviceHandle;
IFCIMG_ANY.IMGEVENTTABLE Mask;
hDeviceHandle = IFCIMG_ANY.ImgOpen(“IFIMGST1”);
:
:
nRet = IFCIMG_ANY.ImgGetEventMask(hDeviceHandle, out Mask);
●Visual Basic .NET
Dim lpszName As String
Dim hDeviceHandle As IntPtr
Dim Mask As IFCIMG_ANY.IMGEVENTTABLE
lpszName = “IFIMGST1”
hDeviceHandle = IFCIMG_ANY.ImgOpen(lpszName)
:
:
nRet = IFCIMG_ANY.ImgGetEventMask(hDeviceHandle, Mask)
© 2003, 2016 Interface Corporation. All rights reserved.
138
GPC-5520 Help for Windows
●Delphi 8
var
hDeviceHandle: Integer;
Mask: IFCIMG.IMGEVENTTABLE;
hDeviceHandle := IFCIMG.ImgOpen(“IFIMGST1”);
:
:
nRet := IFCIMG.ImgGetEventMask(hDeviceHandle, Mask);
デバイス名「IFIMGST1」のデバイスの割り込みマスク設定を取得します。
© 2003, 2016 Interface Corporation. All rights reserved.
139
GPC-5520 Help for Windows
20. ImgSetEvent
【機能】
割り込み処理の設定(メッセージ、イベント、コールバック関数の登録)を行います。
ImgSetEventMask でアンマスクした割り込み要因が発生した場合、本関数で設定した割り込み
処理が実行されます。
【書式】
●C 言語
INT ImgSetEvent(
HANDLE
PIMGEVENTREQ
hDeviceHandle,
pEvent
// デバイスハンドル
// IMGEVENTREQ 構造体
へのポインタ
);
●Visual Basic
Declare Function ImgSetEvent Lib "IfImg.dll"( _
ByVal
hDeviceHandle
As Long, _
‘
ByRef
pEvent
As IMGEVENTREQ _
‘
デバイスハンドル
IMGEVENTREQ 構造体
への参照渡し
)As Long
●Delphi
function ImgSetEvent (
hDeviceHandle: THandle;
var pEvent:
//
IMGEVENTREQ
デバイスハンドル
// IMGEVENTREQ 構造体
への参照渡し
): Integer; stdcall; external 'IfImg.dll';
●Visual C# .NET(x86、x64 共用)
[DllImport("IfImg.dll")]
public static extern int ImgSetEvent(
IntPtr
hDeviceHandle,
ref IMGEVENTREQ
pEvent
// デバイスハンドル
// IMGEVENTREQ 構造体
へのポインタ
);
●Visual C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgSetEvent(
uint
hDeviceHandle,
ref IMGEVENTREQ
pEvent
// デバイスハンドル
// IMGEVENTREQ 構造体
へのポインタ
);
© 2003, 2016 Interface Corporation. All rights reserved.
140
GPC-5520 Help for Windows
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgSetEvent Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As IntPtr,
ByRef
pEvent
As IMGEVENTREQ
‘
‘
デバイスハンドル
IMGEVENTREQ 構造体
への参照渡し
‘
‘
デバイスハンドル
IMGEVENTREQ 構造体
への参照渡し
)As Integer
●Visual Basic .NET(x86 専用)
Declare Function ImgSetEvent Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As Integer,
ByRef
pEvent
As IMGEVENTREQ
)As Integer
●Delphi 8
class function ImgSetEvent (
hDeviceHandle: Integer;
var pEvent:
//
IMGEVENTREQ
デバイスハンドル
// IMGEVENTREQ 構造体
への参照渡し
): Integer; static;
【パラメータ】
hDeviceHandle
ImgOpen関数で取得したデバイスハンドルを指定してください。
pEvent
割り込み設定構造体へのポインタを指定してください。
構造体の説明については、『4.4 構造体』をご参照ください。
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、
『4.5 戻り値一覧』をご参照くださ
い。
© 2003, 2016 Interface Corporation. All rights reserved.
141
GPC-5520 Help for Windows
【備考】
※ Visual Basic 6.0 ではコールバック関数が使用できません。メッセージ機能、またはイベ
ントを使用してください。
メッセージ機能を使用する場合には、メッセージを送出するフォームのウィンドウ・プロ
シージャを Win32API の SetWindowLong 関数を使用してフックする必要があります。使用方
法については、付属のサンプルプログラム、および Win32API のリファレンスを参照してく
ださい。
●コールバック関数の書式
コールバック関数の書式は以下の通りです。
(x86 専用)
VOID CALLBACK pCallBackProc (
IMGEVENTTABLE
Event,
DWORD
dwFrameCnt,
DWORD
dwUser
);
(x64 専用)
VOID CALLBACK pCallBackProc (
IMGEVENTTABLE
Event,
DWORD
dwFrameCnt,
PVOID
pUser
);
●VISUAL C# .NET(x86、x64 共用)
public delegate void PIMGCALLBACK(
IMGEVENTTABLE
Event,
uint
dwFrameCnt,
IntPtr
pUser
);
●VISUAL C# .NET(x86 専用)
public delegate void PIMGCALLBACK(
IMGEVENTTABLE
Event,
uint
dwFrameCnt,
uint
dwUser
);
//
//
//
割込み要因
転送完了フレーム数
ユーザデータ
//
//
//
割込み要因
転送完了フレーム数
ユーザデータ
//
//
//
割り込み要因
フレームカウンタ
ユーザデータ
//
//
//
割り込み要因
フレームカウンタ
ユーザデータ
●Visual Basic .NET(x86、x64 共用)
Delegate Sub PIMGCALLBACK( _
ByVal
Event
As IMGEVENTTABLE, _ ‘
ByVal
dwFrameCnt
As Integer, _
‘
ByRef
pUser
As IntPtr_
‘
)
割り込み要因
フレームカウンタ
ユーザデータ
●Visual Basic .NET(x86 専用)
© 2003, 2016 Interface Corporation. All rights reserved.
142
GPC-5520 Help for Windows
Delegate Sub PIMGCALLBACK( _
ByVal
Event
As IMGEVENTTABLE, _ ‘
ByVal
dwFrameCnt
As Integer, _
‘
ByVal
dwUser
As Integer _
‘
)
●Delphi 8
var
procedure CallProc(
Event:
IMGEVENTTABLE;
dwFrameCnt
User:
Cardinal;
Cardinal
割り込み要因
フレームカウンタ
ユーザデータ
//
割り込み要因
//
//
フレームカウンタ
ユーザデータ
);forwad;
const
CallProcDelegete: CMLCALLBACK= @CallProc;
○Event
割り込み要因構造
コールバック関数が実行された要因が格納されています。
構造体の説明については、『4.4 構造体』をご参照ください。
○dwFrameCnt
コールバック関数が実行された時点での転送されたフレーム数です。
(1~FFFFFFFFh)
FFFFFFFFh までカウント後、1 に戻ります。
○dwUser(pUser)
ユーザ・データ
ImgSetEvent 関数実行時で指定したユーザ・データが取得されます。
x86 環境の場合は DWORD 型、x64 環境の場合は PVOID 型となります。
© 2003, 2016 Interface Corporation. All rights reserved.
143
GPC-5520 Help for Windows
【使用例】
●C 言語(x86 専用)
// コールバック関数
VOID CALLBACK lpCallBackProc(IMGEVENTTABLE Event, DWORD dwFrameCnt, DWORD dwUser){
// 割り込み処理を記述します
:
:
}
// メインルーチン
INT nRet;
HANDLE hDeviceHandle;
IMGEVENTTABLE Mask;
IMGEVENTREQ Event;
hDeviceHandle = ImgOpen(“IFIMGST1”);
:
:
Event.hWnd = NULL;
Event.uMessage = NULL;
Event.hEvent = NULL;
Event.pCallBackProc = (PIMGCALLBACK)lpCallBackProc
Event.dwUser = 0x1234;
nRet = ImgSetEvent(hDeviceHandle, &Event);
Mask.dwDI = 0x01;
Mask.dwFrame = 0x01;
Mask.dwTrigger = 0;
nRet = ImgSetEventMask(hDeviceHandle, &Mask);
© 2003, 2016 Interface Corporation. All rights reserved.
144
GPC-5520 Help for Windows
●C 言語(x64 専用)
// コールバック関数
VOID CALLBACK lpCallBackProc(IMGEVENTTABLE Event, DWORD dwFrameCnt, PVOID pUser)
{
DWORD UserData;
UserData = *((PDWORD)pUser);
}
// メインルーチン
INT nRet;
HANDLE hDeviceHandle;
IMGEVENTTABLE Mask;
IMGEVENTREQ Event;
DWORD UserData;
hDeviceHandle = ImgOpen(“IFIMGST1”);
:
:
Event.hWnd = NULL;
Event.uMessage = NULL;
Event.hEvent = NULL;
Event.pCallBackProc = (PIMGCALLBACK)lpCallBackProc
UserData = 0x1234;
Event.pUser = &UserData;
nRet = ImgSetEvent(hDeviceHandle, &Event);
Mask.dwDI = 0x01;
Mask.dwFrame = 0x01;
Mask.dwTrigger = 0;
nRet = ImgSetEventMask(hDeviceHandle, &Mask);
© 2003, 2016 Interface Corporation. All rights reserved.
145
GPC-5520 Help for Windows
●Visual Basic
Visual Basic 6.0 では、コールバック関数が使用できないため、メッセージ機能を使用しま
す。
‘ 元のウィンドウ・プロシージャのアドレス保存用変数
Public lpPrevWndProc As Long
‘ ウィンドウ・プロシージャ
Function WindowProc(ByVal hw As Long, ByVal uMsg As Long, _
ByVal wParam As Long, ByVal lParam As Long) As Long
‘ 割り込み処理(WM_USER に対する処理)を記述します
If uMsg = WM_USER Then
:
End If
‘ 元のウィンドウ・プロシージャを呼び出します
WindowProc = CallWindowProc(lpPrevWndProc, hw, uMsg, wParam, lParam)
End Function
‘ メインルーチン
Dim nRet As Long
Dim lpszName As String
Dim hDeviceHandle As Long
Dim Mask As IMGEVENTTABLE
Dim Event As IMGEVENTREQ
lpszName = “IFIMGST1”
hDeviceHandle = ImgOpen(lpszName)
:
:
' ウィンドウ・プロシージャをフックします
lpPrevWndProc = SetWindowLong(Form1.hWnd, GWL_WNDPROC, AddressOf WindowProc)
Event.hWnd = Form1.hWnd
Event.uMessage = WM_USER
Event.hEvent = 0
Event.lpCallBackProc = 0
Event.dwUser = &H1234
nRet = ImgSetEvent(hDeviceHandle, Event);
Mask.dwDI = &H01
Mask.dwFrame = &H01
Mask.dwTrigger = 0
nRet = ImgSetEventMask(hDeviceHandle, Mask)
© 2003, 2016 Interface Corporation. All rights reserved.
146
GPC-5520 Help for Windows
●Delphi
// コールバック関数
procedure lpCallBackProc(Event: IMGEVENTTABLE, dwFrameCnt: DWORD, dwUser: DWORD);
stdcall;
var
//変数定義
begin
// 割り込み処理を記述します
:
:
end;
// メインルーチン
var
nRet: Integer;
hDeviceHandle: THandle;
Mask: IMGEVENTTABLE;
Event: IMGEVENTTABLE;;
hDeviceHandle := ImgOpen(“IFIMGST1”);
:
:
Event.hWnd := 0;
Event.uMessage := 0;
Event.hEvent := 0;
Event.lpCallBackProc := Addr(lpCallBackProc);
Event.dwUser := $1234;
nRet := ImgSetEvent(hDeviceHandle, Event);
Mask.dwDI := $01;
Mask.dwFrame := $01;
Mask.dwTrigger := 0;
nRet := ImgSetEventMask(hDeviceHandle, Mask);
© 2003, 2016 Interface Corporation. All rights reserved.
147
GPC-5520 Help for Windows
●Visual C# .NET
// コールバック関数
public void lpCallBackProc(IFCIMG_ANY.IMGEVENTTABLE Event, uint dwFrameCnt,
IntPtr pUser)
{
// 割り込み処理を記述します
:
:
}
// メインルーチン
uint nRet;
IntPtr hDeviceHandle;
IFCIMG_ANY.IMGEVENTTABLE Mask;
IFCIMG_ANY.IMGEVENTREQ Event;
IFCIMG_ANY.PIMGCALLBACK proc = new IFCIMG_ANY.PIMGCALLBACK(lpCallBackProc);
hDeviceHandle = IFCIMG_ANY.ImgOpen(“IFIMGST1”);
:
:
Event.hWnd = NULL;
Event.uMessage = NULL;
Event.hEvent = NULL;
Event.pCallBackProc = proc;
Event.pUser = new IntPtr(0x1234);
nRet = IFCIMG_ANY.ImgSetEvent(hDeviceHandle, ref Event);
Mask.dwDI = 0x01;
Mask.dwFrame = 0x01;
Mask.dwTrigger = 0;
nRet = IFCIMG_ANY.ImgSetEventMask(hDeviceHandle, ref Mask);
© 2003, 2016 Interface Corporation. All rights reserved.
148
GPC-5520 Help for Windows
●Visual Basic .NET
' コールバック関数
Private Sub lpCallBackProc ( ByVal IntrFlg As IFCIMG_ANY.IMGEVENTTABLE,_
ByVal dwFrameCnt As Integer, ByRef User As IntPtr)
‘ 割り込み処理を記述します
:
:
End Sub
‘ メインルーチン
Dim nRet As Integer
Dim lpszName As String
Dim hDeviceHandle As IntPtr
Dim Mask As IFCIMG_ANY.IMGEVENTTABLE
Dim Event As IFCIMG_ANY.IMGEVENTREQ
Dim proc As IFCIMG_ANY.PIMGCALLBACK
lpszName = “IFIMGST1”
hDeviceHandle = IFCIMG_ANY.ImgOpen(lpszName)
:
:
proc = New IFCIMG_ANY.PIMGCALLBACK(AddressOf lpCallBackProc);
Event.hWnd = 0
Event.uMessage = 0
Event.hEvent = 0
Event.lpCallBackProc = proc
Event.pUser = New IntPtr(0x1234);
nRet = IFCIMG_ANY.ImgSetEvent(hDeviceHandle, Event)
Mask.dwDI = &H01
Mask.dwFrame = &H01
Mask.dwTrigger = 0
nRet = IFCIMG_ANY.ImgSetEventMask(hDeviceHandle, Mask)
© 2003, 2016 Interface Corporation. All rights reserved.
149
GPC-5520 Help for Windows
●Delphi 8
var
procedure lpCallBackProc(Event: IFCIMG.IMGEVENTTABLE; dwFrameCnt:Cardinal;
dwUser:Cardinal);forwad;
// ガーベージコレクトによってデリゲートが破棄されないようにデリゲートを
// グローバル変数に代入し、その変数をアンマネージ関数へ渡します。
const
CallProcDelegete: IMGCALLBACK= @lpCallBackProc;
:
//コールバック関数
procedure lpCallBackProc (Event: IFCIMG.IMGEVENTTABLE; dwFrameCnt:Cardinal;
dwUser:Cardinal)
begin
//ここに割り込み発生時に処理するコードを記述します。
:
end;
// メインルーチン
var
nRet: Integer;
hDeviceHandle: Integer;
Mask: IFCIMG.IMGEVENTTABLE;
Event: IFCIMG.IMGEVENTTABLE;
hDeviceHandle := IFCIMG.ImgOpen(“IFIMGST1”);
:
:
Event.hWnd := 0;
Event.uMessage := 0;
Event.hEvent := 0;
Event.lpCallBackProc := CallProcDelegete;
Event.dwUser := $1234;
nRet := IFCIMG.ImgSetEvent(hDeviceHandle, Event);
Mask.dwDI := $01;
Mask.dwFrame := $01;
Mask.dwTrigger := 0;
nRet := IFCIMG.ImgSetEventMask(hDeviceHandle, Mask);
デバイス名「IFIMGST1」のデバイスに対して、
「IN1 割り込み」「フレーム転送完了割り込み」
時に実行する割り込みイベントを設定します。
Visual C++ : コールバック関数(lpCallBackProc)を実行。
Visual Basic : メッセージ(WM_USER)を送出。
Delphi
: コールバック関数(lpCallBackProc)を実行。
© 2003, 2016 Interface Corporation. All rights reserved.
150
GPC-5520 Help for Windows
21. ImgSetEventEx
【機能】
割り込みの設定(メッセージ、イベント、コールバック関数の登録)を行います。
ImgSetEventMask でアンマスクした割り込み要因が発生した場合、本関数で設定した割り込み
処理が実行されます。
【書式】
●C 言語
INT ImgSetEventEx(
HANDLE
PIMGEVENTREQEX
hDeviceHandle,
pEventEx
// デバイスハンドル
// IMGEVENTREQEX 構造体
へのポインタ
);
●Visual Basic
Declare Function ImgSetEventEx Lib "IfImg.dll"( _
ByVal
hDeviceHandle
As Long, _
‘ デバイスハンドル
ByRef
pEventEx
As IMGEVENTREQEX _ ‘ IMGEVENTREQEX 構造体
への参照渡し
)As Long
●Delphi
function ImgSetEventEx (
hDeviceHandle: THandle;
var pEventEx:
//
IMGEVENTREQEX
デバイスハンドル
// IMGEVENTREQEX 構造体
への参照渡し
): Integer; stdcall; external 'IfImg.dll';
●Visual C# .NET(x86、x64 共用)
[DllImport("IfImg.dll")]
public static extern int ImgSetEventEx(
IntPtr
hDeviceHandle,
ref IMGEVENTREQEX pEventEx
// デバイスハンドル
// IMGEVENTREQEX 構造体
へのポインタ
);
●Visual C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgSetEventEx(
uint
hDeviceHandle,
ref IMGEVENTREQEX pEventEx
// デバイスハンドル
// IMGEVENTREQEX 構造体
へのポインタ
);
© 2003, 2016 Interface Corporation. All rights reserved.
151
GPC-5520 Help for Windows
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgSetEventEx Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As IntPtr,
‘
ByRef
pEventEx
As IMGEVENTREQEX
‘
デバイスハンドル
IMGEVENTREQEX 構造体
への参照渡し
)As Integer
●Visual Basic .NET(x86 専用)
Declare Function ImgSetEventEx Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As Integer,
‘
ByRef
pEventEx
As IMGEVENTREQEX
‘
デバイスハンドル
IMGEVENTREQEX 構造体
への参照渡し
)As Integer
●Delphi 8
class function ImgSetEventEx (
hDeviceHandle: Integer;
var pEventEx:
//
IMGEVENTREQEX
デバイスハンドル
// IMGEVENTREQEX 構造体
への参照渡し
): Integer; static;
【パラメータ】
hDeviceHandle
ImgOpen関数で取得したデバイスハンドルを指定してください。
pEventEx
割り込み設定構造体へのポインタを指定してください。
構造体の説明については、『4.4 構造体』をご参照ください。
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、
『4.5 戻り値一覧』をご参照くださ
い。
© 2003, 2016 Interface Corporation. All rights reserved.
152
GPC-5520 Help for Windows
【備考】
※ Visual Basic 6.0 ではコールバック関数が使用できません。メッセージ機能、またはイベ
ントを使用してください。
メッセージ機能を使用する場合には、メッセージを送出するフォームのウィンドウ・プロ
シージャを Win32API の SetWindowLong 関数を使用してフックする必要があります。使用方
法については、付属のサンプルプログラム、および Win32API のリファレンスを参照してく
ださい。
●コールバック関数の書式
コールバック関数の書式は以下の通りです。
(x86 専用)
VOID CALLBACK pCallBackProcEx (
IMGEVENTTABLEEX
EventEx,
//
DWORD
dwUser
//
);
(x64 専用)
VOID CALLBACK pCallBackProcEx (
IMGEVENTTABLEEX
EventEx,
PVOID
pUser
);
●VISUAL C# .NET(x86、x64 共用)
public delegate void PIMGCALLBACKEX(
IMGEVENTTABLEEX
Event,
IntPtr
pUser
);
●VISUAL C# .NET(x86 専用)
public delegate void PIMGCALLBACKEX(
IMGEVENTTABLEEX
Event,
uint
dwUser
);
割込み要因
ユーザデータ
//
//
割込み要因
ユーザデータ
//
//
割り込み要因
ユーザデータ
//
//
割り込み要因
ユーザデータ
●Visual Basic .NET(x86、x64 共用)
Delegate Sub PIMGCALLBACKEX ( _
ByVal
Event
As IMGEVENTTABLEEX, _
ByRef
pUser
As IntPtr_
)
●Visual Basic .NET
Delegate Sub PIMGCALLBACKEX ( _
ByVal
Event
As IMGEVENTTABLEEX, _
ByVal
dwUser
As Integer _
)
‘
‘
割り込み要因
ユーザデータ
‘
‘
割り込み要因
ユーザデータ
●Delphi 8
© 2003, 2016 Interface Corporation. All rights reserved.
153
GPC-5520 Help for Windows
var
procedure CallProc(
Event:
IMGEVENTTABLEEX;
//
割り込み要因
User:
Cardinal
// ユーザデータ
);forwad;
const
CallProcDelegete: CMLCALLBACK= @CallProc;
○EventEx
割り込み要因情報です。割り込みの情報とフレームカウンタを取得できます。
構造体の説明については、『4.4 構造体』をご参照ください。
○dwUser(pUser)
ユーザ・データ
ImgSetEventEx 関数実行時で指定したユーザ・データが取得されます。
【使用例】
●C 言語(x86)
// コールバック関数
VOID CALLBACK lpCallBackProcEx(IMGEVENTTABLEEX EventEx, DWORD dwUser){
// 割り込み処理を記述します
:
:
}
// メインルーチン
INT nRet;
HANDLE hDeviceHandle;
IMGEVENTTABLE Mask;
IMGEVENTREQEX EventEx;
hDeviceHandle = ImgOpen(“IFIMGMEM1”);
:
EventEx.hWnd = NULL;
EventEx.uMessage = NULL;
EventEx.hEvent = NULL;
EventEx.pCallBackProcEx = (PIMGCALLBACKEX)lpCallBackProcEx
EventEx.dwUser = 0x1234;
nRet = ImgSetEventEx(hDeviceHandle, &EventEx);
Mask.dwDI = 0x01;
Mask.dwFrame = 0x01;
Mask.dwTrigger = 0;
nRet = ImgSetEventMask(hDeviceHandle, &Mask);
© 2003, 2016 Interface Corporation. All rights reserved.
154
GPC-5520 Help for Windows
●C 言語(x64)
// コールバック関数
VOID CALLBACK lpCallBackProcEx(IMGEVENTTABLEEX EventEx, PVOID pUser)
{
DWORD UserData;
UserData = *((PDWORD)pUser);
}
// メインルーチン
INT nRet;
HANDLE hDeviceHandle;
IMGEVENTTABLE Mask;
IMGEVENTREQEX EventEx;
DWORD
UserData;
hDeviceHandle = ImgOpen(“IFIMGMEM1”);
:
:
EventEx.hWnd = NULL;
EventEx.uMessage = NULL;
EventEx.hEvent = NULL;
EventEx.pCallBackProcEx = (PIMGCALLBACKEX)lpCallBackProcEx
UserData = 0x1234;
EventEx.pUser = &UserData;
nRet = ImgSetEventEx(hDeviceHandle, &EventEx);
Mask.dwDI = 0x01;
Mask.dwFrame = 0x01;
Mask.dwTrigger = 0;
nRet = ImgSetEventMask(hDeviceHandle, &Mask);
© 2003, 2016 Interface Corporation. All rights reserved.
155
GPC-5520 Help for Windows
●Visual Basic
Visual Basic 6.0 では、コールバック関数が使用できないため、メッセージ機能を使用しま
す。
‘ 元のウィンドウ・プロシージャのアドレス保存用変数
Public lpPrevWndProc As Long
‘ ウィンドウ・プロシージャ
Function WindowProc(ByVal hw As Long, ByVal uMsg As Long, _
ByVal wParam As Long, ByVal lParam As Long) As Long
‘ 割り込み処理(WM_USER に対する処理)を記述します
If uMsg = WM_USER Then
:
End If
‘ 元のウィンドウ・プロシージャを呼び出します
WindowProc = CallWindowProc(lpPrevWndProc, hw, uMsg, wParam, lParam)
End Function
‘ メインルーチン
Dim nRet As Long
Dim lpszName As String
Dim hDeviceHandle As Long
Dim Mask As IMGEVENTTABLE
Dim EventEx As IMGEVENTREQEX
lpszName = “IFIMGMEM1”
hDeviceHandle = ImgOpen(lpszName)
:
:
' ウィンドウ・プロシージャをフックします
lpPrevWndProc = SetWindowLong(Form1.hWnd, GWL_WNDPROC, AddressOf WindowProc)
EventEx.hWnd = Form1.hWnd
EventEx.uMessage = WM_USER
EventEx.hEvent = 0
EventEx.lpCallBackProc = 0
EventEx.dwUser = &H1234
nRet = ImgSetEventEx(hDeviceHandle, EventEx)
Mask.dwDI = &H01
Mask.dwFrame = &H01
Mask.dwTrigger = 0
nRet = ImgSetEventMask(hDeviceHandle, Mask)
© 2003, 2016 Interface Corporation. All rights reserved.
156
GPC-5520 Help for Windows
●Delphi
// コールバック関数
procedure lpCallBackProcEx(EventEx: IMGEVENTTABLEEX, dwUser: DWORD); stdcall;
var
//変数定義
begin
// 割り込み処理を記述します
:
:
end;
// メインルーチン
var
nRet: Integer;
hDeviceHandle: THandle;
Mask: IMGEVENTTABLE;
EventEx: IMGEVENTREQEX;
hDeviceHandle := ImgOpen(“IFIMGMEM1”);
:
:
EventEx.hWnd := 0;
EventEx.uMessage := 0;
EventEx.hEvent := 0;
EventEx.lpCallBackProcEx := Addr(lpCallBackProcEx);
EventEx.dwUser := $1234;
nRet := ImgSetEventEx(hDeviceHandle, EventEx);
Mask.dwDI := $01;
Mask.dwFrame := $01;
Mask.dwTrigger := 0;
nRet := ImgSetEventMask(hDeviceHandle, Mask);
© 2003, 2016 Interface Corporation. All rights reserved.
157
GPC-5520 Help for Windows
●Visual C# .NET
// コールバック関数
public void lpCallBackProc(IFCIMG_ANY.IMGEVENTTABLEEX EventEx, IntPtr pUser)
{
// 割り込み処理を記述します
:
:
}
// メインルーチン
uint nRet;
IntPtr hDeviceHandle;
IFCIMG_ANY.IMGEVENTTABLE Mask;
IFCIMG_ANY.IMGEVENTREQEX EventEx;
IFCIMG_ANY.PIMGCALLBACKEX proc = new IFCIMG_ANY.PIMGCALLBACKEX(lpCallBackProc);
hDeviceHandle = IFCIMG_ANY.ImgOpen(“IFIMGMEM1”);
:
:
EventEx.hWnd = NULL;
EventEx.uMessage = NULL;
EventEx.hEvent = NULL;
EventEx.pCallBackProcEx = proc;
EventEx.pUser = new IntPtr(0x1234);
nRet = IFCIMG_ANY.ImgSetEventEx(hDeviceHandle, ref EventEx);
Mask.dwDI = 0x01;
Mask.dwFrame = 0x01;
Mask.dwTrigger = 0;
nRet = IFCIMG_ANY.ImgSetEventMask(hDeviceHandle, ref Mask);
© 2003, 2016 Interface Corporation. All rights reserved.
158
GPC-5520 Help for Windows
●Visual Basic .NET
' コールバック関数
Private Sub lpCallBackProc( ByVal EventEx As IFCIMG_ANY.IMGEVENTTABLEEX, _
ByRef pUser As IntPtr)
‘ 割り込み処理を記述します
:
:
End Sub
‘ メインルーチン
Dim nRet As Integer
Dim lpszName As String
Dim hDeviceHandle As IntPtr
Dim Mask As IFCIMG_ANY.IMGEVENTTABLE
Dim EventEx As IFCIMG_ANY.IMGEVENTREQEX
Dim proc As IFCIMG_ANY.PIMGCALLBACKEX
lpszName = “IFIMGMEM1”
hDeviceHandle = IFCIMG_ANY.ImgOpen(lpszName)
:
:
proc = New IFCIMG_ANY.PIMGCALLBACKEX(AddressOf lpCallBackProc);
EventEx.hWnd = 0
EventEx.uMessage = 0
EventEx.hEvent = 0
EventEx.lpCallBackProc = proc
EventEx.pUser = New IntPtr(&H1234)
nRet = IFCIMG_ANY.ImgSetEventEx(hDeviceHandle, EventEx)
Mask.dwDI = &H01
Mask.dwFrame = &H01
Mask.dwTrigger = 0
nRet = IFCIMG_ANY.ImgSetEventMask(hDeviceHandle, Mask)
© 2003, 2016 Interface Corporation. All rights reserved.
159
GPC-5520 Help for Windows
●Delphi 8
var
procedure CallProc(EventEx:IFCIMG.IMGEVENTTABLEEX; dwUser:Cardinal);forwad;
// ガーベージコレクトによってデリゲートが破棄されないようにデリゲートを
// グローバル変数に代入し、その変数をアンマネージ関数へ渡します。
const
CallProcDelegete: IMGCALLBACKEX= @CallProc;
:
//コールバック関数
procedure CallProc(EventEx:IFCIMG.IMGEVENTTABLEEX; dwUser:Cardinal)
begin
//ここに割り込み発生時に処理するコードを記述します。
:
end;
// メインルーチン
var
nRet: Integer;
hDeviceHandle: Integer;
Mask: IFCIMG.IMGEVENTTABLE;
EventEx: IFCIMG.IMGEVENTTABLEEX;
hDeviceHandle := IFCIMG.ImgOpen(“IFIMGMEM1”);
:
:
EventEx.hWnd := 0;
EventEx.uMessage := 0;
EventEx.hEvent := 0;
EventEx.lpCallBackProcEx := CallProcDelegete;
EventEx.dwUser := $1234;
nRet := IFCIMG.ImgSetEventEx(hDeviceHandle, EventEx);
Mask.dwDI := $01;
Mask.dwFrame := $01;
Mask.dwTrigger := 0;
nRet := IFCIMG.ImgSetEventMask(hDeviceHandle, Mask);
デバイス名「IFIMGMEM1」のデバイスに対して、
「IN1 割り込み」「フレーム転送完了割り込み」
時に実行する割り込みイベントを設定します。
Visual C++ : コールバック関数(lpCallBackProc)を実行。
Visual Basic : メッセージ(WM_USER)を送出。
Delphi
: コールバック関数(lpCallBackProc)を実行。
© 2003, 2016 Interface Corporation. All rights reserved.
160
GPC-5520 Help for Windows
22. ImgSetChannel
【機能】
指定したチャンネルに切換えます。
【書式】
●C 言語
INT ImgSetChannel(
HANDLE
DWORD
);
hDeviceHandle,
dwChannelNum
//
//
デバイスハンドル
チャンネル番号
●Visual Basic
Declare Function ImgSetChannel Lib "IfImg.dll"( _
ByVal
hDeviceHandle
As Long, _
‘ デバイスハンドル
ByVal
dwChannelNum
As Long _
‘ チャンネル番号
)As Long
●Delphi
function ImgSetChannel (
hDeviceHandle:
THandle;
dwChannelNum:
DWORD
): Integer; stdcall; external 'IfImg.dll';
●Visual C# .NET(x86、x64 共用)
[DllImport("IfImg.dll")]
public static extern int ImgSetChannel(
IntPtr
hDeviceHandle,
uint
dwChannelNum
);
●Visual C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgSetChannel(
uint
hDeviceHandle,
uint
dwChannelNum
);
//
//
デバイスハンドル
チャンネル番号
//
//
デバイスハンドル
チャンネル番号
//
//
デバイスハンドル
チャンネル番号
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgSetChannel Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As IntPtr,
‘
ByVal
dwChannelNum
As Integer
‘
)As Integer
デバイスハンドル
チャンネル番号
© 2003, 2016 Interface Corporation. All rights reserved.
161
GPC-5520 Help for Windows
●Visual Basic .NET(x86 専用)
Declare Function ImgSetChannel Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As Integer, ‘
ByVal
dwChannelNum
As Integer
‘
)As Integer
●Delphi 8
class function ImgSetChannel (
hDeviceHandle:
Integer;
dwChannelNum:
Cardinal
): Integer; static;
デバイスハンドル
チャンネル番号
//
//
デバイスハンドル
チャンネル番号
【パラメータ】
hDeviceHandle
ImgOpen関数で取得したデバイスハンドルを指定してください。
dwChannelNum
切り換えるチャンネルを指定します。
識別子
値
IFIMG_CHANNEL_CN1
IFIMG_CHANNEL_CN4
IFIMG_CHANNEL_CN5
IFIMG_CHANNEL_CN6
IFIMG_CHANNEL_CN7
00000001h
00000004h
00000005h
00000006h
00000007h
チャンネル番号
PCI 型式
PCI 型式以外
CN1
VIN1
CN4
VIN2
CN5
VIN3
CN6
VIN4
CN7
VIN5
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、
『4.5 戻り値一覧』をご参照くださ
い。
【備考】
・CTP/CPZ/PCI-5531、CTP/CPZ/PCI-5533 を使用する場合、チャンネル切り換えは SDRAM キャプ
チャにも反映されます。
・本関数実行直後に ImgStartCapture 関数を呼び出してキャプチャを開始した場合、正常にキ
ャプチャした画像が得られない場合があります。これは切換えによって、インタフェースモ
ジュールとカメラの出力が同期していない為です。
本関数実行後、約 33ms ほどの同期時間を設ける事により回避してください。
© 2003, 2016 Interface Corporation. All rights reserved.
162
GPC-5520 Help for Windows
【使用例】
●C 言語
HANDLE hDeviceHandle;
int nRet;
hDeviceHandle = ImgOpen(“IFIMGST1”);
:
nRet = ImgSetChannel(hDeviceHandle, IFIMG_CHANNEL_CN4);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim nRet As Long
lpszName = “IFIMGST1”
hDeviceHandle = ImgOpen(lpszName)
:
nRet = ImgSetChannel(hDeviceHandle, IFIMG_CHANNEL_CN4)
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
nRet: Integer;
lpszName := 'IFIMGST1';
hDeviceHandle := ImgOpen(lpszName);
:
nRet := ImgSetChannel(hDeviceHandle, IFIMG_CHANNEL_CN4);
●Visual C# .NET
IntPtr hDeviceHandle;
int nRet;
hDeviceHandle = IFCIMG_ANY.ImgOpen(“IFIMGST1”);
:
nRet = IFCIMG_ANY.ImgSetChannel(hDeviceHandle, IFCIMG_ANY.IFIMG_CHANNEL_CN4);
●Visual Basic .NET
Dim lpszName As String
Dim hDeviceHandle As IntPtr
Dim nRet As Integer
lpszName = “IFIMGST1”
hDeviceHandle = IFCIMG_ANY.ImgOpen(lpszName)
:
nRet = IFCIMG_ANY.ImgSetChannel(hDeviceHandle, IFCIMG_ANY.IFIMG_CHANNEL_CN4)
© 2003, 2016 Interface Corporation. All rights reserved.
163
GPC-5520 Help for Windows
●Delphi 8
var
lpszName: String;
hDeviceHandle: Integer;
nRet: Integer;
lpszName := 'IFIMGST1';
hDeviceHandle := IFCIMG.ImgOpen(lpszName);
:
nRet := IFCIMG.ImgSetChannel(hDeviceHandle, IFCIMG.IFIMG_CHANNEL_CN4);
デバイス名「IFIMGST1」のデバイスに対して、使用するチャンネルを CN4 に設定します。
© 2003, 2016 Interface Corporation. All rights reserved.
164
GPC-5520 Help for Windows
23. ImgSetCaptureConfig
バスマスタによるキャプチャの動作を設定します。
間引きによるキャプチャの設定(1Ch 使用時限定)や、多チャンネル版でのチャンネル切り換え
タイミングを設定します。SDRAM によるキャプチャには反映されません。
【書式】
●C 言語
INT ImgSetCaptureConfig(
HANDLE
hDeviceHandle,
PIMGCAPCONFIG
pCaptureConfig
// デバイスハンドル
// IMGCAPCONFIG 構造体
へのポインタ
);
●Visual Basic
Declare Function ImgSetCaptureConfig Lib "IfImg.dll"( _
ByVal
hDeviceHandle
As Long, _
‘ デバイスハンドル
ByRef
pCaptureConfig As IMGCAPCONFIG _ ‘ IMGCAPCONFIG 構造体
への参照渡し
)As Long
●Delphi
function ImgSetCaptureConfig (
hDeviceHandle:
THandle;
var pCaptureConfig: IMGCAPCONFIG
// デバイスハンドル
// IMGCAPCONFIG 構造体
への参照渡し
): Integer; stdcall; external 'IfImg.dll';
●Visual C# .NET(x86、x64 共用)
[DllImport("IfImg.dll")]
public static extern int ImgSetCaptureConfig(
IntPtr
hDeviceHandle,
ref IMGCAPCONFIG pCaptureConfig
// デバイスハンドル
// IMGCAPCONFIG 構造体
へのポインタ
);
●Visual C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgSetCaptureConfig(
uint
hDeviceHandle,
ref IMGCAPCONFIG pCaptureConfig
// デバイスハンドル
// IMGCAPCONFIG 構造体
へのポインタ
);
© 2003, 2016 Interface Corporation. All rights reserved.
165
GPC-5520 Help for Windows
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgSetCaptureConfig Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As IntPtr,
‘ デバイスハンドル
ByRef
pCaptureConfig As IMGCAPCONFIG
‘ IMGCAPCONFIG 構造体
への参照渡し
)As Integer
●Visual Basic .NET(x86 専用)
Declare Function ImgSetCaptureConfig Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As Integer,
‘ デバイスハンドル
ByRef
pCaptureConfig As IMGCAPCONFIG
‘ IMGCAPCONFIG 構造体
への参照渡し
)As Integer
●Delphi 8
class function ImgSetCaptureConfig (
hDeviceHandle:
Integer;
var pCaptureConfig: IMGCAPCONFIG
// デバイスハンドル
// IMGCAPCONFIG 構造体
への参照渡し
): Integer; static;
【パラメータ】
hDeviceHandle
ImgOpen関数で取得したデバイスハンドルを指定してください。
pCaptureConfig
IMGCAPCONFIG構造体へのポインタを指定してください。
構造体の説明については、『4.4 構造体』をご参照ください。
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、
『4.5 戻り値一覧』をご参照くださ
い。
© 2003, 2016 Interface Corporation. All rights reserved.
166
GPC-5520 Help for Windows
【使用例】
●C 言語
IMGCAPCONFIG CapConf;
HANDLE hDeviceHandle;
int nRet;
hDeviceHandle = ImgOpen(“IFIMGBIN1”);
:
// 指定フレーム間隔モードの場合は以下のように設定します。
CapConf.dwMode = IFIMG_CAPTURE_THINOUT;
CapConf.dwThinFrameCnt = 10;
// 指定時間間隔モードの場合は以下のように設定します。
CapConf.dwMode = IFIMG_CAPTURE_TIMER;
CapConf.dwTimerCycle = 1000; // 周期 1000ms
// 指定フレーム毎チャンネル切り換えモードの場合は以下のように設定します。
CapConf.dwMode = IFIMG_CAPTURE_CH_FRAME;
CapConf.dwTimerCycle = 1000; // 周期 1000ms
CapConf.dwChFrameCnt = 10;
// 10 フレーム毎で切り換え
// CN1→CN4→CN5 の順番で切り換え
CapConf.dwChangepattern[0] = IFIMG_CHANNEL_CN1;
CapConf.dwChangepattern[1] = IFIMG_CHANNEL_CN4;
CapConf.dwChangepattern[2] = IFIMG_CHANNEL_CN5;
CapConf.dwChangepattern[3] = 0;
CapConf.dwChangepattern[4] = 0;
// 指定時間毎チャンネル切り換えモードの場合は以下のように設定します。
CapConf.dwMode = IFIMG_CAPTURE_CH_TIMER;
CapConf.dwTimerCycle = 1000; // 周期 1000ms 毎で切り換え
CapConf.dwChFrameCnt = 10;
// 1ch 当たり 10 フレームのキャプチャ
// CN1→CN4→CN5 の順番で切り換え
CapConf.dwChangepattern[0] = IFIMG_CHANNEL_CN1;
CapConf.dwChangepattern[1] = IFIMG_CHANNEL_CN4;
CapConf.dwChangepattern[2] = IFIMG_CHANNEL_CN5;
CapConf.dwChangepattern[3] = 0;
CapConf.dwChangepattern[4] = 0;
nRet = ImgSetCaptureConfig(hDeviceHandle, &CapConf);
© 2003, 2016 Interface Corporation. All rights reserved.
167
GPC-5520 Help for Windows
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim CapConf As IMGCAPCONFIG
Dim nRet As Long
lpszName = “IFIMGBIN1”
hDeviceHandle = ImgOpen(lpszName)
:
‘ 指定フレーム間隔モードの場合は以下のように設定します。
CapConf.dwMode = IFIMG_CAPTURE_THINOUT
CapConf.dwThinFrameCnt = 10
‘ 指定時間間隔モードの場合は以下のように設定します。
CapConf.dwMode = IFIMG_CAPTURE_TIMER
CapConf.dwTimerCycle = 1000 ‘ 周期 1000ms
‘ 指定フレーム毎チャンネル切り換えモードの場合は以下のように設定します。
CapConf.dwMode = IFIMG_CAPTURE_CH_FRAME
CapConf.dwTimerCycle = 1000 ‘ 周期 1000ms
CapConf.dwChFrameCnt = 10
‘ 10 フレーム毎で切り換え
‘ CN1→CN4→CN5 の順番で切り換え
CapConf.dwChangepattern(0) = IFIMG_CHANNEL_CN1
CapConf.dwChangepattern(1) = IFIMG_CHANNEL_CN4
CapConf.dwChangepattern(2) = IFIMG_CHANNEL_CN5
CapConf.dwChangepattern(3) = 0
CapConf.dwChangepattern(4) = 0
‘ 指定時間毎チャンネル切り換えモードの場合は以下のように設定します。
CapConf.dwMode = IFIMG_CAPTURE_CH_TIMER
CapConf.dwTimerCycle = 1000 ‘ 周期 1000ms 毎で切り換え
CapConf.dwChFrameCnt = 10;
‘ 1ch 当たり 10 フレームのキャプチャ
‘ CN1→CN4→CN5 の順番で切り換え
CapConf.dwChangepattern(0) = IFIMG_CHANNEL_CN1
CapConf.dwChangepattern(1) = IFIMG_CHANNEL_CN4
CapConf.dwChangepattern(2) = IFIMG_CHANNEL_CN5
CapConf.dwChangepattern(3) = 0
CapConf.dwChangepattern(4) = 0
nRet = ImgSetCaptureConfig(hDeviceHandle, CapConf)
© 2003, 2016 Interface Corporation. All rights reserved.
168
GPC-5520 Help for Windows
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
nRet: Integer;
CapConf: IMGCAPCONFIG;
lpszName := 'IFIMGBIN1';
hDeviceHandle := ImgOpen(lpszName);
:
// 指定フレーム間隔モードの場合は以下のように設定します。
CapConf.dwMode := IFIMG_ CAPTURE_THINOUT;
CapConf.dwThinFrameCnt := 10;
// 指定時間間隔モードの場合は以下のように設定します。
CapConf.dwMode := IFIMG_CAPTURE_TIMER;
CapConf.dwTimerCycle := 1000; // 周期 1000ms
// 指定フレーム毎チャンネル切り換えモードの場合は以下のように設定します。
CapConf.dwMode := IFIMG_CAPTURE_CH_FRAME;
CapConf.dwTimerCycle := 1000; // 周期 1000ms
CapConf.dwChFrameCnt := 10;
// 10 フレーム毎で切り換え
// CN1→CN4→CN5 の順番で切り換え
CapConf.dwChangepattern[0] := IFIMG_CHANNEL_CN1;
CapConf.dwChangepattern[1] := IFIMG_CHANNEL_CN4;
CapConf.dwChangepattern[2] := IFIMG_CHANNEL_CN5;
CapConf.dwChangepattern[3] := 0;
CapConf.dwChangepattern[4] := 0;
// 指定時間毎チャンネル切り換えモードの場合は以下のように設定します。
CapConf.dwMode := IFIMG_CAPTURE_CH_TIMER;
CapConf.dwTimerCycle := 1000; // 周期 1000ms 毎で切り換え
CapConf.dwChFrameCnt := 10;
// 1ch 当たり 10 フレームのキャプチャ
// CN1→CN4→CN5 の順番で切り換え
CapConf.dwChangepattern[0] := IFIMG_CHANNEL_CN1;
CapConf.dwChangepattern[1] := IFIMG_CHANNEL_CN4;
CapConf.dwChangepattern[2] := IFIMG_CHANNEL_CN5;
CapConf.dwChangepattern[3] := 0;
CapConf.dwChangepattern[4] := 0;
nRet := ImgSetCaptureConfig(hDeviceHandle, pCapConf);
© 2003, 2016 Interface Corporation. All rights reserved.
169
GPC-5520 Help for Windows
●Visual C# .NET
IFCIMG_ANY.IMGCAPCONFIG CapConf;
IntPtr hDeviceHandle;
int nRet;
hDeviceHandle = IFCIMG_ANY.ImgOpen(“IFIMGBIN1”);
:
CapConf.InitializeArray();
// 指定フレーム間隔モードの場合は以下のように設定します。
CapConf.dwMode = IFCIMG_ANY.IFIMG_CAPTURE_THINOUT;
CapConf.dwThinFrameCnt = 10;
// 指定時間間隔モードの場合は以下のように設定します。
CapConf.dwMode = IFCIMG_ANY.IFIMG_CAPTURE_TIMER;
CapConf.dwTimerCycle = 1000; // 周期 1000ms
// 指定フレーム毎チャンネル切り換えモードの場合は以下のように設定します。
CapConf.dwMode = IFCIMG_ANY.IFIMG_CAPTURE_CH_FRAME;
CapConf.dwTimerCycle = 1000; // 周期 1000ms
CapConf.dwChFrameCnt = 10;
// 10 フレーム毎で切り換え
// CN1→CN4→CN5 の順番で切り換え
CapConf.SetChangePattern(0 , IFCIMG_ANY.IFIMG_CHANNEL_CN1);
CapConf.SetChangePattern(0 , IFCIMG_ANY.IFIMG_CHANNEL_CN4);
CapConf.SetChangePattern(0 , IFCIMG_ANY.IFIMG_CHANNEL_CN5);
CapConf.SetChangePattern(0 , 0);
CapConf.SetChangePattern(0 , 0);
// 指定時間毎チャンネル切り換えモードの場合は以下のように設定します。
CapConf.dwMode = IFCIMG_ANY.IFIMG_CAPTURE_CH_TIMER;
CapConf.dwTimerCycle = 1000; // 周期 1000ms 毎で切り換え
CapConf.dwChFrameCnt = 10;
// 1ch 当たり 10 フレームのキャプチャ
// CN1→CN4→CN5 の順番で切り換え
CapConf.SetChangePattern(0 , IFCIMG_ANY.IFIMG_CHANNEL_CN1);
CapConf.SetChangePattern(0 , IFCIMG_ANY.IFIMG_CHANNEL_CN4);
CapConf.SetChangePattern(0 , IFCIMG_ANY.IFIMG_CHANNEL_CN5);
CapConf.SetChangePattern(0 , 0);
CapConf.SetChangePattern(0 , 0);
nRet = IFCIMG_ANY.ImgSetCaptureConfig(hDeviceHandle, ref CapConf);
© 2003, 2016 Interface Corporation. All rights reserved.
170
GPC-5520 Help for Windows
●Visual Basic .NET
Dim lpszName As String
Dim hDeviceHandle As IntPtr
Dim CapConf As IFCIMG_ANY.IMGCAPCONFIG
Dim nRet As Integer
lpszName = “IFIMGBIN1”
hDeviceHandle = IFCIMG_ANY.ImgOpen(lpszName)
:
‘ 指定フレーム間隔モードの場合は以下のように設定します。
CapConf.dwMode = IFCIMG_ANY.IFIMG_CAPTURE_THINOUT
CapConf.dwThinFrameCnt = 10
‘ 指定時間間隔モードの場合は以下のように設定します。
CapConf.dwMode = IFCIMG_ANY.IFIMG_CAPTURE_TIMER
CapConf.dwTimerCycle = 1000 ‘ 周期 1000ms
‘ 指定フレーム毎チャンネル切り換えモードの場合は以下のように設定します。
CapConf.dwMode = IFCIMG_ANY.IFIMG_CAPTURE_CH_FRAME
CapConf.dwTimerCycle = 1000 ‘ 周期 1000ms
CapConf.dwChFrameCnt = 10
‘ 10 フレーム毎で切り換え
‘ CN1→CN4→CN5 の順番で切り換え
CapConf.SetChangePattern(0 , IFCIMG_ANY.IFIMG_CHANNEL_CN1)
CapConf.SetChangePattern(0 , IFCIMG_ANY.IFIMG_CHANNEL_CN4)
CapConf.SetChangePattern(0 , IFCIMG_ANY.IFIMG_CHANNEL_CN5)
CapConf.SetChangePattern(0 , 0)
CapConf.SetChangePattern(0 , 0)
‘ 指定時間毎チャンネル切り換えモードの場合は以下のように設定します。
CapConf.dwMode = IFCIMG_ANY.IFIMG_CAPTURE_CH_TIMER
CapConf.dwTimerCycle = 1000 ‘ 周期 1000ms 毎で切り換え
CapConf.dwChFrameCnt = 10
‘ 1ch 当たり 10 フレームのキャプチャ
‘ CN1→CN4→CN5 の順番で切り換え
CapConf.SetChangePattern(0 , IFCIMG_ANY.IFIMG_CHANNEL_CN1)
CapConf.SetChangePattern(0 , IFCIMG_ANY.IFIMG_CHANNEL_CN4)
CapConf.SetChangePattern(0 , IFCIMG_ANY.IFIMG_CHANNEL_CN5)
CapConf.SetChangePattern(0 , 0)
CapConf.SetChangePattern(0 , 0)
nRet = IFCIMG_ANY.ImgSetCaptureConfig(hDeviceHandle, CapConf)
© 2003, 2016 Interface Corporation. All rights reserved.
171
GPC-5520 Help for Windows
●Delphi 8
var
lpszName: String;
hDeviceHandle: Integer;
nRet: Integer;
CapConf: IFCIMG.IMGCAPCONFIG;
lpszName := 'IFIMGBIN1';
hDeviceHandle := IFCIMG.ImgOpen(lpszName);
:
// 指定フレーム間隔モードの場合は以下のように設定します。
CapConf.dwMode := IFCIMG.IFIMG_CAPTURE_THINOUT;
CapConf.dwThinFrameCnt := 10;
// 指定時間間隔モードの場合は以下のように設定します。
CapConf.dwMode := IFCIMG.IFIMG_CAPTURE_TIMER;
CapConf.dwTimerCycle := 1000; // 周期 1000ms
// 指定フレーム毎チャンネル切り換えモードの場合は以下のように設定します。
CapConf.dwMode := IFCIMG.IFIMG_CAPTURE_CH_FRAME;
CapConf.dwTimerCycle := 1000; // 周期 1000ms
CapConf.dwChFrameCnt := 10;
// 10 フレーム毎で切り換え
// CN1→CN4→CN5 の順番で切り換え
CapConf.dwChangepattern[0] := IFCIMG.IFIMG_CHANNEL_CN1;
CapConf.dwChangepattern[1] := IFCIMG.IFIMG_CHANNEL_CN4;
CapConf.dwChangepattern[2] := IFCIMG.IFIMG_CHANNEL_CN5;
CapConf.dwChangepattern[3] := 0;
CapConf.dwChangepattern[4] := 0;
// 指定時間毎チャンネル切り換えモードの場合は以下のように設定します。
CapConf.dwMode := IFCIMG.IFIMG_CAPTURE_CH_TIMER;
CapConf.dwTimerCycle := 1000; // 周期 1000ms 毎で切り換え
CapConf.dwChFrameCnt := 10;
// 1ch 当たり 10 フレームのキャプチャ
// CN1→CN4→CN5 の順番で切り換え
CapConf.dwChangepattern[0] := IFCIMG.IFIMG_CHANNEL_CN1;
CapConf.dwChangepattern[1] := IFCIMG.IFIMG_CHANNEL_CN4;
CapConf.dwChangepattern[2] := IFCIMG.IFIMG_CHANNEL_CN5;
CapConf.dwChangepattern[3] := 0;
CapConf.dwChangepattern[4] := 0;
nRet := IFCIMG.ImgSetCaptureConfig(hDeviceHandle, pCapConf);
デバイス名「IFIMGBIN1」のデバイスに対して、間引きによるキャプチャ、または多チャンネ
ル切り換え時の設置を行います。
© 2003, 2016 Interface Corporation. All rights reserved.
172
GPC-5520 Help for Windows
24. ImgSetBufferVB
【機能】
転送先バッファの先頭ポインタとサイズ、画像のフォーマットを設定します。(Visual Basic
専用関数)
【書式】
●Visual Basic
Declare Function ImgSetbufferVB Lib "IfImg.dll"( _
ByVal
hDeviceHandle
As Long, _
‘ デバイスハンドル
ByRef
pBufferAddress As Any, _
‘ 転送先バッファ領域への
参照渡し
ByVal
ByVal
)As Long
dwBufferSize
dwBufferFormat
As Long, _
As Long _
‘
‘
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgSetbufferVB Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As IntPtr,
‘
ByVal
pBufferAddress As IntPtr,
‘
ByVal
dwBufferSize
ByVal
dwBufferFormat
)As Integer
As Integer,
As Integer
‘
‘
Declare Function ImgSetbufferVB Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As IntPtr,
‘
ByRef
pBufferAddress As Byte,
‘
ByVal
dwBufferSize
ByVal
dwBufferFormat
)As Integer
As Integer,
As Integer
‘
‘
Declare Function ImgSetbufferVB Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As IntPtr,
‘
ByRef
pBufferAddress As Short,
‘
ByVal
dwBufferSize
ByVal
dwBufferFormat
)As Integer
As Integer,
As Integer
‘
‘
転送先バッファサイズ
カラーファーマット
デバイスハンドル
転送先バッファ領域への
参照渡し
転送先バッファサイズ
カラーファーマット
デバイスハンドル
転送先バッファ領域への
参照渡し
転送先バッファサイズ
カラーファーマット
デバイスハンドル
転送先バッファ領域への
参照渡し
転送先バッファサイズ
カラーファーマット
© 2003, 2016 Interface Corporation. All rights reserved.
173
GPC-5520 Help for Windows
Declare Function ImgSetbufferVB Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As IntPtr,
‘
ByRef
pBufferAddress As Integer,
‘
ByVal
dwBufferSize
ByVal
dwBufferFormat
)As Integer
As Integer,
As Integer
‘
‘
Declare Function ImgSetbufferVB Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As IntPtr,
‘
ByVal
pBufferAddress( )
As Byte,
‘
ByVal
dwBufferSize
ByVal
dwBufferFormat
)As Integer
As Integer,
As Integer
‘
‘
Declare Function ImgSetbufferVB Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As IntPtr,
‘
ByVal
pBufferAddress( )
As Short,
‘
ByVal
dwBufferSize
ByVal
dwBufferFormat
)As Integer
As Integer,
As Integer
‘
‘
Declare Function ImgSetbufferVB Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As IntPtr,
‘
ByVal
pBufferAddress( )
As Integer,
‘
ByVal
dwBufferSize
ByVal
dwBufferFormat
)As Integer
As Integer,
As Integer
‘
‘
●Visual Basic .NET(x86 専用)
Declare Function ImgSetbufferVB Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As Integer,
‘
ByRef
pBufferAddress As Byte,
‘
ByVal
dwBufferSize
ByVal
dwBufferFormat
)As Integer
As Integer,
As Integer
‘
‘
デバイスハンドル
転送先バッファ領域への
参照渡し
転送先バッファサイズ
カラーファーマット
デバイスハンドル
転送先バッファ領域への
参照渡し
転送先バッファサイズ
カラーファーマット
デバイスハンドル
転送先バッファ領域への
参照渡し
転送先バッファサイズ
カラーファーマット
デバイスハンドル
転送先バッファ領域への
参照渡し
転送先バッファサイズ
カラーファーマット
デバイスハンドル
転送先バッファ領域への
参照渡し
転送先バッファサイズ
カラーファーマット
© 2003, 2016 Interface Corporation. All rights reserved.
174
GPC-5520 Help for Windows
Declare Function ImgSetbufferVB Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As Integer,
‘
ByRef
pBufferAddress As Short,
‘
ByVal
dwBufferSize
ByVal
dwBufferFormat
)As Integer
As Integer,
As Integer
‘
‘
Declare Function ImgSetbufferVB Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As Integer,
‘
ByRef
pBufferAddress As Integer,
‘
ByVal
dwBufferSize
ByVal
dwBufferFormat
)As Integer
As Integer,
As Integer
‘
‘
Declare Function ImgSetbufferVB Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As Integer,
‘
ByVal
pBufferAddress( )
As Byte,
‘
ByVal
dwBufferSize
ByVal
dwBufferFormat
)As Integer
As Integer,
As Integer
‘
‘
Declare Function ImgSetbufferVB Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As Integer,
‘
ByVal
pBufferAddress( )
As Short,
‘
ByVal
dwBufferSize
ByVal
dwBufferFormat
)As Integer
As Integer,
As Integer
‘
‘
Declare Function ImgSetbufferVB Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As Integer,
‘
ByVal
pBufferAddress( )
As Integer,
‘
ByVal
dwBufferSize
ByVal
dwBufferFormat
)As Integer
As Integer,
As Integer
‘
‘
デバイスハンドル
転送先バッファ領域への
参照渡し
転送先バッファサイズ
カラーファーマット
デバイスハンドル
転送先バッファ領域への
参照渡し
転送先バッファサイズ
カラーファーマット
デバイスハンドル
転送先バッファ領域への
参照渡し
転送先バッファサイズ
カラーファーマット
デバイスハンドル
転送先バッファ領域への
参照渡し
転送先バッファサイズ
カラーファーマット
デバイスハンドル
転送先バッファ領域への
参照渡し
転送先バッファサイズ
カラーファーマット
【パラメータ】
hDeviceHandle
ImgOpen関数で取得したデバイスハンドルを指定してください。
© 2003, 2016 Interface Corporation. All rights reserved.
175
GPC-5520 Help for Windows
pBufferAddress
転送先バッファ領域へ先頭アドレスを指定します。
■x86 環境使用時
PC のメインメモリ(ユーザアプリケーション上のバッファ)を使用する場合はそのバッ
ファの参照渡しを指定します。
■x64 環境使用時
ドライバ内で確保した物理メモリを使用する場合は、-1 を指定します。
pBufferSize
転送先バッファ領域のサイズを指定してください。(Byte 単位)
dwBufferFormat
画像のフォーマットフォーマットを指定します。
SDRAM 領域内のデータ転送時は、「IFIMG_COLOR_RGB24」を指定して下さい。
●カラーフォーマット識別子
画像データを DMA 転送する場合は、以下のカラーフォーマット識別子を指定します。
識別子
値
意味
IFIMG_COLOR_RGB32
00000001h
RGB32 bit
IFIMG_COLOR_RGB24
00000002h
RGB24 bit
IFIMG_COLOR_RGB15
00000003h
RGB15 bit
IFIMG_COLOR_RGB16
0000000Bh
RGB16 bit
IFIMG_COLOR_GRAY8
00000004h
GRAY8 bit
IFIMG_COLOR_RED8
00000005h
R 8bit
IFIMG_COLOR_GREEN8
00000006h
G 8bit
IFIMG_COLOR_BLUE8
00000007h
B 8bit
IFIMG_COLOR_BIN8
00000008h
2 値化処理データ 8bit
IFIMG_COLOR_FIL8
0000000Ch
フィルタ 8bit
IFIMG_COLOR_LABEL8
0000000Dh
ラベリング 8bit
●解像度識別子
解像度を変更する場合、以下の識別子を OR 指定します。
識別子
値
NTSC 製品
IFIMG_RESOLUTION_640_480
00000000h
640×480
IFIMG_RESOLUTION_320_240
80000000h
320×240
IFIMG_RESOLUTION_160_120
40000000h
160×120
IFIMG_RESOLUTION_768_572
08000000h
未対応
IFIMG_RESOLUTION_384_286
04000000h
未対応
IFIMG_RESOLUTION_192_143
02000000h
未対応
●画像処理データ識別子
識別子
IFIMG_MEASUEMENT_HSIT
IFIMG_MEASUEMENT_PRO
IFIMG_MEASUEMENT_LBLCNT
IFIMG_MEASUEMENT_AREA
© 2003, 2016 Interface Corporation. All
値
00000200h
00000400h
00000800h
00001000h
rights reserved.
176
意味
PAL 製品
未対応
未対応
未対応
768×572
384×286
192×143
意味
濃度分布
射影
ラベル数
各ブロックの面積
GPC-5520 Help for Windows
IFIMG_MEASUEMENT_GRV
IFIMG_MEASUEMENT_FERE
IFIMG_MEASUEMENT_ELLIPSE
00002000h
00004000h
00008000h
© 2003, 2016 Interface Corporation. All rights reserved.
177
各ブロックのΣX、ΣY
各ブロックのフェレ径座標
各ブロックのΣX2、ΣXY、ΣY2
GPC-5520 Help for Windows
以下の識別子の組み合わせで、各画像処理結果を指定してください。
ラベル数
面積値
重心値
フェレ径
識別子
IFIMG_MEASUEMENT_LBLCNT
○
○
○
○
IFIMG_MEASUEMENT_AREA
-
○
○
-
IFIMG_MEASUEMENT_GRV
-
-
○
-
IFIMG_MEASUEMENT_FERE
-
-
-
○
IFIMG_MEASUEMENT_ELLIPSE
-
-
-
-
慣性等価楕円の傾き角
○
○
○
-
○
識別子の対応表
識別子
IFIMG_COLOR_RGB32
IFIMG_COLOR_RGB24
IFIMG_COLOR_RGB15
IFIMG_COLOR_RGB16
IFIMG_COLOR_GRAY8
IFIMG_COLOR_RED8 ※
IFIMG_COLOR_GREEN8 ※
IFIMG_COLOR_BLUE8 ※
IFIMG_COLOR_BIN8
IFIMG_COLOR_FIL8
IFIMG_COLOR_LABEL8
IFIMG_RESOLUTION_320_240
IFIMG_RESOLUTION_160_120
IFIMG_MEASUEMENT_HSIT
IFIMG_MEASUEMENT_PRO
IFIMG_MEASUEMENT_LBLCNT
IFIMG_MEASUEMENT_AREA
IFIMG_MEASUEMENT_GRV
IFIMG_MEASUEMENT_FERE
IFIMG_MEASUEMENT_ELLIPSE
55x0
○
○
○
○
○
○
○
○
―
―
―
○
○
―
―
―
―
―
―
―
55x1
○
○
○
○
○
○
○
○
―
―
―
○
○
―
―
―
―
―
―
―
55x2
○
○
○
○
○
○
○
○
○
―
―
○
○
―
―
―
―
―
―
―
55x3
○
○
○
○
○
○
○
○
○
―
―
○
○
―
―
―
―
―
―
―
55x4
○
○
○
○
○
○
○
○
○
―
―
○
○
○
○
―
―
―
―
―
55x5
○
○
○
○
○
○
○
○
○
○
―
○
○
○
○
―
―
―
―
―
55x6
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
530115
○
○
○
○
○
○
○
○
―
―
―
○
○
―
―
―
―
―
―
―
530215
○
○
○
○
○
○
○
○
○
―
―
○
○
―
―
―
―
―
―
―
※ PCI-5520 は、[12]C02 以降のインタフェースモジュールが対応しています。
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、
『4.5 戻り値一覧』をご参照くださ
い。
© 2003, 2016 Interface Corporation. All rights reserved.
178
GPC-5520 Help for Windows
【使用例】
●x86 環境
Dim lpszName As String
Dim hDeviceHandle As Long
Dim buffer(921600) As byte
Dim buffersize As Long
lpszName = “IFIMGST1”
hDeviceHandle = ImgOpen(lpszName)
:
:
buffersize = 921600
nRet = ImgSetBufferVB(hDeviceHandle, buffer(0), buffersize, IFIMG_COLOR_RGB32)
●x64 環境
Dim hDeviceHandle As Long
Dim nRet As Long
Dim BuffPtr As Long
lpszName = “IFIMGST1”
hDeviceHandle = ImgOpen(lpszName)
:
nRet = ImgSetBufferVB(hDeviceHandle, ByVal -1, 640*480*3, IFIMG_COLOR_RGB24)
nRet = ImgGetMemPtrValue(hDeviceHandle, BuffPtr)
●Visual Basic .NET(x86 用)
Dim lpszName As String
Dim hDeviceHandle As IntPtr
Dim buffer(307200) As Integer
Dim buffersize As Integer
lpszName = “IFIMGST1”
hDeviceHandle = IFCIMG_ANY.ImgOpen(lpszName)
:
:
buffersize = 640*480*4
nRet = IFCIMG_ANY.ImgSetBufferVB(_
hDeviceHandle, buffer, buffersize, IFCIMG_ANY.IFIMG_COLOR_RGB32)
© 2003, 2016 Interface Corporation. All rights reserved.
179
GPC-5520 Help for Windows
●Visual Basic .NET(x64)
Dim lpszName As String
Dim hDeviceHandle As IntPtr
Dim buffersize As Integer
Dim array_p As IntPtr
lpszName = “IFIMGST1”
hDeviceHandle = IFCIMG.ImgOpen(lpszName)
:
:
buffersize = 640*480*4
nRet = IFCIMG_ANY.ImgSetBufferVB(_
hDeviceHandle, New IntPtr(-1), buffersize, IFCIMG.IFIMG_COLOR_RGB32)
デバイス名「IFIMGST1」のデバイスに対してキャプチャ用バッファを設定します。
カラーフォーマットは RGB32 にします。
© 2003, 2016 Interface Corporation. All rights reserved.
180
GPC-5520 Help for Windows
25. ImgAllocateSDRAM
SDRAM 領域を確保して、ハンドルを取得します。
このハンドルを使用して、SDRAM によるキャプチャ、データの読み出し、比較用画像データの
書き込みを行います。
【書式】
●C 言語
INT ImgAllocateSDRAM(
HANDLE
hDeviceHandle,
DWORD
dwDataFormat,
DWORD
dwXLength,
DWORD
dwYLength,
DWORD
dwFrameCnt,
PHANDE
phSDRAMhandle
);
//
//
//
//
//
//
デバイスハンドル
データフォーマット
X 方向長さ
Y 方向長さ
確保フレーム数
SDRAM ハンドルを格納先バッファポインタ
●Visual Basic
Declare Function ImgAllocateSDRAM Lib "IfImg.dll"( _
ByVal
hDeviceHandle
As Long, _
‘ デバイスハンドル
ByVal
dwDataFormat
As Long, _
‘ データフォーマット
ByVal
dwXLength
As Long, _
‘ X 方向長さ
ByVal
dwYLength
As Long, _
‘ Y 方向長さ
ByVal
dwFrameCnt
As Long, _
‘ 確保フレーム数
ByRef
phSDRAMhandle
As Long _
‘ SDRAM ハンドルを格納先
‘ バッファの参照渡し
)As Long
●Delphi
function ImgAllocateSDRAM (
hDeviceHandle:
THandle;
// デバイスハンドル
dwDataFormat:
DWORD;
// データフォーマット
dwXLength:
DWORD;
// X 方向長さ
dwYLentgh:
DWORD;
// Y 方向長さ
dwFrameCnt:
DWORD;
// 確保フレーム数
var phSDRAMhandle: Thandle
// SDRAM ハンドルを格納先の参照渡し
): Integer; stdcall; external 'IfImg.dll';
© 2003, 2016 Interface Corporation. All rights reserved.
181
GPC-5520 Help for Windows
●Visual C# .NET(x86、x64 共用)
[DllImport("IfImg.dll")]
public static extern int ImgAllocateSDRAM(
IntPtr
hDeviceHandle, // デバイスハンドル
uint
dwDataFormat,
// データフォーマット
uint
dwXLength,
// X 方向長さ
uint
dwYLength,
// Y 方向長さ
uint
dwFrameCnt,
// 確保フレーム数
out IntPtr phSDRAMhandle
// SDRAM ハンドルを格納先バッファポインタ
);
●Visual C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgAllocateSDRAM(
uint
hDeviceHandle, // デバイスハンドル
uint
dwDataFormat,
// データフォーマット
uint
dwXLength,
// X 方向長さ
uint
dwYLength,
// Y 方向長さ
uint
dwFrameCnt,
// 確保フレーム数
out uint
phSDRAMhandle
// SDRAM ハンドルを格納先バッファポインタ
);
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgAllocateSDRAM Lib "IfImg.DLL"(
ByVal
hDeviceHandle As IntPtr,
‘ デバイスハンドル
ByVal
dwDataFormat
As Integer, ‘ データフォーマット
ByVal
dwXLength
As Integer, ‘ X 方向長さ
ByVal
dwYLength
As Integer, ‘ Y 方向長さ
ByVal
dwFrameCnt
As Integer, ‘ 確保フレーム数
ByRef
phSDRAMhandle As IntPtr
‘ SDRAM ハンドルを格納先バッファの
参照渡し
)As Integer
●Visual Basic .NET(x86 専用)
Declare Function ImgAllocateSDRAM Lib "IfImg.DLL"(
ByVal
hDeviceHandle As Integer, ‘ デバイスハンドル
ByVal
dwDataFormat
As Integer, ‘ データフォーマット
ByVal
dwXLength
As Integer, ‘ X 方向長さ
ByVal
dwYLength
As Integer, ‘ Y 方向長さ
ByVal
dwFrameCnt
As Integer, ‘ 確保フレーム数
ByRef
phSDRAMhandle As Integer
‘ SDRAM ハンドルを格納先バッファの
参照渡し
)As Integer
© 2003, 2016 Interface Corporation. All rights reserved.
182
GPC-5520 Help for Windows
●Delphi 8
class function ImgAllocateSDRAM (
hDeviceHandle:
Integer;
dwDataFormat:
Cardinal;
dwXLength:
Cardinal;
dwYLentgh:
Cardinal;
dwFrameCnt:
Cardinal;
var phSDRAMhandle: Integer
): Integer; static;
//
//
//
//
//
//
デバイスハンドル
データフォーマット
X 方向長さ
Y 方向長さ
確保フレーム数
SDRAM ハンドルを格納先の参照渡し
【パラメータ】
hDeviceHandle
ImgOpen関数で取得したデバイスハンドルを指定してください。
dwDataFormat
データフォーマットを指定します。
識別子
値
IFIMG_COLOR_RGB32
00000001h
IFIMG_COLOR_RGB24
00000002h
IFIMG_COLOR_RGB15
00000003h
IFIMG_COLOR_RGB16
0000000Bh
IFIMG_COLOR_GRAY8
00000004h
IFIMG_COLOR_RED8
00000005h
IFIMG_COLOR_GREEN8
00000006h
IFIMG_COLOR_BLUE8
00000007h
IFIMG_COLOR_BIN8
00000008h
IFIMG_COLOR_CMP8
0000000Ah
意味
RGB32 bit
RGB24 bit
RGB15 bit
RGB16 bit
GRAY8 bit
R 8bit
G 8bit
B 8bit
2 値化処理データ 8bit
比較用データ 8bit
また、以下の識別子を OR 指定することで、解像度を変更できます。
何も指定しない場合は、
「640×480」になります。
識別子
意味
IFIMG_RESOLUTION_320_240
320×240
IFIMG_RESOLUTION_160_120
160×120
dwXLength
比較データ(IFIMG_COLOR_CMP8)の X 方向長さを指定します。
範囲:1~640
※比較データ以外の場合、0 を指定して下さい。
dwYLength
比較データ(IFIMG_COLOR_CMP8)の Y 方向長さを指定します。
範囲:1~480
※比較データ以外の場合、0 を指定して下さい。
© 2003, 2016 Interface Corporation. All rights reserved.
183
GPC-5520 Help for Windows
dwFrameCnt
dwXLength と dwYLength で指定した領域を確保する数を指定します。
比較データの場合は 1 を指定してください。
phSDRAMhandle
SDRAM ハンドルを格納するバッファポインタを指定します。
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、
『4.5 戻り値一覧』をご参照くださ
い。
【備考】
SDRAM に確保される領域は以下の用になります。
○IFIMG_COLOR_RGB32 の場合
確保サイズ(byte) = フレームサイズ×dwFrameCnt
○IFIMG_COLOR_RGB24 の場合
確保サイズ(byte) = フレームサイズ×dwFrameCnt
○IFIMG_COLOR_RGB15/IFIMG_COLOR_RGB16 の場合
確保サイズ(byte) = フレームサイズ×dwFrameCnt
○IFIMG_COLOR_GRAY8/IFIMG_COLOR_RED8/IFIMG_COLOR_GREEN8/
/IFIMG_COLOR_BLUE8 IFIMG_COLOR_BIN8 の場合
確保サイズ(byte) = フレームサイズ×dwFrameCnt
○IFIMG_COLOR_CMP8 の場合
dwXLength の値と dwYLength の値を掛け合わせた値の約 1/4 のサイズになります。(dwXLength
の値と dwYLength の値により数 Byte 増える事もあります。)
【使用例 1】
●C 言語
HANDLE hDeviceHandle;
int nRet;
HANDLE hSDRAMHandle
hDeviceHandle = ImgOpen(“IFIMGMEM1”);
:
// SDRAM 内にキャプチャ用領域を確保
nRet = ImgAllocateSDRAM(hDeviceHandle,
IFIMG_SDRAM_RGB24, 0, 0, 50, &hSDRAMHandle);
© 2003, 2016 Interface Corporation. All rights reserved.
184
GPC-5520 Help for Windows
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim hSDRAMHandle As Long
Dim nRet As Long
lpszName = “IFIMGMEM
hDeviceHandle = ImgOpen(lpszName)
:
‘ SDRAM 内にキャプチャ用領域を確保
nRet = ImgAllocateSDRAM(hDeviceHandle,
IFIMG_SDRAM_RGB24, 0, 0, 50, hSDRAMHandle)
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
hSDRAMHandle: THandle;
nRet: Integer;
lpszName := 'IFIMGMEM1';
hDeviceHandle := ImgOpen(lpszName);
:
// SDRAM 内にキャプチャ用領域を確保
nRet := ImgAllocateSDRAM(hDeviceHandle,
IFIMG_SDRAM_RGB24, 0, 0, 50, hSDRAMHandle);
●Visual C# .NET
IntPtr hDeviceHandle;
int nRet;
IntPtr hSDRAMHandle
hDeviceHandle = IFCIMG_ANY.ImgOpen(“IFIMGMEM1”);
:
// SDRAM 内にキャプチャ用領域を確保
nRet = IFCIMG_ANY.ImgAllocateSDRAM(hDeviceHandle,
IFCIMG_ANY.IFIMG_SDRAM_RGB24, 0, 0, 50, out hSDRAMHandle);
© 2003, 2016 Interface Corporation. All rights reserved.
185
GPC-5520 Help for Windows
●Visual Basic .NET
Dim lpszName As String
Dim hDeviceHandle As IntPtr
Dim hSDRAMHandle As IntPtr
Dim nRet As Integer
lpszName = “IFIMGMEM”
hDeviceHandle = IFCIMG_ANY.ImgOpen(lpszName)
:
‘ SDRAM 内にキャプチャ用領域を確保
nRet = IFCIMG_ANY.ImgAllocateSDRAM(hDeviceHandle,
IFCIMG_ANY.IFIMG_SDRAM_RGB24, 0, 0, 50, hSDRAMHandle)
●Delphi 8
var
lpszName: String;
hDeviceHandle: Integer;
hSDRAMHandle: Integer;
nRet: Integer;
lpszName := 'IFIMGMEM1';
hDeviceHandle := IFCIMG.ImgOpen(lpszName);
:
// SDRAM 内にキャプチャ用領域を確保
nRet := IFCIMG.ImgAllocateSDRAM(hDeviceHandle,
IFCIMG.IFIMG_SDRAM_RGB24, 0, 0, 50, hSDRAMHandle);
デバイス名「IFIMGMEM1」のデバイスに対して、SDRAM 内の領域を確保します。
RGB24bit データフォーマットで 50 フレーム分確保して、ハンドル値を取得します。
© 2003, 2016 Interface Corporation. All rights reserved.
186
GPC-5520 Help for Windows
【使用例 2】
●C 言語
HANDLE hDeviceHandle;
int nRet;
HANDLE hSDRAMHandle
hDeviceHandle = ImgOpen(“IFIMGPTN1”);
:
// SDRAM 内に比較用データ領域を確保
nRet = ImgAllocateSDRAM(hDeviceHandle,
IFIMG_SDRAM_CMP8, 100, 100, 1, &hSDRAMHandle);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim hSDRAMHandle As Long
Dim nRet As Long
lpszName = “IFIMGPTN1”
hDeviceHandle = ImgOpen(lpszName)
:
‘ SDRAM 内に比較用データ領域を確保
nRet = ImgAllocateSDRAM(hDeviceHandle,
IFIMG_SDRAM_CMP8, 100, 100, 1, hSDRAMHandle)
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
hSDRAMHandle: THandle;
nRet: Integer;
lpszName := 'IFIMGPTN1';
hDeviceHandle := ImgOpen(lpszName);
:
// SDRAM 内に比較用データ領域を確保
nRet := ImgAllocateSDRAM(hDeviceHandle,
IFIMG_SDRAM_CMP8, 100, 100, 1, hSDRAMHandle);
© 2003, 2016 Interface Corporation. All rights reserved.
187
GPC-5520 Help for Windows
●Visual C# .NET
IntPtr hDeviceHandle;
int nRet;
IntPtr hSDRAMHandle
hDeviceHandle = IFCIMG_ANY.ImgOpen(“IFIMGPTN1”);
:
// SDRAM 内に比較用データ領域を確保
nRet = IFCIMG_ANY.ImgAllocateSDRAM(hDeviceHandle,
IFCIMG_ANY.IFIMG_SDRAM_CMP8, 100, 100, 1, out hSDRAMHandle);
●Visual Basic .NET
Dim lpszName As String
Dim hDeviceHandle As IntPtr
Dim hSDRAMHandle As IntPtr
Dim nRet As Integer
lpszName = “IFIMGPTN1
hDeviceHandle = IFCIMG_ANY.ImgOpen(lpszName)
:
‘ SDRAM 内に比較用データ領域を確保
nRet = IFCIMG_ANY.ImgAllocateSDRAM(hDeviceHandle,
IFCIMG_ANY.IFIMG_SDRAM_CMP8, 100, 100, 1, hSDRAMHandle)
●Delphi 8
var
lpszName: String;
hDeviceHandle: Integer;
hSDRAMHandle: Integer;
nRet: Integer;
lpszName := 'IFIMGPTN1';
hDeviceHandle := IFCIMG.ImgOpen(lpszName);
:
// SDRAM 内に比較用データ領域を確保
nRet := IFCIMG.ImgAllocateSDRAM(hDeviceHandle,
IFCIMG.IFIMG_SDRAM_CMP8, 100, 100, 1, hSDRAMHandle);
デバイス名「IFIMGPTN1」のデバイスに対して、SDRAM 内の領域を確保します。
100×100 の比較用データ(8bit)を確保してハンドルを取得します。
© 2003, 2016 Interface Corporation. All rights reserved.
188
GPC-5520 Help for Windows
26. ImgFreeSDRAM
指定したハンドルに相当する SDRAM 領域を解放します。
【書式】
●C 言語
INT ImgFreeSDRAM(
HANDLE hDeviceHandle,
HANDLE hSDRAMHandle
);
//
//
デバイスハンドル
SDRAM 管理ハンドル
●Visual Basic
Declare Function ImgFreeSDRAM Lib "IfImg.dll"( _
ByVal
hDeviceHandle
As Long, _
‘ デバイスハンドル
ByVal
hSDRAMHandle
As Long _
‘ SDRAM 管理ハンドル
)As Long
●Delphi
function ImgFreeSDRAM (
hDeviceHandle:
hSDRAMHandle:
THandle;
// デバイスハンドル
THandle
// SDRAM 管理ハンドル
): Integer; stdcall; external 'IfImg.dll';
●Visual C# .NET(x86、x64 共用)
[DllImport("IfImg.dll")]
public static extern int ImgFreeSDRAM(
IntPtr hDeviceHandle,
// デバイスハンドル
uint
hSDRAMHandle
// SDRAM 管理ハンドル
);
●Visual C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgFreeSDRAM(
uint
hDeviceHandle,
// デバイスハンドル
uint
hSDRAMHandle
// SDRAM 管理ハンドル
);
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgFreeSDRAM Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As IntPtr,
‘ デバイスハンドル
ByVal
hSDRAMHandle
As Integer
‘ SDRAM 管理ハンドル
)As Integer
© 2003, 2016 Interface Corporation. All rights reserved.
189
GPC-5520 Help for Windows
●Visual Basic .NET(x86 専用)
Declare Function ImgFreeSDRAM Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As Integer, ‘ デバイスハンドル
ByVal
hSDRAMHandle
As Integer
‘ SDRAM 管理ハンドル
)As Integer
●Delphi 8
class function ImgFreeSDRAM (
hDeviceHandle:
Integer;
hSDRAMHandle:
Integer
): Integer; static;
//
//
デバイスハンドル
SDRAM 管理ハンドル
【パラメータ】
hDeviceHandle
ImgOpen関数で取得したデバイスハンドルを指定してください。
hSDRAMHandle
ImgAllocateSDRAM関数で取得したハンドルを指定します。
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、
『4.5 戻り値一覧』をご参照くださ
い。
【使用例】
●C 言語
HANDLE hDeviceHandle;
int nRet;
HANDLE hSDRAMHandle
hDeviceHandle = ImgOpen(“IFIMGMEM1”);
:
// SDRAM 内にキャプチャ用領域を確保
nRet = ImgAllocateSDRAM(hDeviceHandle,
IFIMG_SDRAM_RGB24, 0, 0, 50, &hSDRAMHandle);
:
// 確保した SDRAM 領域を解放します。
nRet = ImgFreeSDRAM(hDeviceHandle, hSDRAMHandle);
© 2003, 2016 Interface Corporation. All rights reserved.
190
GPC-5520 Help for Windows
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim hSDRAMHandle As Long
Dim nRet As Long
lpszName = “IFIMGMEM1”
hDeviceHandle = ImgOpen(lpszName)
:
‘ SDRAM 内にキャプチャ用領域を確保
nRet = ImgAllocateSDRAM(hDeviceHandle,
IFIMG_SDRAM_RGB24, 0, 0, 50, hSDRAMHandle)
:
‘ 確保した SDRAM 領域を解放します。
nRet = ImgFreeSDRAM(hDeviceHandle, hSDRAMHandle)
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
hSDRAMHandle: THandle;
nRet: Integer;
lpszName := 'IFIMGMEM1';
hDeviceHandle := ImgOpen(lpszName);
:
// SDRAM 内にキャプチャ用領域を確保
nRet := ImgAllocateSDRAM(hDeviceHandle,
IFIMG_SDRAM_RGB24, 0, 0, 50, hSDRAMHandle);
:
// 確保した SDRAM 領域を解放します。
nRet := ImgFreeSDRAM(hDeviceHandle, hSDRAMHandle);
●Visual C# .NET
IntPtr hDeviceHandle;
int nRet;
IntPtr hSDRAMHandle
hDeviceHandle = IFCIMG_ANY.ImgOpen(“IFIMGMEM1”);
:
// SDRAM 内にキャプチャ用領域を確保
nRet = IFCIMG_ANY.ImgAllocateSDRAM(hDeviceHandle,
IFCIMG_ANY.IFIMG_SDRAM_RGB24, 0, 0, 50, out hSDRAMHandle);
:
// 確保した SDRAM 領域を解放します。
nRet = IFCIMG_ANY.ImgFreeSDRAM(hDeviceHandle, hSDRAMHandle);
●Visual Basic .NET
© 2003, 2016 Interface Corporation. All rights reserved.
191
GPC-5520 Help for Windows
Dim
Dim
Dim
Dim
lpszName As String
hDeviceHandle As IntPtr
hSDRAMHandle As IntPtr
nRet As Integer
lpszName = “IFIMGMEM1”
hDeviceHandle = IFCIMG_ANY.ImgOpen(lpszName)
:
‘ SDRAM 内にキャプチャ用領域を確保
nRet = IFCIMG_ANY.ImgAllocateSDRAM(hDeviceHandle,
IFCIMG_ANY.IFIMG_SDRAM_RGB24, 0, 0, 50, hSDRAMHandle)
:
‘ 確保した SDRAM 領域を解放します。
nRet = IFCIMG_ANY.ImgFreeSDRAM(hDeviceHandle, hSDRAMHandle)
●Delphi 8
var
lpszName: String;
hDeviceHandle: Integer;
hSDRAMHandle: Integer;
nRet: Integer;
lpszName := 'IFIMGMEM1';
hDeviceHandle := IFCIMG.ImgOpen(lpszName);
:
// SDRAM 内にキャプチャ用領域を確保
nRet := IFCIMG.ImgAllocateSDRAM(hDeviceHandle,
IFCIMG.IFIMG_SDRAM_RGB24, 0, 0, 50, hSDRAMHandle);
:
// 確保した SDRAM 領域を解放します。
nRet := IFCIMG.ImgFreeSDRAM(hDeviceHandle, hSDRAMHandle);
デバイス名「IFIMGMEM1」のデバイスに対して、SDRAM 領域を解放します。
© 2003, 2016 Interface Corporation. All rights reserved.
192
GPC-5520 Help for Windows
27. ImgSetSDRAM
キャプチャする SDRAM 領域を指定します。
【書式】
●C 言語
INT ImgSetSDRAM(
HANDLE hDeviceHandle,
HANDLE hSDRAMHandle
);
//
//
デバイスハンドル
SDRAM 管理ハンドル
●Visual Basic
Declare Function ImgSetSDRAM Lib "IfImg.dll"( _
ByVal
hDeviceHandle
As Long, _
‘ デバイスハンドル
ByVal
hSDRAMHandle
As Long _
‘ SDRAM 管理ハンドル
)As Long
●Delphi
function ImgSetSDRAM (
hDeviceHandle:
hSDRAMHandle:
THandle;
// デバイスハンドル
THandle
// SDRAM 管理ハンドル
): Integer; stdcall; external 'IfImg.dll';
●Visual C# .NET(x86、x64 共用)
[DllImport("IfImg.dll")]
public static extern int ImgSetSDRAM(
IntPtr hDeviceHandle,
// デバイスハンドル
uint
hSDRAMHandle
// SDRAM 管理ハンドル
);
●Visual C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgSetSDRAM(
uint
hDeviceHandle,
// デバイスハンドル
uint
hSDRAMHandle
// SDRAM 管理ハンドル
);
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgSetSDRAM Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As IntPtr,
‘ デバイスハンドル
ByVal
hSDRAMHandle
As Integer
‘ SDRAM 管理ハンドル
)As Integer
© 2003, 2016 Interface Corporation. All rights reserved.
193
GPC-5520 Help for Windows
●Visual Basic .NET(x86 専用)
Declare Function ImgSetSDRAM Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As Integer, ‘ デバイスハンドル
ByVal
hSDRAMHandle
As Integer
‘ SDRAM 管理ハンドル
)As Integer
●Delphi 8
class function ImgSetSDRAM (
hDeviceHandle:
Integer;
hSDRAMHandle:
Integer
): Integer; static;
//
//
デバイスハンドル
SDRAM 管理ハンドル
【パラメータ】
hDeviceHandle
ImgOpen関数で取得したデバイスハンドルを指定してください。
hSDRAMHandle
ImgAllocateSDRAM関数で取得したハンドルを指定します。
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、
『4.5 戻り値一覧』をご参照くださ
い。
【備考】
バスマスタでのキャプチャも同時に実行する場合は、ImgSetBuffer 関数で指定したカラーフォ
ーマットの SDRAM 領域を指定してください。
DMA 転送によるキャプチャ中または、SDRAM へのキャプチャ中に本関数を実行することは出来
ません。
【使用例】
●C 言語
HANDLE hDeviceHandle;
int nRet;
HANDLE hSDRAMHandle
hDeviceHandle = ImgOpen(“IFIMGMEM1”);
:
// SDRAM 内にキャプチャ用領域を確保
nRet = ImgAllocateSDRAM(hDeviceHandle,
IFIMG_SDRAM_RGB24, 0, 0, 50, &hSDRAMHandle);
:
// キャプチャしたい SDRAM 領域を指定します。
nRet = ImgSetSDRAM(hDeviceHandle, hSDRAMHandle);
© 2003, 2016 Interface Corporation. All rights reserved.
194
GPC-5520 Help for Windows
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim hSDRAMHandle As Long
Dim nRet As Long
lpszName = “IFIMGMEM1”
hDeviceHandle = ImgOpen(lpszName)
:
‘ SDRAM 内にキャプチャ用領域を確保
nRet = ImgAllocateSDRAM(hDeviceHandle,
IFIMG_SDRAM_RGB24, 0, 0, 50, hSDRAMHandle)
:
‘ キャプチャしたい SDRAM 領域を指定します。
nRet = ImgSetSDRAM(hDeviceHandle, hSDRAMHandle)
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
hSDRAMHandle: THandle;
nRet: Integer;
lpszName := 'IFIMGMEM1';
hDeviceHandle := ImgOpen(lpszName);
:
// SDRAM 内にキャプチャ用領域を確保
nRet := ImgAllocateSDRAM(hDeviceHandle,
IFIMG_SDRAM_RGB24, 0, 0, 50, hSDRAMHandle);
:
// キャプチャしたい SDRAM 領域を指定します。
nRet := ImgSetSDRAM(hDeviceHandle, hSDRAMHandle);
●Visual C# .NET
IntPtr hDeviceHandle;
int nRet;
uint hSDRAMHandle
hDeviceHandle = IFCIMG_ANY.ImgOpen(“IFIMGMEM1”);
:
// SDRAM 内にキャプチャ用領域を確保
nRet = IFCIMG_ANY.ImgAllocateSDRAM(hDeviceHandle,
IFCIMG_ANY.IFIMG_SDRAM_RGB24, 0, 0, 50, out hSDRAMHandle);
:
// キャプチャしたい SDRAM 領域を指定します。
nRet = IFCIMG_ANY.ImgSetSDRAM(hDeviceHandle, hSDRAMHandle);
●Visual Basic .NET
© 2003, 2016 Interface Corporation. All rights reserved.
195
GPC-5520 Help for Windows
Dim
Dim
Dim
Dim
lpszName As String
hDeviceHandle As IntPtr
hSDRAMHandle As Integer
nRet As Integer
lpszName = “IFIMGMEM1”
hDeviceHandle = IFCIMG_ANY.ImgOpen(lpszName)
:
‘ SDRAM 内にキャプチャ用領域を確保
nRet = IFCIMG_ANY.ImgAllocateSDRAM(hDeviceHandle,
IFCIMG_ANY.IFIMG_SDRAM_RGB24, 0, 0, 50, hSDRAMHandle)
:
‘ キャプチャしたい SDRAM 領域を指定します。
nRet = IFCIMG_ANY.ImgSetSDRAM(hDeviceHandle, hSDRAMHandle)
●Delphi 8
var
lpszName: String;
hDeviceHandle: Integer;
hSDRAMHandle: Integer;
nRet: Integer;
lpszName := 'IFIMGMEM1';
hDeviceHandle := IFCIMG.ImgOpen(lpszName);
:
// SDRAM 内にキャプチャ用領域を確保
nRet := IFCIMG.ImgAllocateSDRAM(hDeviceHandle,
IFCIMG.IFIMG_SDRAM_RGB24, 0, 0, 50, hSDRAMHandle);
:
// キャプチャしたい SDRAM 領域を指定します。
nRet := IFCIMG.ImgSetSDRAM(hDeviceHandle, hSDRAMHandle);
デバイス名「IFIMGMEM1」のデバイスに対して、キャプチャを行いたい SDRAM 領域を指定しま
す。
© 2003, 2016 Interface Corporation. All rights reserved.
196
GPC-5520 Help for Windows
28. ImgReadCaptureData
指定した SDRAM 領域に対して、キャプチャデータを取り出します。
【書式】
●C 言語
INT ImgReadCaptureData(
HANDLE
hDeviceHandle,
HANDLE
hSDRAMHandle,
DWORD
dwStartFrameNum,
DWORD
dwFrameCnt,
PVOID
pReadData,
DWORD
dwSize
);
//
//
//
//
//
//
デバイスハンドル
SDRAM 管理ハンドル
開始フレーム番号
読み込みフレーム数
格納先バッファのポインタ
格納先バッファのサイズ
●Visual Basic
Declare Function ImgReadCaptureData Lib "IfImg.dll"( _
ByVal
hDeviceHandle
As Long, _ ‘ デバイスハンドル
ByVal
hSDRAMHandle
As Long, _ ‘ SDRAM 管理ハンドル
ByVal
dwStartFrameNum
As Long, _ ‘ 開始フレーム番号
ByVal
dwFrameCnt
As Long, _ ‘ 読み込みフレーム数
ByRef
pReadData
As Long, _ ‘ 格納先バッファの参照渡し
ByVal
dwSize
As Long _ ‘ 格納先バッファのサイズ
)As Long
●Delphi
function ImgReadCaptureData (
hDeviceHandle:
THandle;
// デバイスハンドル
hSDRAMHandle:
THandle;
// 書き込み開始オフセットアドレス
dwStartFrameNum:
DWORD;
// 開始フレーム番号
dwFrameCnt:
DWORD;
// 読み込みフレーム数
pReadData:
Pointer;
// 格納先バッファのポインタ
dwSise:
DWORD
// 格納先バッファのサイズ
): Integer; stdcall; external 'IfImg.dll';
●Visual C# .NET(x86、x64 共用)
[DllImport("IfImg.dll")]
public static extern int ImgReadCaptureData(
IntPtr
hDeviceHandle,
//
IntPtr
hSDRAMHandle,
//
uint
dwStartFrameNum,
//
uint
dwFrameCnt,
//
byte[]
pReadData,
//
uint
dwSize
//
);
デバイスハンドル
SDRAM 管理ハンドル
開始フレーム番号
読み込みフレーム数
格納先バッファのポインタ
格納先バッファのサイズ
© 2003, 2016 Interface Corporation. All rights reserved.
197
GPC-5520 Help for Windows
[DllImport("IfImg.dll")]
public static extern int ImgReadCaptureData(
IntPtr
hDeviceHandle,
//
IntPtr
hSDRAMHandle,
//
uint
dwStartFrameNum,
//
uint
dwFrameCnt,
//
ushort[]
pReadData,
//
uint
dwSize
//
);
[DllImport("IfImg.dll")]
public static extern int ImgReadCaptureData(
IntPtr
hDeviceHandle,
//
IntPtr
hSDRAMHandle,
//
uint
dwStartFrameNum,
//
uint
dwFrameCnt,
//
uint[]
pReadData,
//
uint
dwSize
//
);
●Visual C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgReadCaptureData(
uint
hDeviceHandle,
//
uint
hSDRAMHandle,
//
uint
dwStartFrameNum,
//
uint
dwFrameCnt,
//
byte[]
pReadData,
//
uint
dwSize
//
);
[DllImport("IfImg.dll")]
public static extern int ImgReadCaptureData(
uint
hDeviceHandle,
//
uint
hSDRAMHandle,
//
uint
dwStartFrameNum,
//
uint
dwFrameCnt,
//
ushort[]
pReadData,
//
uint
dwSize
//
);
デバイスハンドル
SDRAM 管理ハンドル
開始フレーム番号
読み込みフレーム数
格納先バッファのポインタ
格納先バッファのサイズ
デバイスハンドル
SDRAM 管理ハンドル
開始フレーム番号
読み込みフレーム数
格納先バッファのポインタ
格納先バッファのサイズ
デバイスハンドル
SDRAM 管理ハンドル
開始フレーム番号
読み込みフレーム数
格納先バッファのポインタ
格納先バッファのサイズ
デバイスハンドル
SDRAM 管理ハンドル
開始フレーム番号
読み込みフレーム数
格納先バッファのポインタ
格納先バッファのサイズ
© 2003, 2016 Interface Corporation. All rights reserved.
198
GPC-5520 Help for Windows
[DllImport("IfImg.dll")]
public static extern int ImgReadCaptureData(
uint
hDeviceHandle,
//
uint
hSDRAMHandle,
//
uint
dwStartFrameNum,
//
uint
dwFrameCnt,
//
uint[]
pReadData,
//
uint
dwSize
//
);
デバイスハンドル
SDRAM 管理ハンドル
開始フレーム番号
読み込みフレーム数
格納先バッファのポインタ
格納先バッファのサイズ
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgReadCaptureData Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As IntPtr,
‘ デバイスハンドル
ByVal
hSDRAMHandle
As IntPtr,
‘ SDRAM 管理ハンドル
ByVal
dwStartFrameNum As Integer, ‘ 開始フレーム番号
ByVal
dwFrameCnt
As Integer, ‘ 読み込みフレーム数
ByVal
pReadData( )
As Byte,
‘ 格納先バッファの参照渡し
ByVal
dwSize
As Integer
‘ 格納先バッファのサイズ
)As Integer
Declare Function ImgReadCaptureData Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As IntPtr,
‘ デバイスハンドル
ByVal
hSDRAMHandle
As IntPtr,
‘ SDRAM 管理ハンドル
ByVal
dwStartFrameNum As Integer, ‘ 開始フレーム番号
ByVal
dwFrameCnt
As Integer, ‘ 読み込みフレーム数
ByVal
pReadData( )
As Short,
‘ 格納先バッファの参照渡し
ByVal
dwSize
As Integer
‘ 格納先バッファのサイズ
)As Integer
Declare Function ImgReadCaptureData Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As IntPtr,
‘ デバイスハンドル
ByVal
hSDRAMHandle
As IntPtr,
‘ SDRAM 管理ハンドル
ByVal
dwStartFrameNum As Integer, ‘ 開始フレーム番号
ByVal
dwFrameCnt
As Integer, ‘ 読み込みフレーム数
ByVal
pReadData( )
As Integer, ‘ 格納先バッファの参照渡し
ByVal
dwSize
As Integer
‘ 格納先バッファのサイズ
)As Integer
© 2003, 2016 Interface Corporation. All rights reserved.
199
GPC-5520 Help for Windows
●Visual Basic .NET(x86 専用)
Declare Function ImgReadCaptureData Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As Integer, ‘ デバイスハンドル
ByVal
hSDRAMHandle
As Integer, ‘ SDRAM 管理ハンドル
ByVal
dwStartFrameNum As Integer, ‘ 開始フレーム番号
ByVal
dwFrameCnt
As Integer, ‘ 読み込みフレーム数
ByVal
pReadData( )
As Byte,
‘ 格納先バッファの参照渡し
ByVal
dwSize
As Integer
‘ 格納先バッファのサイズ
)As Integer
Declare Function ImgReadCaptureData Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As Integer, ‘ デバイスハンドル
ByVal
hSDRAMHandle
As Integer, ‘ SDRAM 管理ハンドル
ByVal
dwStartFrameNum As Integer, ‘ 開始フレーム番号
ByVal
dwFrameCnt
As Integer, ‘ 読み込みフレーム数
ByVal
pReadData( )
As Short,
‘ 格納先バッファの参照渡し
ByVal
dwSize
As Integer
‘ 格納先バッファのサイズ
)As Integer
Declare Function ImgReadCaptureData Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As Integer, ‘ デバイスハンドル
ByVal
hSDRAMHandle
As Integer, ‘ SDRAM 管理ハンドル
ByVal
dwStartFrameNum As Integer, ‘ 開始フレーム番号
ByVal
dwFrameCnt
As Integer, ‘ 読み込みフレーム数
ByVal
pReadData( )
As Integer, ‘ 格納先バッファの参照渡し
ByVal
dwSize
As Integer
‘ 格納先バッファのサイズ
)As Integer
●Delphi 8
class function ImgReadCaptureData (
hDeviceHandle:
Integer;
hSDRAMHandle:
Integer;
dwStartFrameNum:
Cardinal;
dwFrameCnt:
Cardinal;
pReadData:
IntPtr;
dwSise:
Cardinal
): Integer; static;
class function ImgReadCaptureData (
hDeviceHandle:
Integer;
hSDRAMHandle:
Integer;
dwStartFrameNum: Cardinal;
dwFrameCnt:
Cardinal;
pReadData:
array of Byte;
dwSise:
Cardinal
): Integer; static;
//
//
//
//
//
//
デバイスハンドル
書き込み開始オフセットアドレス
開始フレーム番号
読み込みフレーム数
格納先バッファのポインタ
格納先バッファのサイズ
//
//
//
//
//
//
デバイスハンドル
書き込み開始オフセットアドレス
開始フレーム番号
読み込みフレーム数
格納先バッファのポインタ
格納先バッファのサイズ
© 2003, 2016 Interface Corporation. All rights reserved.
200
GPC-5520 Help for Windows
class function ImgReadCaptureData (
hDeviceHandle:
Integer;
hSDRAMHandle:
Integer;
dwStartFrameNum: Cardinal;
dwFrameCnt:
Cardinal;
pReadData:
array of Word;
dwSise:
Cardinal
): Integer; static;
//
//
//
//
//
//
class function ImgReadCaptureData (
hDeviceHandle:
Integer;
hSDRAMHandle:
Integer;
dwStartFrameNum:
dwFrameCnt:
pReadData:
dwSise:
デバイスハンドル
書き込み開始オフセットアドレス
開始フレーム番号
読み込みフレーム数
格納先バッファのポインタ
格納先バッファのサイズ
//
//
ス
Cardinal;
//
Cardinal;
//
array of Cardinal; //
Cardinal
//
デバイスハンドル
書き込み開始オフセットアドレ
開始フレーム番号
読み込みフレーム数
格納先バッファのポインタ
格納先バッファのサイズ
): Integer; static;
【パラメータ】
hDeviceHandle
ImgOpen関数で取得したデバイスハンドルを指定してください。
hSDRAMHandle
ImgAllocateSDRAM関数で取得したハンドルを指定します。
dwStartFrameNum
読み込み開始フレーム番号(1~ SDRAM 領域に確保したフレーム数)
キャプチャしたフレーム番号ではないので、ご注意ください。
dwFrameCnt
読み込みフレーム数
pReadData
格納先のバッファの先頭ポインタ
dwSize
格納先のバッファのサイズ
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、
『4.5 戻り値一覧』をご参照くださ
い。
© 2003, 2016 Interface Corporation. All rights reserved.
201
GPC-5520 Help for Windows
【備考】
本関数は指定した SDRAM 領域内のフレームデータを確保します。dwStartFrameNum を含めた
dwFrameCnt 分のフレームデータを取り出します。
読み込み元 SDRAM 領域
dwSratFlameNum = X
転送先バッファ
1
X
:
X+1
:
X+2
X
X+3
:
X+4
:
dwFlameCnt = N
:
:
X+N-1
:
:
M
© 2003, 2016 Interface Corporation. All rights reserved.
202
GPC-5520 Help for Windows
【使用例】
●C 言語
HANDLE hDeviceHandle;
int nRet;
HANDLE hSDRAMHandle
PBYTE pCaptureData;
DWORD dwSize;
hDeviceHandle = ImgOpen(“IFIMGMEM1”);
:
// SDRAM 内にキャプチャ用領域を確保
nRet = ImgAllocateSDRAM(hDeviceHandle,
IFIMG_SDRAM_RGB24, 0, 0, 50, &hSDRAMHandle);
:
// キャプチャ処理を行います。
:
// 格納用バッファを動的確保。RGB24 を 10 フレーム
dwSize = 921600L * 10;
pCaptureData = (PBYTE)malloc(dwSize);
// SDRAM からデータ取り出し。20 フレーム目から 10 フレーム分。
nRet = ImgReadCaptureData( hDeviceHandle, hSDRAMHandle,
20, 10, pCaptureData, dwSize);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim hSDRAMHandle As Long
Dim nRet As Long
Dim CaptureData(9216000) As Byte ‘RGB24 を 10 フレーム
lpszName = “IFIMGMEM1”
hDeviceHandle = ImgOpen(lpszName)
:
‘ SDRAM 内にキャプチャ用領域を確保
nRet = ImgAllocateSDRAM(hDeviceHandle,
IFIMG_SDRAM_RGB24, 0, 0, 50, hSDRAMHandle)
:
‘ キャプチャ処理を行います。
:
‘ SDRAM からデータ取り出し。20 フレーム目から 10 フレーム分。
nRet = ImgReadCaptureData( hDeviceHandle, hSDRAMHandle,
20, 10, CaptureData, 9216000)
© 2003, 2016 Interface Corporation. All rights reserved.
203
GPC-5520 Help for Windows
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
hSDRAMHandle: THandle;
nRet: Integer;
pCaptureData: Pointer;
dwSize: DWORD;
lpszName := 'IFIMGMEM1';
hDeviceHandle := ImgOpen(lpszName);
:
// SDRAM 内にキャプチャ用領域を確保
nRet := ImgAllocateSDRAM(hDeviceHandle,
IFIMG_SDRAM_RGB24, 0, 0, 50, hSDRAMHandle);
:
// キャプチャ処理を行います。
:
// 格納用バッファを動的確保。RGB24 を 10 フレーム
dwSize := 9216000;
pCaptureData := AllocMem(dwSize);
// SDRAM からデータ取り出し。20 フレーム目から 10 フレーム分。
nRet := ImgReadCaptureData( hDeviceHandle, hSDRAMHandle,
20, 10, pCaptureData, dwSize);
●Visual C# .NET
IntPtr hDeviceHandle;
int nRet;
IntPtr hSDRAMHandle
byte CaptureData[921600*10];
DWORD dwSize;
hDeviceHandle = IFCIMG_ANY.ImgOpen(“IFIMGMEM1”);
:
// SDRAM 内にキャプチャ用領域を確保
nRet = IFCIMG_ANY.ImgAllocateSDRAM(hDeviceHandle,
IFCIMG_ANY.IFIMG_SDRAM_RGB24, 0, 0, 50, out hSDRAMHandle);
:
// キャプチャ処理を行います。
:
// 格納用バッファを動的確保。RGB24 を 10 フレーム
dwSize = 921600L * 10;
// SDRAM からデータ取り出し。20 フレーム目から 10 フレーム分。
nRet = IFCIMG_ANY.ImgReadCaptureData( hDeviceHandle, hSDRAMHandle,
20, 10, CaptureData, dwSize);
© 2003, 2016 Interface Corporation. All rights reserved.
204
GPC-5520 Help for Windows
●Visual Basic .NET
Dim lpszName As String
Dim hDeviceHandle As IntPtr
Dim hSDRAMHandle As IntPtr
Dim nRet As Integer
Dim CaptureData(9216000) As Byte ‘RGB24 を 10 フレーム
lpszName = “IFIMGMEM1”
hDeviceHandle = IFCIMG_ANY.ImgOpen(lpszName)
:
‘ SDRAM 内にキャプチャ用領域を確保
nRet = IFCIMG_ANY.ImgAllocateSDRAM(hDeviceHandle,
IFCIMG_ANY.IFIMG_SDRAM_RGB24, 0, 0, 50, hSDRAMHandle)
:
‘ キャプチャ処理を行います。
:
‘ SDRAM からデータ取り出し。20 フレーム目から 10 フレーム分。
nRet = IFCIMG_ANY.ImgReadCaptureData( hDeviceHandle, hSDRAMHandle,
20, 10, CaptureData, 9216000)
●Delphi 8
var
lpszName: String;
hDeviceHandle: Integer;
hSDRAMHandle: Integer;
nRet: Integer;
pCaptureData: array of Byte;
dwSize: Cardinal;
lpszName := 'IFIMGMEM1';
hDeviceHandle := IFCIMG.ImgOpen(lpszName);
:
// SDRAM 内にキャプチャ用領域を確保
nRet := IFCIMG.ImgAllocateSDRAM(hDeviceHandle,
IFCIMG.IFIMG_SDRAM_RGB24, 0, 0, 50, hSDRAMHandle);
:
// キャプチャ処理を行います。
:
// 格納用バッファを動的確保。RGB24 を 10 フレーム
dwSize := 9216000;
Setlength(pCaptureData, dwSize);
// SDRAM からデータ取り出し。20 フレーム目から 10 フレーム分。
nRet := IFCIMG.ImgReadCaptureData( hDeviceHandle, hSDRAMHandle,
20, 10, pCaptureData, dwSize);
デバイス名「IFIMGMEM1」のデバイスに対して、SDRAM からキャプチャデータを取り出します。
© 2003, 2016 Interface Corporation. All rights reserved.
205
GPC-5520 Help for Windows
29. ImgBmCaptureData
指定した SDRAM 領域のキャプチャデータをメインメモリへ DMA 転送します。
(PCI/CTP-5521,5523,5531,5533 専用)
【書式】
●C 言語
INT ImgBmCaptureData(
HANDLE
hDeviceHandle,
HANDLE
hSDRAMHandle,
DWORD
dwStartFrameNum,
DWORD
dwFrameCnt,
DWORD
dwPosition
);
//
//
//
//
//
デバイスハンドル
SDRAM 管理ハンドル
開始フレーム番号
読み込みフレーム数
転送開始位置
●Visual Basic
Declare Function ImgBmCaptureData Lib "IfImg.dll"( _
ByVal
hDeviceHandle
As Long, _
‘ デバイスハンドル
ByVal
hSDRAMHandle
As Long, _
‘ SDRAM 管理ハンドル
ByVal
dwStartFrameNum
As Long, _
‘ 開始フレーム番号
ByVal
dwFrameCnt
As Long, _
‘ 読み込みフレーム数
ByVal
dwPosition
As Long _
‘ 転送開始位置
)As Long
●Delphi
function ImgBmCaptureData (
hDeviceHandle:
THandle;
// デバイスハンドル
hSDRAMHandle:
THandle;
// 書き込み開始オフセットアドレス
dwStartFrameNum:
DWORD;
// 開始フレーム番号
dwFrameCnt:
DWORD;
// 読み込みフレーム数
dwPosition:
DWORD
// 転送開始位置
): Integer; stdcall; external 'IfImg.dll';
●Visual C# .NET(x86、x64 共用)
[DllImport("IfImg.dll")]
public static extern int ImgBmCaptureData(
IntPtr
hDeviceHandle,
//
IntPtr
hSDRAMHandle,
//
int
dwStartFrameNum,
//
int
dwFrameCnt,
//
int
dwPosition
//
);
デバイスハンドル
SDRAM 管理ハンドル
開始フレーム番号
読み込みフレーム数
転送開始位置
© 2003, 2016 Interface Corporation. All rights reserved.
206
GPC-5520 Help for Windows
●Visual C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgBmCaptureData(
uint
hDeviceHandle,
//
uint
hSDRAMHandle,
//
int
dwStartFrameNum,
//
int
dwFrameCnt,
//
int
dwPosition
//
);
デバイスハンドル
SDRAM 管理ハンドル
開始フレーム番号
読み込みフレーム数
転送開始位置
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgBmCaptureData Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As IntPtr,
‘ デバイスハンドル
ByVal
hSDRAMHandle
As IntPtr,
‘ SDRAM 管理ハンドル
ByVal
dwStartFrameNum As Integer, ‘ 開始フレーム番号
ByVal
dwFrameCnt
As Integer, ‘ 読み込みフレーム数
ByVal
dwPosition
As Integer
‘ 転送開始位置
)As Integer
●Visual Basic .NET(x86 専用)
Declare Function ImgBmCaptureData Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As Integer, ‘ デバイスハンドル
ByVal
hSDRAMHandle
As Integer, ‘ SDRAM 管理ハンドル
ByVal
dwStartFrameNum As Integer, ‘ 開始フレーム番号
ByVal
dwFrameCnt
As Integer, ‘ 読み込みフレーム数
ByVal
dwPosition
As Integer
‘ 転送開始位置
)As Integer
●Delphi 8
class function ImgBmCaptureData (
hDeviceHandle:
Integer;
hSDRAMHandle:
Integer;
dwStartFrameNum:
Cardinal;
dwFrameCnt:
Cardinal;
dwPosition:
Cardinal
): Integer; static;
//
//
//
//
//
デバイスハンドル
書き込み開始オフセットアドレス
開始フレーム番号
読み込みフレーム数
転送開始位置
【パラメータ】
hDeviceHandle
ImgOpen 関数でオープンしたインタフェースモジュールのデバイス番号を指定してくださ
い。
hSDRAMHandle
ImgAllocateSDRAM 関数で取得した SDRAM ハンドルを指定してください。
© 2003, 2016 Interface Corporation. All rights reserved.
207
GPC-5520 Help for Windows
dwStartFrameNum
読み込み開始フレーム番号(1~SDRAM 内に確保したフレーム数)
※キャプチャしたフレーム番号ではないので、ご注意ください。
dwFrameCnt
読み込みフレーム数
dwPosition
データ転送先のバッファの位置を指定します。
識別子
値
内容
IFIMG_BUFF_HEAD
00000000h
バッファの先頭からデータを転送する
IFIMG_BUFF_CONTINUATION
00000001h
前回転送した続きからデータを転送する
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、
『4.5 戻り値一覧』をご参照くださ
い。
【備考】
本関数は、指定した SDRAM 領域内のフレームデータをバスマスタ方式によりメインメモリへ転
送します。
SDRAM 領域内のデータをメインメモリへ転送する際に、ImgReadCaptureData 関数よりも速い時
間で転送できます。
データ転送の構造は、ImgReadCaptureData 関数と同じです。(ImgReadCaptureData 関数の「備
考」参照)
本関数実行により、データ転送中(DMA 転送中)は、ImgStartCapture 関数によるキャプチャ
は実行できません。
また、キャプチャ中に、本関数を実行することも出来ません。
データ転送の完了は、割り込みイベントもしくは、ImgGetCaptureStatusEx 関数にて知ること
が可能です。
© 2003, 2016 Interface Corporation. All rights reserved.
208
GPC-5520 Help for Windows
<データ転送先について>
dwPosition の指定により、データ転送先の領域が異なります。
●IFIMG_BUFF_HEAD
ImgSetBuffer 関数、ImgSetBufferVB 関数で指定したバッファ領域の先頭から転送します。
●IFIMG_BUFF_CONTINUATION
前回転送した続きから転送します。(初回は、先頭から転送します)
メインメモリへの転送は、リングバッファ形式です。
SDRAM 領域からのデータ転送サイズよりもメインメモリのバッファサイズが少ない場合、上書
きされます。
IFIMG_BUFF_HEAD
SDRAM
前回の転送
SDRAM
N
N + 3
N + 1
N + 4
N + 2
N + 5
N + 3
メインメモリ
メインメモリ
転送
N + 6
N + 4
N
N + 1
N + 2
N
転送
N + 5
N + 1
N + 6
N + 2
N + 3
IFIMG_BUFF_CONTINUATION
SDRAM
N + 4
メインメモリ
N + 5
N
N
N + 6
N + 1
N + 1
N + 2
N + 2
N + 3
N + 3
N + 4
N + 5
N + 5
N + 6
N + 6
© 2003, 2016 Interface Corporation. All rights reserved.
209
N + 4
転送
GPC-5520 Help for Windows
【使用例】
●C 言語(x86)
HANDLE hDeviceHandle;
int nRet;
HANDLE hSDRAMHandle;
PBYTE pCaptureData;
DWORD dwSize;
IMGBUFFERINFO Buffer;
hDeviceHandle = ImgOpen(“IFIMGMEM1”);
:
// SDRAM 内にキャプチャ用領域を確保
nRet = ImgAllocateSDRAM(hDeviceHandle,
IFIMG_SDRAM_RGB24, 0, 0, 50, &hSDRAMHandle);
:
// キャプチャ処理を行います。
:
// 格納用バッファを動的確保。RGB24 を 10 フレーム
dwSize = 921600L * 10;
pCaptureData = (PBYTE)malloc(dwSize);
Buffer.pBufferAddress = pCaptureData;
Buffer.dwBufferSize = dwSize;
nRet = ImgSetBuffer(hDeviceHandle, &Buffer, IFIMG_COLOR_RGB24);
// SDRAM からデータ取り出し。20 フレーム目から 10 フレーム分。
nRet = ImgBmCaptureData( hDeviceHandle, hSDRAMHandle, 20, 10, IFIMG_BUFF_HEAD);
© 2003, 2016 Interface Corporation. All rights reserved.
210
GPC-5520 Help for Windows
●C 言語(x64)
HANDLE hDeviceHandle;
int nRet;
HANDLE hSDRAMHandle;
PBYTE pCaptureData;
DWORD dwSize;
IMGBUFFERINFO Buffer;
PVOID BufferPtr;
hDeviceHandle = ImgOpen(“IFIMGMEM1”);
:
// SDRAM 内にキャプチャ用領域を確保
nRet = ImgAllocateSDRAM(hDeviceHandle,
IFIMG_SDRAM_RGB24, 0, 0, 50, &hSDRAMHandle);
:
// キャプチャ処理を行います。
:
// 格納用バッファを動的確保。RGB24 を 10 フレーム
dwSize = 921600L * 10;
Buffer.pBufferAddress = (PVOID)-1;
Buffer.dwBufferSize = dwSize;
nRet = ImgSetBuffer(hDeviceHandle, &Buffer, IFIMG_COLOR_RGB24);
nRet = ImgGetMemPtrValue(hDeviceHandle, &BufferPtr);
pCaptureData = (PBYTE)BufferPtr;
// SDRAM からデータ取り出し。20 フレーム目から 10 フレーム分。
nRet = ImgBmCaptureData( hDeviceHandle, hSDRAMHandle, 20, 10, IFIMG_BUFF_HEAD);
© 2003, 2016 Interface Corporation. All rights reserved.
211
GPC-5520 Help for Windows
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim hSDRAMHandle As Long
Dim nRet As Long
Dim CaptureData(9216000) As Byte ‘RGB24 を 50 フレーム
lpszName = “IFIMGMEM1”
hDeviceHandle = ImgOpen(lpszName)
:
‘ SDRAM 内にキャプチャ用領域を確保
nRet = ImgAllocateSDRAM(hDeviceHandle, _
IFIMG_SDRAM_RGB24, 0, 0, 50, hSDRAMHandle)
:
buffersize = 9216000
nRet = ImgSetBufferVB(hDeviceHandle, CaptureData (0), buffersize, IFIMG_COLOR_RGB24)
:
‘ SDRAM からデータ取り出し。20 フレーム目から 10 フレーム分。
nRet = ImgBmCaptureData( hDeviceHandle, hSDRAMHandle, 20, 10, IFIMG_BUFF_HEAD)
© 2003, 2016 Interface Corporation. All rights reserved.
212
GPC-5520 Help for Windows
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
hSDRAMHandle: THandle;
nRet: Integer;
pCaptureData: Pointer;
dwSize: DWORD;
Buffer: IMGBUFFERINFO;
lpszName := 'IFIMGMEM1';
hDeviceHandle := ImgOpen(lpszName);
:
// SDRAM 内にキャプチャ用領域を確保
nRet := ImgAllocateSDRAM(hDeviceHandle,
IFIMG_SDRAM_RGB24, 0, 0, 50, hSDRAMHandle);
:
// 格納用バッファを動的確保。RGB24 を 10 フレーム
dwSize := 9216000;
pCaptureData := AllocMem(dwSize);
Buffer.pBufferAddress := pCaptureData;
Buffer. dwBufferSize := dwSize;
nRet := ImgSetBuffer(hDeviceHandle, Buffer, IFIMG_COLOR_RGB24);
:
// SDRAM からデータ取り出し。20 フレーム目から 10 フレーム分。
nRet := ImgBmCaptureData( hDeviceHandle, hSDRAMHandle, 20, 10, IFIMG_BUFF_HEAD);
© 2003, 2016 Interface Corporation. All rights reserved.
213
GPC-5520 Help for Windows
●Visual C# .NET(x86)
IntPtr hDeviceHandle;
int nRet;
intPtr hSDRAMHandle;
IntPtr array_p;
uint dwSize;
IFCIMG_ANY.IMGBUFFERINFO Buffer;
hDeviceHandle = IFCIMG_ANY.ImgOpen(“IFIMGMEM1”);
:
// SDRAM 内にキャプチャ用領域を確保
nRet = IFCIMG_ANY.ImgAllocateSDRAM(hDeviceHandle,
IFCIMG_ANY.IFIMG_SDRAM_RGB24, 0, 0, 50, &hSDRAMHandle);
:
// SDRAM キャプチャを行います。
:
// 格納用バッファを動的確保。RGB24 を 10 フレーム
dwSize = 921600 * 10;
array_p = Marshal.AllocCoTaskMem((int)dwSize);
:
Buffer.pBufferAddress = array_p;
Buffer.dwBufferSize = dwSize;
:
nRet = IFCIMG_ANY.ImgSetBuffer(hDeviceHandle, ref Buffer,
IFCIMG_ANY.IFIMG_COLOR_RGB24);
:
// SDRAM からデータ取り出し。20 フレーム目から 10 フレーム分。
nRet = IFCIMG_ANY.ImgBmCaptureData( hDeviceHandle,
hSDRAMHandle, 20, 10, IFCIMG_ANY.IFIMG_BUFF_HEAD);
© 2003, 2016 Interface Corporation. All rights reserved.
214
GPC-5520 Help for Windows
●Visual C# .NET(x64)
IntPtr hDeviceHandle;
int nRet;
intPtr hSDRAMHandle;
uint dwSize;
IFCIMG_ANY.IMGBUFFERINFO Buffer;
hDeviceHandle = IFCIMG_ANY.ImgOpen(“IFIMGMEM1”);
:
// SDRAM 内にキャプチャ用領域を確保
nRet = IFCIMG_ANY.ImgAllocateSDRAM(hDeviceHandle,
IFCIMG_ANY.IFIMG_SDRAM_RGB24, 0, 0, 50, &hSDRAMHandle);
:
// SDRAM キャプチャを行います。
:
// 格納用バッファを動的確保。RGB24 を 10 フレーム
dwSize = 921600 * 10;
:
Buffer.pBufferAddress = new IntPtr(-1);
Buffer.dwBufferSize = dwSize;
:
nRet = IFCIMG_ANY.ImgSetBuffer(hDeviceHandle, ref Buffer,
IFCIMG_ANY.IFIMG_COLOR_RGB24);
:
// SDRAM からデータ取り出し。20 フレーム目から 10 フレーム分。
nRet = IFCIMG_ANY.ImgBmCaptureData( hDeviceHandle,
hSDRAMHandle, 20, 10, IFCIMG_ANY.IFIMG_BUFF_HEAD);
© 2003, 2016 Interface Corporation. All rights reserved.
215
GPC-5520 Help for Windows
●Visual Basic .NET(x86)
Dim lpszName As String
Dim hDeviceHandle As IntPtr
Dim hSDRAMHandle As IntPtr
Dim nRet As Integer
Dim CaptureData(9216000) As Byte ‘RGB24 を 50 フレーム
lpszName = “IFIMGMEM1”
hDeviceHandle = IFCIMG_ANY.ImgOpen(lpszName)
:
‘ SDRAM 内にキャプチャ用領域を確保
nRet = IFCIMG_ANY.ImgAllocateSDRAM(hDeviceHandle, _
IFCIMG_ANY.IFIMG_SDRAM_RGB24, 0, 0, 50, hSDRAMHandle)
:
buffersize = 9216000
nRet = IFCIMG_ANY.ImgSetBufferVB(hDeviceHandle, CaptureData,
buffersize, IFCIMG_ANY.IFIMG_COLOR_RGB24)
:
‘ SDRAM からデータ取り出し。20 フレーム目から 10 フレーム分。
nRet = IFCIMG_ANY.ImgBmCaptureData( hDeviceHandle, hSDRAMHandle,
20, 10, IFCIMG_ANY.IFIMG_BUFF_HEAD)
●Visual Basic .NET(x64)
Dim lpszName As String
Dim hDeviceHandle As IntPtr
Dim hSDRAMHandle As IntPtr
Dim nRet As Integer
lpszName = “IFIMGMEM1”
hDeviceHandle = IFCIMG_ANY.ImgOpen(lpszName)
:
‘ SDRAM 内にキャプチャ用領域を確保
nRet = IFCIMG_ANY.ImgAllocateSDRAM(hDeviceHandle, _
IFCIMG_ANY.IFIMG_SDRAM_RGB24, 0, 0, 50, hSDRAMHandle)
:
buffersize = 9216000
nRet = IFCIMG_ANY.ImgSetBufferVB(hDeviceHandle, New IntPtr(-1),
buffersize, IFCIMG_ANY.IFIMG_COLOR_RGB24)
:
‘ SDRAM からデータ取り出し。20 フレーム目から 10 フレーム分。
nRet = IFCIMG_ANY.ImgBmCaptureData( hDeviceHandle, hSDRAMHandle,
20, 10, IFCIMG_ANY.IFIMG_BUFF_HEAD)
© 2003, 2016 Interface Corporation. All rights reserved.
216
GPC-5520 Help for Windows
●Delphi 8
var
lpszName: String;
hDeviceHandle: Integer;
hSDRAMHandle: Integer;
nRet: Integer;
pCaptureData: IntPtr;
dwSize: Cardinal;
Buffer: IFCIMG.IMGBUFFERINFO;
lpszName := 'IFIMGMEM1';
hDeviceHandle := IFCIMG.ImgOpen(lpszName);
:
// SDRAM 内にキャプチャ用領域を確保
nRet := IFCIMG.ImgAllocateSDRAM(hDeviceHandle,
IFCIMG.IFIMG_SDRAM_RGB24, 0, 0, 50, hSDRAMHandle);
:
// 格納用バッファを動的確保。RGB24 を 10 フレーム
dwSize := 9216000;
pCaptureData := Marshal.AllocHGlobal(dwSize);
Buffer.pBufferAddress := pCaptureData;
Buffer. dwBufferSize := dwSize;
nRet := IFCIMG.ImgSetBuffer(hDeviceHandle, Buffer, IFCIMG.IFIMG_COLOR_RGB24);
:
// SDRAM からデータ取り出し。20 フレーム目から 10 フレーム分。
nRet := IFCIMG.ImgBmCaptureData( hDeviceHandle, hSDRAMHandle, 20, 10,
IFCIMG.IFIMG_BUFF_HEAD);
デバイス名「IFIMGMEM1」のデバイスに対して、SDRAM からキャプチャデータを取り出します。
© 2003, 2016 Interface Corporation. All rights reserved.
217
GPC-5520 Help for Windows
30. ImgClipData
ImgSetBuffer 関数(または ImgSetBufferVB 関数)で指定したバッファ領域に対して、指定した
フレームと指定した矩形領域の画像データを別のバッファへコピーします。
さらに画像データを拡大させてコピーさせる事もできます。
【書式】
●C 言語
INT ImgClipData(
PVOID
PVOID
DWORD
PIMGCLIPCONFIG
);
pdest,
psrc,
dwFrameNum,
pClipConfig
// 格納先バッファのポインタ
// 読み込み元バッファのポインタ
// フレーム番号
// IMGCLIPCONFIG 構造体のポインタ
●Visual Basic
Declare Function ImgClipData Lib "IfImg.dll"( _
ByRef
pdest
As Any, _
‘ 格納先バッファの参照渡し
ByRef
psrc
As Any, _
‘ 読み込み元バッファの参照渡し
ByVal
dwFrameNum
As Long, _
‘ フレーム番号
ByRef
pClipConfig As IMGCLIPCONFIG _ ‘ IMGCLIPCONFIG 構造体の参照渡
し
)As Long
●Delphi
function ImgClipData (
pdest:
psrc:
dwFrameNum:
var pClipConfig:
Pointer;
//
Pointer;
//
DWORD;
//
IMGCLIPCONFIG //
): Integer; stdcall; external 'IfImg.dll';
●Visual C# .NET(x86、x64 共用)
[DllImport("IfImg.dll")]
public static extern int ImgClipData(
IntPtr
pdest,
IntPtr
psrc,
uint
dwFrameNum,
ref IMGCLIPCONFIG
pClipConfig
);
格納先バッファのポインタ
読み込み元バッファのポインタ
フレーム番号
IMGCLIPCONFIG 構造体のポインタ
// 格納先バッファのポインタ
// 読み込み元バッファのポインタ
// フレーム番号
// IMGCLIPCONFIG 構造体のポインタ
[DllImport("IfImg.dll")]
public static extern int ImgClipData(
out byte
pdest,
IntPtr
psrc,
uint
dwFrameNum,
ref IMGCLIPCONFIG
pClipConfig
);
// 格納先バッファのポインタ
// 読み込み元バッファのポインタ
// フレーム番号
// IMGCLIPCONFIG 構造体のポインタ
© 2003, 2016 Interface Corporation. All rights reserved.
218
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
219
GPC-5520 Help for Windows
[DllImport("IfImg.dll")]
public static extern int ImgClipData(
out ushort
pdest,
IntPtr
psrc,
uint
dwFrameNum,
ref IMGCLIPCONFIG
pClipConfig
);
// 格納先バッファのポインタ
// 読み込み元バッファのポインタ
// フレーム番号
// IMGCLIPCONFIG 構造体のポインタ
[DllImport("IfImg.dll")]
public static extern int ImgClipData(
out uint
pdest,
IntPtr
psrc,
uint
dwFrameNum,
ref IMGCLIPCONFIG
pClipConfig
);
// 格納先バッファのポインタ
// 読み込み元バッファのポインタ
// フレーム番号
// IMGCLIPCONFIG 構造体のポインタ
[DllImport("IfImg.dll")]
public static extern int ImgClipData(
byte[]
pdest,
IntPtr
psrc,
uint
dwFrameNum,
ref IMGCLIPCONFIG
pClipConfig
);
// 格納先バッファのポインタ
// 読み込み元バッファのポインタ
// フレーム番号
// IMGCLIPCONFIG 構造体のポインタ
[DllImport("IfImg.dll")]
public static extern int ImgClipData(
ushort[]
pdest,
IntPtr
psrc,
uint
dwFrameNum,
ref IMGCLIPCONFIG
pClipConfig
);
// 格納先バッファのポインタ
// 読み込み元バッファのポインタ
// フレーム番号
// IMGCLIPCONFIG 構造体のポインタ
[DllImport("IfImg.dll")]
public static extern int ImgClipData(
uint[]
pdest,
IntPtr
psrc,
uint
dwFrameNum,
ref IMGCLIPCONFIG
pClipConfig
);
// 格納先バッファのポインタ
// 読み込み元バッファのポインタ
// フレーム番号
// IMGCLIPCONFIG 構造体のポインタ
[DllImport("IfImg.dll")]
public static extern int ImgClipData(
out byte
pdest,
byte[]
psrc,
uint
dwFrameNum,
ref IMGCLIPCONFIG
pClipConfig
);
© 2003, 2016 Interface Corporation. All rights
220
// 格納先バッファのポインタ
// 読み込み元バッファのポインタ
// フレーム番号
// IMGCLIPCONFIG 構造体のポインタ
reserved.
GPC-5520 Help for Windows
[DllImport("IfImg.dll")]
public static extern int ImgClipData(
out ushort
pdest,
byte[]
psrc,
uint
dwFrameNum,
ref IMGCLIPCONFIG
pClipConfig
);
// 格納先バッファのポインタ
// 読み込み元バッファのポインタ
// フレーム番号
// IMGCLIPCONFIG 構造体のポインタ
[DllImport("IfImg.dll")]
public static extern int ImgClipData(
out uint
pdest,
byte[]
psrc,
uint
dwFrameNum,
ref IMGCLIPCONFIG
pClipConfig
);
// 格納先バッファのポインタ
// 読み込み元バッファのポインタ
// フレーム番号
// IMGCLIPCONFIG 構造体のポインタ
[DllImport("IfImg.dll")]
public static extern int ImgClipData(
byte[]
pdest,
byte[]
psrc,
uint
dwFrameNum,
ref IMGCLIPCONFIG
pClipConfig
);
// 格納先バッファのポインタ
// 読み込み元バッファのポインタ
// フレーム番号
// IMGCLIPCONFIG 構造体のポインタ
[DllImport("IfImg.dll")]
public static extern int ImgClipData(
ushort[]
pdest,
byte[]
psrc,
uint
dwFrameNum,
ref IMGCLIPCONFIG
pClipConfig
);
// 格納先バッファのポインタ
// 読み込み元バッファのポインタ
// フレーム番号
// IMGCLIPCONFIG 構造体のポインタ
[DllImport("IfImg.dll")]
public static extern int ImgClipData(
uint[]
pdest,
byte[]
psrc,
uint
dwFrameNum,
ref IMGCLIPCONFIG
pClipConfig
);
// 格納先バッファのポインタ
// 読み込み元バッファのポインタ
// フレーム番号
// IMGCLIPCONFIG 構造体のポインタ
[DllImport("IfImg.dll")]
public static extern int ImgClipData(
out byte
pdest,
ushort[]
psrc,
uint
dwFrameNum,
ref IMGCLIPCONFIG
pClipConfig
);
© 2003, 2016 Interface Corporation. All rights
221
// 格納先バッファのポインタ
// 読み込み元バッファのポインタ
// フレーム番号
// IMGCLIPCONFIG 構造体のポインタ
reserved.
GPC-5520 Help for Windows
[DllImport("IfImg.dll")]
public static extern int ImgClipData(
out ushort
pdest,
ushort[]
psrc,
uint
dwFrameNum,
ref IMGCLIPCONFIG
pClipConfig
);
// 格納先バッファのポインタ
// 読み込み元バッファのポインタ
// フレーム番号
// IMGCLIPCONFIG 構造体のポインタ
[DllImport("IfImg.dll")]
public static extern int ImgClipData(
out uint
pdest,
ushort[]
psrc,
uint
dwFrameNum,
ref IMGCLIPCONFIG
pClipConfig
);
// 格納先バッファのポインタ
// 読み込み元バッファのポインタ
// フレーム番号
// IMGCLIPCONFIG 構造体のポインタ
[DllImport("IfImg.dll")]
public static extern int ImgClipData(
byte[]
pdest,
ushort[]
psrc,
uint
dwFrameNum,
ref IMGCLIPCONFIG
pClipConfig
);
// 格納先バッファのポインタ
// 読み込み元バッファのポインタ
// フレーム番号
// IMGCLIPCONFIG 構造体のポインタ
[DllImport("IfImg.dll")]
public static extern int ImgClipData(
ushort[]
pdest,
ushort[]
psrc,
uint
dwFrameNum,
ref IMGCLIPCONFIG
pClipConfig
);
// 格納先バッファのポインタ
// 読み込み元バッファのポインタ
// フレーム番号
// IMGCLIPCONFIG 構造体のポインタ
[DllImport("IfImg.dll")]
public static extern int ImgClipData(
uint[]
pdest,
ushort[]
psrc,
uint
dwFrameNum,
ref IMGCLIPCONFIG
pClipConfig
);
// 格納先バッファのポインタ
// 読み込み元バッファのポインタ
// フレーム番号
// IMGCLIPCONFIG 構造体のポインタ
[DllImport("IfImg.dll")]
public static extern int ImgClipData(
out byte
pdest,
uint[]
psrc,
uint
dwFrameNum,
ref IMGCLIPCONFIG
pClipConfig
);
© 2003, 2016 Interface Corporation. All rights
222
// 格納先バッファのポインタ
// 読み込み元バッファのポインタ
// フレーム番号
// IMGCLIPCONFIG 構造体のポインタ
reserved.
GPC-5520 Help for Windows
[DllImport("IfImg.dll")]
public static extern int ImgClipData(
out ushort
pdest,
uint[]
psrc,
uint
dwFrameNum,
ref IMGCLIPCONFIG
pClipConfig
);
// 格納先バッファのポインタ
// 読み込み元バッファのポインタ
// フレーム番号
// IMGCLIPCONFIG 構造体のポインタ
[DllImport("IfImg.dll")]
public static extern int ImgClipData(
out uint
pdest,
uint[]
psrc,
uint
dwFrameNum,
ref IMGCLIPCONFIG
pClipConfig
);
// 格納先バッファのポインタ
// 読み込み元バッファのポインタ
// フレーム番号
// IMGCLIPCONFIG 構造体のポインタ
[DllImport("IfImg.dll")]
public static extern int ImgClipData(
byte[]
pdest,
uint[]
psrc,
uint
dwFrameNum,
ref IMGCLIPCONFIG
pClipConfig
);
// 格納先バッファのポインタ
// 読み込み元バッファのポインタ
// フレーム番号
// IMGCLIPCONFIG 構造体のポインタ
[DllImport("IfImg.dll")]
public static extern int ImgClipData(
ushort[]
pdest,
uint[]
psrc,
uint
dwFrameNum,
ref IMGCLIPCONFIG
pClipConfig
);
// 格納先バッファのポインタ
// 読み込み元バッファのポインタ
// フレーム番号
// IMGCLIPCONFIG 構造体のポインタ
[DllImport("IfImg.dll")]
public static extern int ImgClipData(
uint[]
pdest,
uint[]
psrc,
uint
dwFrameNum,
ref IMGCLIPCONFIG
pClipConfig
);
// 格納先バッファのポインタ
// 読み込み元バッファのポインタ
// フレーム番号
// IMGCLIPCONFIG 構造体のポインタ
© 2003, 2016 Interface Corporation. All rights reserved.
223
GPC-5520 Help for Windows
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgClipData Lib "IfImg.DLL"(
ByVal
pdest
As IntPtr,
‘
ByVal
psrc
As IntPtr,
‘
ByVal
dwFrameNum
As Integer,
‘
ByRef
pClipConfig
As IMGCLIPCONFIG ‘
)As Integer
格納先バッファの参照渡し
読み込み元バッファの参照渡し
フレーム番号
IMGCLIPCONFIG 構造体の参照渡し
Declare Function ImgClipData Lib "IfImg.DLL"(
ByRef
pdest
As Byte,
‘
ByVal
psrc
As IntPtr,
‘
ByVal
dwFrameNum
As Integer,
‘
ByRef
pClipConfig
As IMGCLIPCONFIG ‘
)As Integer
格納先バッファの参照渡し
読み込み元バッファの参照渡し
フレーム番号
IMGCLIPCONFIG 構造体の参照渡し
Declare Function ImgClipData Lib "IfImg.DLL"(
ByRef
pdest
As Short,
‘
ByVal
psrc
As IntPtr,
‘
ByVal
dwFrameNum
As Integer,
‘
ByRef
pClipConfig
As IMGCLIPCONFIG ‘
)As Integer
格納先バッファの参照渡し
読み込み元バッファの参照渡し
フレーム番号
IMGCLIPCONFIG 構造体の参照渡し
Declare Function ImgClipData Lib "IfImg.DLL"(
ByRef
pdest
As Integer,
‘
ByVal
psrc
As IntPtr,
‘
ByVal
dwFrameNum
As Integer,
‘
ByRef
pClipConfig
As IMGCLIPCONFIG ‘
)As Integer
格納先バッファの参照渡し
読み込み元バッファの参照渡し
フレーム番号
IMGCLIPCONFIG 構造体の参照渡し
Declare Function ImgClipData Lib "IfImg.DLL"(
ByVal
pdest( )
As Byte,
‘
ByVal
psrc
As IntPtr,
‘
ByVal
dwFrameNum
As Integer,
‘
ByRef
pClipConfig
As IMGCLIPCONFIG ‘
)As Integer
格納先バッファの参照渡し
読み込み元バッファの参照渡し
フレーム番号
IMGCLIPCONFIG 構造体の参照渡し
Declare Function ImgClipData Lib "IfImg.DLL"(
ByVal
pdest( )
As Short,
‘
ByVal
psrc
As IntPtr,
‘
ByVal
dwFrameNum
As Integer,
‘
ByRef
pClipConfig
As IMGCLIPCONFIG ‘
)As Integer
格納先バッファの参照渡し
読み込み元バッファの参照渡し
フレーム番号
IMGCLIPCONFIG 構造体の参照渡し
© 2003, 2016 Interface Corporation. All rights reserved.
224
GPC-5520 Help for Windows
Declare Function ImgClipData Lib "IfImg.DLL"(
ByVal
pdest( )
As Integer,
‘
ByVal
psrc
As IntPtr,
‘
ByVal
dwFrameNum
As Integer,
‘
ByRef
pClipConfig
As IMGCLIPCONFIG ‘
)As Integer
格納先バッファの参照渡し
読み込み元バッファの参照渡し
フレーム番号
IMGCLIPCONFIG 構造体の参照渡し
Declare Function ImgClipData Lib "IfImg.DLL"(
ByRef
pdest
As Byte,
‘
ByVal
psrc( )
As Byte,
‘
ByVal
dwFrameNum
As Integer,
‘
ByRef
pClipConfig
As IMGCLIPCONFIG ‘
)As Integer
格納先バッファの参照渡し
読み込み元バッファの参照渡し
フレーム番号
IMGCLIPCONFIG 構造体の参照渡し
Declare Function ImgClipData Lib "IfImg.DLL"(
ByRef
pdest
As Short,
‘
ByVal
psrc( )
As Byte,
‘
ByVal
dwFrameNum
As Integer,
‘
ByRef
pClipConfig
As IMGCLIPCONFIG ‘
)As Integer
格納先バッファの参照渡し
読み込み元バッファの参照渡し
フレーム番号
IMGCLIPCONFIG 構造体の参照渡し
Declare Function ImgClipData Lib "IfImg.DLL"(
ByRef
pdest
As Integer,
‘
ByVal
psrc( )
As Byte,
‘
ByVal
dwFrameNum
As Integer,
‘
ByRef
pClipConfig
As IMGCLIPCONFIG ‘
)As Integer
格納先バッファの参照渡し
読み込み元バッファの参照渡し
フレーム番号
IMGCLIPCONFIG 構造体の参照渡し
Declare Function ImgClipData Lib "IfImg.DLL"(
ByVal
pdest( )
As Byte,
‘
ByVal
psrc( )
As Byte,
‘
ByVal
dwFrameNum
As Integer,
‘
ByRef
pClipConfig
As IMGCLIPCONFIG ‘
)As Integer
格納先バッファの参照渡し
読み込み元バッファの参照渡し
フレーム番号
IMGCLIPCONFIG 構造体の参照渡し
Declare Function ImgClipData Lib "IfImg.DLL"(
ByVal
pdest( )
As Short,
‘
ByVal
psrc( )
As Byte,
‘
ByVal
dwFrameNum
As Integer,
‘
ByRef
pClipConfig
As IMGCLIPCONFIG ‘
)As Integer
格納先バッファの参照渡し
読み込み元バッファの参照渡し
フレーム番号
IMGCLIPCONFIG 構造体の参照渡し
© 2003, 2016 Interface Corporation. All rights reserved.
225
GPC-5520 Help for Windows
Declare Function ImgClipData Lib "IfImg.DLL"(
ByVal
pdest( )
As Integer,
‘
ByVal
psrc( )
As Byte,
‘
ByVal
dwFrameNum
As Integer,
‘
ByRef
pClipConfig
As IMGCLIPCONFIG ‘
)As Integer
格納先バッファの参照渡し
読み込み元バッファの参照渡し
フレーム番号
IMGCLIPCONFIG 構造体の参照渡し
Declare Function ImgClipData Lib "IfImg.DLL"(
ByRef
pdest
As Byte,
‘
ByVal
psrc( )
As Short,
‘
ByVal
dwFrameNum
As Integer,
‘
ByRef
pClipConfig
As IMGCLIPCONFIG ‘
)As Integer
格納先バッファの参照渡し
読み込み元バッファの参照渡し
フレーム番号
IMGCLIPCONFIG 構造体の参照渡し
Declare Function ImgClipData Lib "IfImg.DLL"(
ByRef
pdest
As Short,
‘
ByVal
psrc( )
As Short,
‘
ByVal
dwFrameNum
As Integer,
‘
ByRef
pClipConfig
As IMGCLIPCONFIG ‘
)As Integer
格納先バッファの参照渡し
読み込み元バッファの参照渡し
フレーム番号
IMGCLIPCONFIG 構造体の参照渡し
Declare Function ImgClipData Lib "IfImg.DLL"(
ByRef
pdest
As Integer,
‘
ByVal
psrc( )
As Short,
‘
ByVal
dwFrameNum
As Integer,
‘
ByRef
pClipConfig
As IMGCLIPCONFIG ‘
)As Integer
格納先バッファの参照渡し
読み込み元バッファの参照渡し
フレーム番号
IMGCLIPCONFIG 構造体の参照渡し
Declare Function ImgClipData Lib "IfImg.DLL"(
ByVal
pdest( )
As Byte,
‘
ByVal
psrc( )
As Short,
‘
ByVal
dwFrameNum
As Integer,
‘
ByRef
pClipConfig
As IMGCLIPCONFIG ‘
)As Integer
格納先バッファの参照渡し
読み込み元バッファの参照渡し
フレーム番号
IMGCLIPCONFIG 構造体の参照渡し
Declare Function ImgClipData Lib "IfImg.DLL"(
ByVal
pdest( )
As Short,
‘
ByVal
psrc( )
As Short,
‘
ByVal
dwFrameNum
As Integer,
‘
ByRef
pClipConfig
As IMGCLIPCONFIG ‘
)As Integer
格納先バッファの参照渡し
読み込み元バッファの参照渡し
フレーム番号
IMGCLIPCONFIG 構造体の参照渡し
© 2003, 2016 Interface Corporation. All rights reserved.
226
GPC-5520 Help for Windows
Declare Function ImgClipData Lib "IfImg.DLL"(
ByVal
pdest( )
As Integer,
‘
ByVal
psrc( )
As Short,
‘
ByVal
dwFrameNum
As Integer,
‘
ByRef
pClipConfig
As IMGCLIPCONFIG ‘
)As Integer
格納先バッファの参照渡し
読み込み元バッファの参照渡し
フレーム番号
IMGCLIPCONFIG 構造体の参照渡し
Declare Function ImgClipData Lib "IfImg.DLL"(
ByRef
pdest
As Byte,
‘
ByVal
psrc( )
As Integer,
‘
ByVal
dwFrameNum
As Integer,
‘
ByRef
pClipConfig
As IMGCLIPCONFIG ‘
)As Integer
格納先バッファの参照渡し
読み込み元バッファの参照渡し
フレーム番号
IMGCLIPCONFIG 構造体の参照渡し
Declare Function ImgClipData Lib "IfImg.DLL"(
ByRef
pdest
As Short,
‘
ByVal
psrc( )
As Integer,
‘
ByVal
dwFrameNum
As Integer,
‘
ByRef
pClipConfig
As IMGCLIPCONFIG ‘
)As Integer
格納先バッファの参照渡し
読み込み元バッファの参照渡し
フレーム番号
IMGCLIPCONFIG 構造体の参照渡し
Declare Function ImgClipData Lib "IfImg.DLL"(
ByRef
pdest
As Integer,
‘
ByVal
psrc( )
As Integer,
‘
ByVal
dwFrameNum
As Integer,
‘
ByRef
pClipConfig
As IMGCLIPCONFIG ‘
)As Integer
格納先バッファの参照渡し
読み込み元バッファの参照渡し
フレーム番号
IMGCLIPCONFIG 構造体の参照渡し
Declare Function ImgClipData Lib "IfImg.DLL"(
ByVal
pdest( )
As Byte,
‘
ByVal
psrc( )
As Integer,
‘
ByVal
dwFrameNum
As Integer,
‘
ByRef
pClipConfig
As IMGCLIPCONFIG ‘
)As Integer
格納先バッファの参照渡し
読み込み元バッファの参照渡し
フレーム番号
IMGCLIPCONFIG 構造体の参照渡し
Declare Function ImgClipData Lib "IfImg.DLL"(
ByVal
pdest( )
As Short,
‘
ByVal
psrc( )
As Integer,
‘
ByVal
dwFrameNum
As Integer,
‘
ByRef
pClipConfig
As IMGCLIPCONFIG ‘
)As Integer
格納先バッファの参照渡し
読み込み元バッファの参照渡し
フレーム番号
IMGCLIPCONFIG 構造体の参照渡し
© 2003, 2016 Interface Corporation. All rights reserved.
227
GPC-5520 Help for Windows
Declare Function ImgClipData Lib "IfImg.DLL"(
ByVal
pdest( )
As Integer,
‘
ByVal
psrc( )
As Integer,
‘
ByVal
dwFrameNum
As Integer,
‘
ByRef
pClipConfig
As IMGCLIPCONFIG ‘
)As Integer
●Delphi 8
class function ImgClipData (
pdest:
IntPtr;
psrc:
IntPtr;
dwFrameNum:
Cardinal;
var pClipConfig:
IMGCLIPCONFIG
): Integer; static;
格納先バッファの参照渡し
読み込み元バッファの参照渡し
フレーム番号
IMGCLIPCONFIG 構造体の参照渡し
// 格納先バッファのポインタ
// 読み込み元バッファのポインタ
// フレーム番号
// IMGCLIPCONFIG 構造体のポインタ
class function ImgClipData (
var pdest:
Byte;
psrc:
IntPtr;
dwFrameNum:
Cardinal;
var pClipConfig:
IMGCLIPCONFIG
): Integer; static;
// 格納先バッファのポインタ
// 読み込み元バッファのポインタ
// フレーム番号
// IMGCLIPCONFIG 構造体のポインタ
class function ImgClipData (
var pdest:
Word;
psrc:
IntPtr;
dwFrameNum:
Cardinal;
var pClipConfig:
IMGCLIPCONFIG
): Integer; static;
// 格納先バッファのポインタ
// 読み込み元バッファのポインタ
// フレーム番号
// IMGCLIPCONFIG 構造体のポインタ
class function ImgClipData (
var pdest:
Cardinal;
psrc:
IntPtr;
dwFrameNum:
Cardinal;
var pClipConfig:
IMGCLIPCONFIG
): Integer; static;
// 格納先バッファのポインタ
// 読み込み元バッファのポインタ
// フレーム番号
// IMGCLIPCONFIG 構造体のポインタ
class function ImgClipData (
pdest:
array of Byte;
psrc:
IntPtr;
dwFrameNum:
Cardinal;
var pClipConfig:
IMGCLIPCONFIG
): Integer; static;
// 格納先バッファのポインタ
// 読み込み元バッファのポインタ
// フレーム番号
// IMGCLIPCONFIG 構造体のポインタ
© 2003, 2016 Interface Corporation. All rights reserved.
228
GPC-5520 Help for Windows
class function ImgClipData (
pdest:
array of Word;
psrc:
IntPtr;
dwFrameNum:
Cardinal;
var pClipConfig:
IMGCLIPCONFIG
): Integer; static;
// 格納先バッファのポインタ
// 読み込み元バッファのポインタ
// フレーム番号
// IMGCLIPCONFIG 構造体のポインタ
class function ImgClipData (
pdest:
array of Cardinal;
psrc:
IntPtr;
dwFrameNum:
Cardinal;
var pClipConfig:
IMGCLIPCONFIG
): Integer; static;
// 格納先バッファのポインタ
// 読み込み元バッファのポインタ
// フレーム番号
// IMGCLIPCONFIG 構造体のポインタ
class function ImgClipData (
pdest:
IntPtr;
pdest:
array of Byte;
dwFrameNum:
Cardinal;
var pClipConfig:
IMGCLIPCONFIG
): Integer; static;
// 格納先バッファのポインタ
// 読み込み元バッファのポインタ
// フレーム番号
// IMGCLIPCONFIG 構造体のポインタ
class function ImgClipData (
var pdest:
Byte;
pdest:
array of Byte;
dwFrameNum:
Cardinal;
var pClipConfig:
IMGCLIPCONFIG
): Integer; static;
// 格納先バッファのポインタ
// 読み込み元バッファのポインタ
// フレーム番号
// IMGCLIPCONFIG 構造体のポインタ
class function ImgClipData (
var pdest:
Word;
pdest:
array of Byte;
dwFrameNum:
Cardinal;
var pClipConfig:
IMGCLIPCONFIG
): Integer; static;
// 格納先バッファのポインタ
// 読み込み元バッファのポインタ
// フレーム番号
// IMGCLIPCONFIG 構造体のポインタ
class function ImgClipData (
var pdest:
Cardinal;
pdest:
array of Byte;
dwFrameNum:
Cardinal;
var pClipConfig:
IMGCLIPCONFIG
): Integer; static;
// 格納先バッファのポインタ
// 読み込み元バッファのポインタ
// フレーム番号
// IMGCLIPCONFIG 構造体のポインタ
© 2003, 2016 Interface Corporation. All rights reserved.
229
GPC-5520 Help for Windows
class function ImgClipData (
pdest:
array of Byte;
pdest:
array of Byte;
dwFrameNum:
Cardinal;
var pClipConfig:
IMGCLIPCONFIG
): Integer; static;
// 格納先バッファのポインタ
// 読み込み元バッファのポインタ
// フレーム番号
// IMGCLIPCONFIG 構造体のポインタ
class function ImgClipData (
pdest:
array of Word;
pdest:
array of Byte;
dwFrameNum:
Cardinal;
var pClipConfig:
IMGCLIPCONFIG
): Integer; static;
// 格納先バッファのポインタ
// 読み込み元バッファのポインタ
// フレーム番号
// IMGCLIPCONFIG 構造体のポインタ
class function ImgClipData (
pdest:
array of Cardinal;
pdest:
array of Byte;
dwFrameNum:
Cardinal;
var pClipConfig:
IMGCLIPCONFIG
): Integer; static;
// 格納先バッファのポインタ
// 読み込み元バッファのポインタ
// フレーム番号
// IMGCLIPCONFIG 構造体のポインタ
class function ImgClipData (
pdest:
IntPtr;
pdest:
array of Word;
dwFrameNum:
Cardinal;
var pClipConfig:
IMGCLIPCONFIG
): Integer; static;
// 格納先バッファのポインタ
// 読み込み元バッファのポインタ
// フレーム番号
// IMGCLIPCONFIG 構造体のポインタ
class function ImgClipData (
var pdest:
Byte;
pdest:
array of Word;
dwFrameNum:
Cardinal;
var pClipConfig:
IMGCLIPCONFIG
): Integer; static;
// 格納先バッファのポインタ
// 読み込み元バッファのポインタ
// フレーム番号
// IMGCLIPCONFIG 構造体のポインタ
class function ImgClipData (
var pdest:
Word;
pdest:
array of Word;
dwFrameNum:
Cardinal;
var pClipConfig:
IMGCLIPCONFIG
): Integer; static;
// 格納先バッファのポインタ
// 読み込み元バッファのポインタ
// フレーム番号
// IMGCLIPCONFIG 構造体のポインタ
© 2003, 2016 Interface Corporation. All rights reserved.
230
GPC-5520 Help for Windows
class function ImgClipData (
var pdest:
Cardinal;
pdest:
array of Word;
dwFrameNum:
Cardinal;
var pClipConfig:
IMGCLIPCONFIG
): Integer; static;
// 格納先バッファのポインタ
// 読み込み元バッファのポインタ
// フレーム番号
// IMGCLIPCONFIG 構造体のポインタ
class function ImgClipData (
pdest:
array of Byte;
pdest:
array of Word;
dwFrameNum:
Cardinal;
var pClipConfig:
IMGCLIPCONFIG
): Integer; static;
// 格納先バッファのポインタ
// 読み込み元バッファのポインタ
// フレーム番号
// IMGCLIPCONFIG 構造体のポインタ
class function ImgClipData (
pdest:
array of Word;
pdest:
array of Word;
dwFrameNum:
Cardinal;
var pClipConfig:
IMGCLIPCONFIG
): Integer; static;
// 格納先バッファのポインタ
// 読み込み元バッファのポインタ
// フレーム番号
// IMGCLIPCONFIG 構造体のポインタ
class function ImgClipData (
pdest:
array of Cardinal;
pdest:
array of Word;
dwFrameNum:
Cardinal;
var pClipConfig:
IMGCLIPCONFIG
): Integer; static;
// 格納先バッファのポインタ
// 読み込み元バッファのポインタ
// フレーム番号
// IMGCLIPCONFIG 構造体のポインタ
class function ImgClipData (
pdest:
IntPtr;
pdest:
array of Cardinal;
dwFrameNum:
Cardinal;
var pClipConfig:
IMGCLIPCONFIG
// 格納先バッファのポインタ
// 読み込み元バッファのポインタ
// フレーム番号
// IMGCLIPCONFIG 構造体のポイン
タ
): Integer; static;
class function ImgClipData (
var pdest:
Byte;
pdest:
array of Cardinal;
dwFrameNum:
Cardinal;
var pClipConfig:
IMGCLIPCONFIG
// 格納先バッファのポインタ
// 読み込み元バッファのポインタ
// フレーム番号
// IMGCLIPCONFIG 構造体のポイン
タ
): Integer; static;
© 2003, 2016 Interface Corporation. All rights reserved.
231
GPC-5520 Help for Windows
class function ImgClipData (
var pdest:
Word;
pdest:
array of Cardinal;
dwFrameNum:
Cardinal;
var pClipConfig:
IMGCLIPCONFIG
// 格納先バッファのポインタ
// 読み込み元バッファのポインタ
// フレーム番号
// IMGCLIPCONFIG 構造体のポイン
タ
): Integer; static;
class function ImgClipData (
var pdest:
Cardinal;
pdest:
array of Cardinal;
dwFrameNum:
Cardinal;
var pClipConfig:
IMGCLIPCONFIG
// 格納先バッファのポインタ
// 読み込み元バッファのポインタ
// フレーム番号
// IMGCLIPCONFIG 構造体のポイン
タ
): Integer; static;
class function ImgClipData (
pdest:
array of Byte;
pdest:
array of Cardinal;
dwFrameNum:
Cardinal;
var pClipConfig:
IMGCLIPCONFIG
// 格納先バッファのポインタ
// 読み込み元バッファのポインタ
// フレーム番号
// IMGCLIPCONFIG 構造体のポイン
タ
): Integer; static;
class function ImgClipData (
pdest:
array of Word;
pdest:
array of Cardinal;
dwFrameNum:
Cardinal;
var pClipConfig:
IMGCLIPCONFIG
// 格納先バッファのポインタ
// 読み込み元バッファのポインタ
// フレーム番号
// IMGCLIPCONFIG 構造体のポイン
タ
): Integer; static;
class function ImgClipData (
pdest:
array of Cardinal;
pdest:
array of Cardinal;
dwFrameNum:
Cardinal;
var pClipConfig:
IMGCLIPCONFIG
// 格納先バッファのポインタ
// 読み込み元バッファのポインタ
// フレーム番号
// IMGCLIPCONFIG 構造体のポイン
タ
): Integer; static;
【パラメータ】
pdest
格納先のバッファのポインタを指定します。
psrc
読み込み元のバッファのポインタを指定します。
© 2003, 2016 Interface Corporation. All rights reserved.
232
GPC-5520 Help for Windows
dwFrameNum
抜き出すフレーム番号を指定します。
pClipConfig
IMGCLIPCONFIG 構造体で取り出す矩形領域を指定します。変数のポインタを指定します。
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、
『4.5 戻り値一覧』をご参照くださ
い。
【画像拡大機能】
pClipConfig 引数で指定した矩形領域の画像データを、拡大させてコピーする事ができます。
コピー元画像を縦横 2 倍、縦横 4 倍、縦横 8 倍の倍率で拡大します。
拡大方法はコピー元の各画素データを右と下と右下方向に配置させています。
画素 1
画素 2
画素 3
画素 4
2倍
画素 1
画素 1
画素 2
画素 2
画素 1
画素 1
画素 2
画素 2
画素 3
画素 3
画素 4
画素 4
画素 3
画素 3
画素 4
画素 4
したがって pdest 引数へ渡すバッファのサイズは拡大倍率の二乗倍で確保する必要があります。
例)
RGB24bit 画像で 100×100 の矩形領域を 2 倍に拡大させてコピーする場合、
pdest へ渡すバッファのサイズは、縦幅×横幅×ピクセルサイズ×倍率の二乗で
100×100×3×4 = 120000(byte)
となります。
倍率の指定は、IMGCLIPCONFIG 構造体の dwDataFormat 引数に、以下の識別子を OR します。
識別子
値
内容
IFIMG_DIGITALZOOM_2
100000h
縦横 2 倍のサイズで拡大します。
IFIMG_DIGITALZOOM_4
200000h
縦横 4 倍のサイズで拡大します。
IFIMG_DIGITALZOOM_8
300000h
縦横 8 倍のサイズで拡大します。
© 2003, 2016 Interface Corporation. All rights reserved.
233
GPC-5520 Help for Windows
【備考】
psrc で指定するキャプチャデータの解像度が 640×480(PAL 製品の場合は 768×572)の場合、
奇数フィールド、偶数フィールドに分離された状態のデータを指定してください。
本関数は解像度が 640×480(PAL 製品の場合は 768×572)のデータに対しては奇数フィールド
と偶数フィールドを交互に配置した状態のデータを返します。
読み込み元のバッファ
…
格納先のバッファ
奇数ィールドデータ
奇数フィールドデータ
偶数フィールドデータ
偶数フィールドデータ
…
…
© 2003, 2016 Interface Corporation. All rights reserved.
234
の交互
GPC-5520 Help for Windows
【使用例 1】
●C 言語
HANDLE hDeviceHandle;
int nRet;
PBYTE pCaptureData;
PBYTE pClipData
DWORD dwSize;
IMGCLIPCONFIG ClipConf;
hDeviceHandle = ImgOpen(“IFIMGST1”);
:
// 格納用バッファを動的確保。RGB24 を 10 フレーム
dwSize = 921600L * 10;
pCaptureData = (PBYTE)malloc(dwSize);
// 画像情報を設定
BufInfo.pBufferAddress = pCaptureData;
BufInfo.dwBufferSize = dwSize;
nRet=ImgSetBuffer(hDeviceHandle,&BufInfo, IFIMG_COLOR_RGB24);
// キャプチャ処理
:
:
// 切り取り範囲を指定します。
ClipConf.dwDataFormat = IFIMG_SDRAM_RGB24;
ClipConf.dwXCoordinates = 220;
ClipConf.dwYCoordinates = 140;
ClipConf.dwXLength = 100;
ClipConf.dwYLength = 100;
// クリップデータを動的確保
dwSize = 100 * 100 * 3;
pClipData = (PBYTE)malloc(dwSize);
// 5 フレーム目のデータを指定範囲で切り取ります。
nRet = ImgClipData( pCaptureData, pClipData, 5, &ClipConf );
© 2003, 2016 Interface Corporation. All rights reserved.
235
GPC-5520 Help for Windows
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim nRet As Long
Dim CaptureData(9216000) As Byte ‘ RGB24 を 10 フレーム
Dim ClipData (30000) As Byte
‘ RGB24 の 100×100 のデータ
Dim ClipConf As IMGCLIPCONFIG
lpszName = “IFIMGST1”
hDeviceHandle = ImgOpen(lpszName)
nRet = ImgSetBufferVB(hDeviceHandle, CaptureData (0), 9216000, IFIMG_COLOR_RGB24)
‘
:
キャプチャ処理を行います。
:
‘ 切り取り範囲を指定します。
ClipConf.dwDataFormat = IFIMG_SDRAM_RGB24
ClipConf.dwXCoordinates = 220
ClipConf.dwYCoordinates = 140
ClipConf.dwXLength = 100
ClipConf.dwYLength = 100
‘ 5 フレーム目のデータを指定範囲で取り出します。
nRet = ImgClipData( CaptureData, ClipData, 5, ClipConf )
© 2003, 2016 Interface Corporation. All rights reserved.
236
GPC-5520 Help for Windows
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
nRet: Integer;
pCaptureData: Pointer;
pClipData: Pointer;
dwSize: DWORD;
ClipConf: IMGCLIPCONFIG;
BufInfo: IMGBUFFERINFO;
lpszName := 'IFIMGST1';
hDeviceHandle := ImgOpen(lpszName);
// 格納用バッファを動的確保。RGB24 を 10 フレーム
dwSize := 9216000;
pCaptureData := AllocMem(dwSize);
// 画像情報を設定
BufInfo.pBufferAddress := pCaptureData;
BufInfo.dwBufferSize := dwSize;
nRet := ImgSetBuffer(hDeviceHandle, BufInfo, IFIMG_COLOR_RGB24);
//
キャプチャ処理を行います。
:
:
// 切り取り範囲を指定します。
ClipConf.dwDataFormat := IFIMG_SDRAM_RGB24;
ClipConf.dwXCoordinates := 220;
ClipConf.dwYCoordinates := 140;
ClipConf.dwXLength := 100;
ClipConf.dwYLength := 100;
// 格納用バッファを動的確保。100×100 を 3 フレーム
dwSize := 100 * 100 * 3;
pClipData:= AllocMem(dwSize);
// 5 フレーム目のデータを指定範囲で取り出します。
nRet := ImgClipData( pCaptureData, pClipData, 5, ClipConf);
© 2003, 2016 Interface Corporation. All rights reserved.
237
GPC-5520 Help for Windows
●Visual C# .NET
IntPtr hDeviceHandle;
IFCIMG_ANY.IMGBUFFERINFO Buffer;
IntPtr array_p;
int nRet;
byte[] buffer_clip;
hDeviceHandle = IFCIMG_ANY.ImgOpen(“IFIMGST1”);
:
:
array_p = Marshal.AllocCoTaskMem(640*480*3);
Buffer.pBufferAddress = array_p;
Buffer.dwBufferSize = 640*480*3*10;
nRet = IFCIMG_ANY.ImgSetBuffer(hDeviceHandle, ref Buffer,
IFCIMG_ANY.IFIMG_COLOR_RGB24);
// キャプチャ処理を行います。
// 切り取り範囲を指定します。
ClipConf.dwDataFormat = IFCIMG_ANY.IFIMG_SDRAM_RGB24;
ClipConf.dwXCoordinates = 0;
ClipConf.dwYCoordinates = 0;
ClipConf.dwXLength = 640;
ClipConf.dwYLength = 480;
// クリップデータを動的確保
buffer_clip = new byte[640*480*3];
// 5 フレーム目のデータを指定範囲で切り取ります。
nRet = IFCIMG_ANY.ImgClipData( array_p, buffer_clip, 5, out ClipConf );
© 2003, 2016 Interface Corporation. All rights reserved.
238
GPC-5520 Help for Windows
●Visual Basic .NET
Dim lpszName As String
Dim hDeviceHandle As IntPtr
Dim buffersize As Integer
Dim buffer(640*480*3*10) As Byte
Dim buffer_clip(640*480*3) As Byte
lpszName = “IFIMGST1”
hDeviceHandle = IFCIMG_ANY.ImgOpen(lpszName)
:
:
buffersize = 640*480*3*10
nRet = IFCIMG_ANY.ImgSetBufferVB(_
hDeviceHandle, buffer, buffersize, IFCIMG_ANY.IFIMG_COLOR_RGB24)
‘
キャプチャ処理を行います。
‘ 切り取り範囲を指定します。
ClipConf.dwDataFormat = IFCIMG_ANY.IFIMG_SDRAM_RGB24
ClipConf.dwXCoordinates = 0
ClipConf.dwYCoordinates = 0
ClipConf.dwXLength = 640
ClipConf.dwYLength = 480
‘ 5 フレーム目のデータを指定範囲で取り出します。
nRet = IFCIMG_ANY.ImgClipData(buffer, buffer_clip, 5, ClipConf )
© 2003, 2016 Interface Corporation. All rights reserved.
239
GPC-5520 Help for Windows
●Delphi
var
lpszName: String;
hDeviceHandle: Integer;
Buffer: IFCIMG.IMGBUFFERINFO;
nRet: Integer;
pClipData: array of Byte;
ClipConf: IFCIMG.IMGCLIPCONFIG;
lpszName := 'IFIMGST1';
hDeviceHandle := IFCIMG.ImgOpen(lpszName);
:
// 格納用バッファを動的確保。RGB24 を 10 フレーム
Buffer.pBufferAddress := Marshal.AllocHGlobal(640*480*3*10);
Buffer.dwBufferSize := 640*480*3*10;
nRet := IFCIMG.ImgSetBuffer(hDeviceHandle, Buffer, IFCIMG.IFIMG_COLOR_RGB24);
// 切り取り範囲を指定します。
ClipConf.dwDataFormat = IFCIMG.IFIMG_SDRAM_RGB24;
ClipConf.dwXCoordinates := 0;
ClipConf.dwYCoordinates := 0;
ClipConf.dwXLength := 640;
ClipConf.dwYLength := 480;
dwSize := 640*480*3;
Setlength(pClipData, dwSize);
// 5 フレーム目のデータを指定範囲で切り取ります。
nRet := IFCIMG.ImgClipData( Buffer.pBufferAddress, pClipData, 5, ClipConf );
デバイス名「IFIMGST1」のデバイスに対して、キャプチャ 5 フレーム目の画像から 100×100
領域を取り出します。
© 2003, 2016 Interface Corporation. All rights reserved.
240
GPC-5520 Help for Windows
【使用例 2】
●C 言語
HANDLE hDeviceHandle;
int nRet;
HANDLE hSDRAMHandle
PBYTE pCaptureData;
PBYTE pClipData
DWORD dwSize;
IMGCLIPCONFIG ClipConf;
hDeviceHandle = ImgOpen(“IFIMGMEM1”);
:
// SDRAM 内にキャプチャ用領域を確保
nRet = ImgAllocateSDRAM(hDeviceHandle,
IFIMG_SDRAM_RGB24, 0, 0, 50, &hSDRAMHandle);
:
// キャプチャ処理を行います。
:
// 格納用バッファを動的確保。RGB24 を 10 フレーム
dwSize = 921600L * 10;
pCaptureData = (PBYTE)malloc(dwSize);
// SDRAM からデータ取り出し。20 フレーム目から 10 フレーム分。
nRet = ImgReadCaptureData( hDeviceHandle, hSDRAMHandle,
20, 10, pCaptureData, dwSize);
// 切り取り範囲を指定します。
ClipConf.dwDataFormat = IFIMG_SDRAM_RGB24;
ClipConf.dwXCoordinates = 220;
ClipConf.dwYCoordinates = 140;
ClipConf.dwXLength = 100;
ClipConf.dwYLength = 100;
// クリップデータを動的確保
dwSize = 100 * 100 * 3;
pClipData = (PBYTE)malloc(dwSize);
// 5 フレーム目のデータを指定範囲で切り取ります。
nRet = ImgClipData( pCaptureData, pClipData, 5, &ClipConf );
© 2003, 2016 Interface Corporation. All rights reserved.
241
GPC-5520 Help for Windows
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim hSDRAMHandle As Long
Dim nRet As Long
Dim CaptureData(9216000) As Byte ‘ RGB24 を 10 フレーム
Dim ClipData (30000) As Byte
‘ RGB24 の 100×100 のデータ
Dim ClipConf As IMGCLIPCONFIG
lpszName = “IFIMGMEM1”
hDeviceHandle = ImgOpen(lpszName)
:
‘ SDRAM 内にキャプチャ用領域を確保
nRet = ImgAllocateSDRAM(hDeviceHandle,
IFIMG_SDRAM_RGB24, 0, 0, 50, hSDRAMHandle)
:
‘ キャプチャ処理を行います。
:
‘ SDRAM からデータ取り出し。20 フレーム目から 10 フレーム分。
nRet = ImgReadCaptureData( hDeviceHandle, hSDRAMHandle,
20, 10, CaptureData, 9216000)
‘ 切り取り範囲を指定します。
ClipConf.dwDataFormat = IFIMG_SDRAM_RGB24
ClipConf.dwXCoordinates = 220
ClipConf.dwYCoordinates = 140
ClipConf.dwXLength = 100
ClipConf.dwYLength = 100
‘ 5 フレーム目のデータを指定範囲で取り出します。
nRet = ImgClipData( CaptureData, ClipData, 5, ClipConf )
© 2003, 2016 Interface Corporation. All rights reserved.
242
GPC-5520 Help for Windows
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
hSDRAMHandle: THandle;
nRet: Integer;
pCaptureData: Pointer;
pClipData: Pointer;
dwSize: DWORD;
ClipConf: IMGCLIPCONFIG;
lpszName := 'IFIMGMEM1';
hDeviceHandle := ImgOpen(lpszName);
:
// SDRAM 内にキャプチャ用領域を確保
nRet := ImgAllocateSDRAM(hDeviceHandle,
IFIMG_SDRAM_RGB24, 0, 0, 50, hSDRAMHandle);
:
// キャプチャ処理を行います。
:
// 格納用バッファを動的確保。RGB24 を 10 フレーム
dwSize := 9216000;
pCaptureData := AllocMem(dwSize);
// SDRAM からデータ取り出し。20 フレーム目から 10 フレーム分
nRet := ImgReadCaptureData( hDeviceHandle, hSDRAMHandle,
20, 10, pCaptureData, dwSize);
// 切り取り範囲を指定します。
ClipConf.dwDataFormat := IFIMG_SDRAM_RGB24;
ClipConf.dwXCoordinates := 220;
ClipConf.dwYCoordinates := 140;
ClipConf.dwXLength := 100;
ClipConf.dwYLength := 100;
// 格納用バッファを動的確保。100×100 を 3 フレーム
dwSize := 100 * 100 * 3;
pClipData:= AllocMem(dwSize);
// 5 フレーム目のデータを指定範囲で取り出します。
nRet := ImgClipData( pCaptureData, pClipData, 5, ClipConf);
© 2003, 2016 Interface Corporation. All rights reserved.
243
GPC-5520 Help for Windows
●Visual C# .NET
IntPtr hDeviceHandle;
int nRet;
IntPtr hSDRAMHandle
byte[] buffer;
byte[] buffer_clip;
uint dwSize;
IFCIMG_ANY.IMGCLIPCONFIG ClipConf;
hDeviceHandle = IFCIMG_ANY.ImgOpen(“IFIMGMEM1”);
:
:
// キャプチャ処理を行います。
:
//
格納用バッファを動的確保。RGB24 を 10 フレーム
buffer = new byte[640*480*3*10];
dwSize = 640*480*3*10;
// SDRAM からデータ取り出し。20 フレーム目から 10 フレーム分。
nRet = IFCIMG_ANY.ImgReadCaptureData( hDeviceHandle, hSDRAMHandle,
20, 10, buffer, dwSize);
// 切り取り範囲を指定します。
ClipConf.dwDataFormat = IFCIMG_ANY.IFIMG_SDRAM_RGB24;
ClipConf.dwXCoordinates = 220;
ClipConf.dwYCoordinates = 140;
ClipConf.dwXLength = 100;
ClipConf.dwYLength = 100;
// クリップデータを動的確保
buffer_clip = new byte[100*100*3];
// 5 フレーム目のデータを指定範囲で切り取ります。
nRet = IFCIMG_ANY.ImgClipData( buffer, buffer_clip,
© 2003, 2016 Interface Corporation. All rights reserved.
244
5, out ClipConf );
GPC-5520 Help for Windows
●Visual Basic .NET
Dim lpszName As String
Dim hDeviceHandle As IntPtr
Dim hSDRAMHandle As IntPtr
Dim nRet As Integer
Dim CaptureData(9216000) As Byte ‘ RGB24 を 10 フレーム
Dim ClipData (30000) As Byte
‘ RGB24 の 100×100 のデータ
Dim ClipConf As IFCIMG_ANY.IMGCLIPCONFIG
lpszName = “IFIMGMEM1”
hDeviceHandle = IFCIMG_ANY.ImgOpen(lpszName)
:
‘ SDRAM 内にキャプチャ用領域を確保
nRet = IFCIMG_ANY.ImgAllocateSDRAM(hDeviceHandle,
IFCIMG_ANY.IFIMG_SDRAM_RGB24, 0, 0, 50, hSDRAMHandle)
:
‘ キャプチャ処理を行います。
:
‘ SDRAM からデータ取り出し。20 フレーム目から 10 フレーム分。
nRet = IFCIMG_ANY.ImgReadCaptureData( hDeviceHandle, hSDRAMHandle,
20, 10, CaptureData, 9216000)
‘ 切り取り範囲を指定します。
ClipConf.dwDataFormat = IFCIMG_ANY.IFIMG_SDRAM_RGB24
ClipConf.dwXCoordinates = 220
ClipConf.dwYCoordinates = 140
ClipConf.dwXLength = 100
ClipConf.dwYLength = 100
‘ 5 フレーム目のデータを指定範囲で取り出します。
nRet = IFCIMG_ANY.ImgClipData( CaptureData, ClipData, 5, ClipConf )
© 2003, 2016 Interface Corporation. All rights reserved.
245
GPC-5520 Help for Windows
●Delphi
var
lpszName: String;
hDeviceHandle: Integer;
hSDRAMHandle: Integer;
nRet: Integer;
pCaptureData: array of Byte;
pClipData: array of Byte;
dwSize: Cardinal;
ClipConf: IFCIMG.IMGCLIPCONFIG;
lpszName := 'IFIMGMEM1';
hDeviceHandle := IFCIMG.ImgOpen(lpszName);
:
// SDRAM 内にキャプチャ用領域を確保
nRet := IFCIMG.ImgAllocateSDRAM(hDeviceHandle,
IFCIMG.IFIMG_SDRAM_RGB24, 0, 0, 50, hSDRAMHandle);
:
// キャプチャ処理を行います。
:
// 格納用バッファを動的確保。RGB24 を 10 フレーム
dwSize := 9216000;
Setlength(pCaptureData, dwSize);
// SDRAM からデータ取り出し。20 フレーム目から 10 フレーム分
nRet := IFCIMG.ImgReadCaptureData( hDeviceHandle, hSDRAMHandle,
20, 10, pCaptureData, dwSize);
// 切り取り範囲を指定します。
ClipConf.dwDataFormat := IFCIMG.IFIMG_SDRAM_RGB24;
ClipConf.dwXCoordinates := 220;
ClipConf.dwYCoordinates := 140;
ClipConf.dwXLength := 100;
ClipConf.dwYLength := 100;
// 格納用バッファを動的確保。100×100 を 3 フレーム
dwSize := 100 * 100 * 3;
Setlength(pClipData, dwSize);
// 5 フレーム目のデータを指定範囲で取り出します。
nRet := IFCIMG.ImgClipData( pCaptureData, pClipData, 5, ClipConf);
デバイス名「IFIMGMEM1」のデバイスに対して、SDRAM からキャプチャデータを取り出します。
© 2003, 2016 Interface Corporation. All rights reserved.
246
GPC-5520 Help for Windows
31. ImgWriteComparisonData
指定したバッファ領域に対して,比較データを書き込みます。
【書式】
●C 言語
INT ImgWriteComparisonData(
HANDLE
hDeviceHandle,
HANDLE
hSDRAMHandle,
PVOID
pdwWriteData,
DWORD
dwSize
);
//
//
//
//
デバイスハンドル
SDRAM 管理ハンドル
比較データバッファのポインタ
比較データバッファのサイズ
●Visual Basic
Declare Function ImgWriteComparisonData Lib "IfImg.dll"( _
ByVal
hDeviceHandle
As Long, _
‘ デバイスハンドル
ByVal
hSDRAMHandle
As Long, _
‘ SDRAM 管理ハンドル
ByRef
pdwWriteData
As Any, _
‘ 比較データバッファの参照渡し
ByVal
dwSize
As Long _
‘ 比較データバッファのサイズ
)As Long
●Delphi
function ImgWriteComparisonData(
hDeviceHandle:
THandle;
// デバイスハンドル
hSDRAMHandle:
THandle;
// SDRAM 管理ハンドル
pdwWriteData:
Pointer;
// 比較データバッファの参照渡し
dwSise:
DWORD
// 比較データバッファのサイズ
): Integer; stdcall; external 'IfImg.dll';
●Visual C# .NET(x86、x64 共用)
[DllImport("IfImg.dll")]
public static extern int ImgWriteComparisonData(
IntPtr
hDeviceHandle,
// デバイスハンドル
IntPtr
hSDRAMHandle,
// SDRAM 管理ハンドル
byte[]
pdwWriteData,
// 比較データバッファのポインタ
uint
dwSize
// 比較データバッファのサイズ
);
[DllImport("IfImg.dll")]
public static extern int ImgWriteComparisonData(
IntPtr
hDeviceHandle,
// デバイスハンドル
IntPtr
hSDRAMHandle,
// SDRAM 管理ハンドル
ushort[]
pdwWriteData,
// 比較データバッファのポインタ
uint
dwSize
// 比較データバッファのサイズ
);
[DllImport("IfImg.dll")]
public static extern int ImgWriteComparisonData(
© 2003, 2016 Interface Corporation. All rights reserved.
247
GPC-5520 Help for Windows
IntPtr
IntPtr
uint[]
uint
hDeviceHandle,
hSDRAMHandle,
pdwWriteData,
dwSize
//
//
//
//
デバイスハンドル
SDRAM 管理ハンドル
比較データバッファのポインタ
比較データバッファのサイズ
);
© 2003, 2016 Interface Corporation. All rights reserved.
248
GPC-5520 Help for Windows
●Visual C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgWriteComparisonData(
uint
hDeviceHandle,
// デバイスハンドル
uint
hSDRAMHandle,
// SDRAM 管理ハンドル
byte[]
pdwWriteData,
// 比較データバッファのポインタ
uint
dwSize
// 比較データバッファのサイズ
);
[DllImport("IfImg.dll")]
public static extern int ImgWriteComparisonData(
uint
hDeviceHandle,
// デバイスハンドル
uint
hSDRAMHandle,
// SDRAM 管理ハンドル
ushort[]
pdwWriteData,
// 比較データバッファのポインタ
uint
dwSize
// 比較データバッファのサイズ
);
[DllImport("IfImg.dll")]
public static extern int ImgWriteComparisonData(
uint
hDeviceHandle,
// デバイスハンドル
uint
hSDRAMHandle,
// SDRAM 管理ハンドル
uint[]
pdwWriteData,
// 比較データバッファのポインタ
uint
dwSize
// 比較データバッファのサイズ
);
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgWriteComparisonData Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As IntPtr, ‘ デバイスハンドル
ByVal
hSDRAMHandle
As IntPtr, ‘ SDRAM 管理ハンドル
ByRef
pdwWriteData( ) As byte,
‘ 比較データバッファの参照渡し
ByVal
dwSize
As Integer ‘ 比較データバッファのサイズ
)As Integer
Declare Function ImgWriteComparisonData Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As IntPtr, ‘ デバイスハンドル
ByVal
hSDRAMHandle
As IntPtr, ‘ SDRAM 管理ハンドル
ByRef
pdwWriteData( ) As Short,
‘ 比較データバッファの参照渡し
ByVal
dwSize
As Integer ‘ 比較データバッファのサイズ
)As Integer
Declare Function ImgWriteComparisonData Lib
ByVal
hDeviceHandle
As IntPtr, ‘
ByVal
hSDRAMHandle
As IntPtr, ‘
ByRef
pdwWriteData( ) As Integer, ‘
ByVal
dwSize
As Integer ‘
)As Integer
"IfImg.DLL"(
デバイスハンドル
SDRAM 管理ハンドル
比較データバッファの参照渡し
比較データバッファのサイズ
© 2003, 2016 Interface Corporation. All rights reserved.
249
GPC-5520 Help for Windows
●Visual Basic .NET(x86 専用)
Declare Function ImgWriteComparisonData Lib
ByVal
hDeviceHandle
As Integer, ‘
ByVal
hSDRAMHandle
As Integer, ‘
ByRef
pdwWriteData( ) As byte,
‘
ByVal
dwSize
As Integer ‘
)As Integer
"IfImg.DLL"(
デバイスハンドル
SDRAM 管理ハンドル
比較データバッファの参照渡し
比較データバッファのサイズ
Declare Function ImgWriteComparisonData Lib
ByVal
hDeviceHandle
As Integer, ‘
ByVal
hSDRAMHandle
As Integer, ‘
ByRef
pdwWriteData( ) As Short,
‘
ByVal
dwSize
As Integer ‘
)As Integer
"IfImg.DLL"(
デバイスハンドル
SDRAM 管理ハンドル
比較データバッファの参照渡し
比較データバッファのサイズ
Declare Function ImgWriteComparisonData Lib
ByVal
hDeviceHandle
As Integer, ‘
ByVal
hSDRAMHandle
As Integer, ‘
ByRef
pdwWriteData( ) As Integer, ‘
ByVal
dwSize
As Integer ‘
)As Integer
"IfImg.DLL"(
デバイスハンドル
SDRAM 管理ハンドル
比較データバッファの参照渡し
比較データバッファのサイズ
●Delphi 8
class function ImgWriteComparisonData(
hDeviceHandle:
Integer;
//
hSDRAMHandle:
Integer;
//
pdwWriteData:
IntPtr;
//
dwSise:
Cardinal
//
): Integer; static;
デバイスハンドル
SDRAM 管理ハンドル
比較データバッファの参照渡し
比較データバッファのサイズ
class function ImgWriteComparisonData(
hDeviceHandle:
Integer;
//
hSDRAMHandle:
Integer;
//
pdwWriteData:
array of Byte //
dwSise:
Cardinal
//
): Integer; static;
デバイスハンドル
SDRAM 管理ハンドル
比較データバッファの参照渡し
比較データバッファのサイズ
class function ImgWriteComparisonData(
hDeviceHandle: Integer;
//
hSDRAMHandle:
Integer;
//
pdwWriteData:
array of Word; //
dwSise:
Cardinal
//
): Integer; static;
デバイスハンドル
SDRAM 管理ハンドル
比較データバッファの参照渡し
比較データバッファのサイズ
© 2003, 2016 Interface Corporation. All rights reserved.
250
GPC-5520 Help for Windows
class function ImgWriteComparisonData(
hDeviceHandle: Integer;
hSDRAMHandle:
Integer;
pdwWriteData:
array of Cardinal;
dwSise:
Cardinal
): Integer; static;
//
//
//
//
デバイスハンドル
SDRAM 管理ハンドル
比較データバッファの参照渡し
比較データバッファのサイズ
【パラメータ】
hDeviceHandle
ImgOpen関数で取得したデバイスハンドルを指定してください。
hSDRAMHandle
ImgAllocateSDRAM関数で取得したハンドルを指定します。
pdwWriteData
比較データバッファの先頭ポインタ
dwSize
比較データバッファのサイズ
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、
『4.5 戻り値一覧』をご参照くださ
い。
【備考】
本関数で取り扱う比較用画像データは 0x00、0xFF で構成される 8bit の 2 値化されたフォーマ
ットのデータです。
比較用画像データのサイズは ImgAllocateSDRAM 関数で指定した dwXLength、dwYLength の値を
掛け合わせた値となります。
比較用画像データを用意する手段としては、ユーザが直接作成する場合と、本製品を利用して
2 値化モードによるキャプチャで比較用画像データを実際に取り込む方法があります。この場
合、奇数フィールドデータ、偶数フィールドデータを交互に配置替えする必要があります。
© 2003, 2016 Interface Corporation. All rights reserved.
251
GPC-5520 Help for Windows
【使用例】
●C 言語
HANDLE hDeviceHandle;
int nRet;
HANDLE hSDRAMHandle
BYTE CmpData[10000];
hDeviceHandle = ImgOpen(“IFIMGPTN1”);
:
// SDRAM 内に比較用データ領域を確保
nRet = ImgAllocateSDRAM(hDeviceHandle,
IFIMG_SDRAM_CMP8, 100, 100, 1, &hSDRAMHandle);
:
// CmpData 配列に比較データを格納します。
:
// 比較データを SDRAM へ書き込みます。
nRet = ImgWriteComparisonData(hDeviceHandle, hSDRAMHandle, CmpData, 10000);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim hSDRAMHandle As Long
Dim nRet As Long
Dim CmpData (10000) As Byte
lpszName = “IFIMGPTN1”
hDeviceHandle = ImgOpen(lpszName)
:
‘ SDRAM 内に比較用データ領域を確保
nRet = ImgAllocateSDRAM(hDeviceHandle,
IFIMG_SDRAM_CMP8, 100, 100, 1, hSDRAMHandle)
:
‘ CmpData 配列に比較用データを格納します。
:
‘ 比較データを指定の SDRAM 領域へ書き込みます。
nRet = ImgWriteComparisonData(hDeviceHandle, hSDRAMHandle, CmpData, 10000)
© 2003, 2016 Interface Corporation. All rights reserved.
252
GPC-5520 Help for Windows
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
hSDRAMHandle: THandle;
nRet: Integer;
CmpData: array[0..9999] of BYTE
lpszName := 'IFIMGPTN1'
hDeviceHandle := ImgOpen(lpszName);
:
// SDRAM 内に比較用データ領域を確保
nRet := ImgAllocateSDRAM(hDeviceHandle,
IFIMG_SDRAM_CMP8, 100, 100, 1, hSDRAMHandle);
:
// CmpData 配列に比較データを格納します。
:
// 比較データを SDRAM へ書き込みます。
nRet := ImgWriteComparisonData(hDeviceHandle, hSDRAMHandle, CmpData, 10000);
●Visual C# .NET
IntPtr hDeviceHandle;
int nRet;
IntPtr hSDRAMHandle
BYTE CmpData[10000];
hDeviceHandle = IFCIMG_ANY.ImgOpen(“IFIMGPTN1”);
:
// SDRAM 内に比較用データ領域を確保
nRet = IFCIMG_ANY.ImgAllocateSDRAM(hDeviceHandle,
IFCIMG_ANY.IFIMG_SDRAM_CMP8, 100, 100, 1, out hSDRAMHandle);
:
// CmpData 配列に比較データを格納します。
:
// 比較データを SDRAM へ書き込みます。
nRet = IFCIMG_ANY.ImgWriteComparisonData(hDeviceHandle, hSDRAMHandle,
CmpData, 10000);
© 2003, 2016 Interface Corporation. All rights reserved.
253
GPC-5520 Help for Windows
●Visual Basic .NET
Dim lpszName As String
Dim hDeviceHandle As IntPtr
Dim hSDRAMHandle As IntPtr
Dim nRet As Integer
Dim CmpData (10000) As Byte
lpszName = “IFIMGPTN1”
hDeviceHandle = IFCIMG_ANY.ImgOpen(lpszName)
:
‘ SDRAM 内に比較用データ領域を確保
nRet = IFCIMG_ANY.ImgAllocateSDRAM(hDeviceHandle, _
IFCIMG_ANY.IFIMG_SDRAM_CMP8, 100, 100, 1, hSDRAMHandle)
:
‘ CmpData 配列に比較用データを格納します。
:
‘ 比較データを指定の SDRAM 領域へ書き込みます。
nRet = IFCIMG_ANY.ImgWriteComparisonData(hDeviceHandle, hSDRAMHandle, _
CmpData, 10000)
●Delphi 8
var
lpszName: String;
hDeviceHandle: Integer;
hSDRAMHandle: Integer;
nRet: Integer;
CmpData: array[0..9999] of Byte;
lpszName := 'IFIMGPTN1'
hDeviceHandle := IFCIMG.ImgOpen(lpszName);
:
// SDRAM 内に比較用データ領域を確保
nRet := IFCIMG.ImgAllocateSDRAM(hDeviceHandle,
IFCIMG.IFIMG_SDRAM_CMP8, 100, 100, 1, hSDRAMHandle);
:
// CmpData 配列に比較データを格納します。
:
// 比較データを SDRAM へ書き込みます。
nRet := IFCIMG.ImgWriteComparisonData(hDeviceHandle, hSDRAMHandle,
10000);
CmpData,
デバイス名「IFIMGPTN1」のデバイスに対して、SDRAM に 100×100 の比較用画像データ(8bit)
を格納します。
© 2003, 2016 Interface Corporation. All rights reserved.
254
GPC-5520 Help for Windows
32. ImgSetComparisonConfig
パターン一致機能で比較条件を指定します。
※解像度設定が「320×240」または「160×120」の場合、パターン一致機能は使用できません。
【書式】
●C 言語
INT ImgSetComparisonConfig (
HANDLE
hDeviceHandle,
PIMGPTNCONFIG pPatternConfig
);
// デバイスハンドル
// IMGPTNCONFIG 構造体のポインタ
●Visual Basic
Declare Function ImgSetComparisonConfig Lib "IfImg.dll"( _
ByVal
hDeviceHandle
As Long, _
‘ デバイスハンドル
ByRef
pPatternConfig As PIMGPTNCONFIG _ ‘ IMGPTNCONFIG 構造体の
‘ 参照渡し
)As Long
●Delphi
function ImgSetComparisonConfig(
hDeviceHandle:
THandle;
// デバイスハンドル
var pPatternConfig: IMGPTNCONFIG // IMGPTNCONFIG 構造体の参照渡し
): Integer; stdcall; external 'IfImg.dll';
●Visual C# .NET(x86、x64 共用)
[DllImport("IfImg.dll")]
public static extern int ImgSetComparisonConfig (
IntPtr
hDeviceHandle,
// デバイスハンドル
ref IMGPTNCONFIG
pPatternConfig
// IMGPTNCONFIG 構造体のポインタ
);
●Visual C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgSetComparisonConfig (
uint
hDeviceHandle,
// デバイスハンドル
ref IMGPTNCONFIG
pPatternConfig
// IMGPTNCONFIG 構造体のポインタ
);
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgSetComparisonConfig Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As IntPtr,
‘ デバイスハンドル
ByRef
pPatternConfig As IMGPTNCONFIG
‘ IMGPTNCONFIG 構造体の参
照渡し
)As Integer
© 2003, 2016 Interface Corporation. All rights reserved.
255
GPC-5520 Help for Windows
●Visual Basic .NET(x86 専用)
Declare Function ImgSetComparisonConfig Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As Integer,
‘ デバイスハンドル
ByRef
pPatternConfig As IMGPTNCONFIG
‘ IMGPTNCONFIG 構造体の参
照渡し
)As Integer
●Delphi 8
class function ImgSetComparisonConfig(
hDeviceHandle:
Integer;
var pPatternConfig: IMGPTNCONFIG
): Integer; static;
// デバイスハンドル
// IMGPTNCONFIG 構造体の参照渡し
【パラメータ】
hDeviceHandle
ImgOpen関数で取得したデバイスハンドルを指定してください。
pPatternConfig
IMGPTNCONFIG 構造体へのポインタを指定してください。
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、
『4.5 戻り値一覧』をご参照くださ
い。
© 2003, 2016 Interface Corporation. All rights reserved.
256
GPC-5520 Help for Windows
【使用例】
●C 言語
HANDLE hDeviceHandle;
int nRet;
HANDLE hSDRAMHandle
BYTE CmpData[10000];
IMGPTNCONFIG PtnConfig;
IMGBINCONFIG BinConf;
hDeviceHandle = ImgOpen(“IFIMGPTN1”);
:
// SDRAM 内に比較用データ領域を確保
nRet = ImgAllocateSDRAM(hDeviceHandle,
IFIMG_SDRAM_CMP, 100, 100, 1, &hSDRAMHandle);
:
// CmpData 配列に比較データを格納します。
:
// 比較データを SDRAM へ書き込みます。
nRet = ImgWriteComparisonData(hDeviceHandle, hSDRAMHandle, CmpData, 10000);
// 2 値化の設定を行います。
BinConf.dwColorIngredient = IFIMG_INGREDIENT_GRAY;
BinConf.dwMaxthreshold = 255;
BinConf.dwMinthreshold = 128;
BinConf.dwBinarizationMode = IFIMG_BINMODE_NORMAL;
nRet = ImgSetBinarizationConfig(hDeviceHandle, &BinConf);
// 測定範囲を指定します。
nRet = ImgSetMeasurementRange(hDeviceHandle, 220, 140, 100, 100);
// パターン一致条件を設定します。
PtnConfig.dwSDRAMhandle = hSDRAMHandle;
PtnConfig.dwAutoRevision = IFIMG_AUTO_ENABLE;
PtnConfig.dwXCoordinates = 220;
PtnConfig.dwYCoordinates = 140;
PtnConfig.dwPercentage = 80;
PtnConfig.dwTriggerMode = IFIMG_PTNMATCH_NORMAL;
nRet = ImgSetComparisonConfig(hDeviceHandle, &PtnConfig);
// トリガを無効にする場合は、PtnConfig.dwTriggerMode に IFIMG_PTNMATCH_NONE を指定し
// ます。
PtnConfig.dwTriggerMode = IFIMG_PTNMATCH_NONE;
nRet = ImgSetComparisonConfig(hDeviceHandle, &PtnConfig);
© 2003, 2016 Interface Corporation. All rights reserved.
257
GPC-5520 Help for Windows
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim hSDRAMHandle As Long
Dim nRet As Long
Dim CmpData (10000) As Byte
Dim BinConf As IMGBINCONFIG
Dim PtnConfig As IMGPTNCONFIG
lpszName = “IFIMGPTN1”
hDeviceHandle = ImgOpen(lpszName)
:
‘ SDRAM 内に比較用データ領域を確保
nRet = ImgAllocateSDRAM(hDeviceHandle,
IFIMG_SDRAM_CMP, 100, 100, 1, hSDRAMHandle)
:
‘ CmpData 配列に比較用データを格納します。
:
‘ 比較データを指定の SDRAM 領域へ書き込みます。
nRet = ImgWriteComparisonData(hDeviceHandle, hSDRAMHandle, CmpData, 10000)
‘ 2 値化の設定を行います。
BinConf.dwColorIngredient = IFIMG_INGREDIENT_GRAY
BinConf.dwMaxthreshold = 255
BinConf.dwMinthreshold = 128
BinConf.dwBinarizationMode = IFIMG_BINMODE_NORMAL
‘
測定範囲を指定します。
nRet = ImgSetBinarizationConfig (hDeviceHandle, BinConf)
nRet = ImgSetMeasurementRange (hDeviceHandle, 220, 140, 100, 100)
‘ パターン一致条件を設定します。
PtnConfig.dwSDRAMhandle = hSDRAMHandle
PtnConfig.dwAutoRevision = IFIMG_AUTO_ENABLE
PtnConfig.dwXCoordinates = 220
PtnConfig.dwYCoordinates = 140
PtnConfig.dwPercentage = 80
PtnConfig.dwTriggerMode = IFIMG_PTNMATCH_NORMAL
‘ パターン一致検出トリガを有効にします。
nRet = ImgSetComparisonConfig(hDeviceHandle, PtnConfig)
‘ トリガを無効にする場合は、PtnConfig.dwTriggerMode に
‘ IFIMG_PTNMATCH_NONE を指定します。
PtnConfig.dwTriggerMode = IFIMG_PTNMATCH_NONE;
nRet = ImgSetComparisonConfig(hDeviceHandle, PtnConfig)
© 2003, 2016 Interface Corporation. All rights reserved.
258
GPC-5520 Help for Windows
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
hSDRAMHandle: THandle;
nRet: Integer;
CmpData: array[0..9999] of BYTE
lpszName := 'IFIMGPTN1';
hDeviceHandle := ImgOpen(lpszName);
:
// SDRAM 内に比較用データ領域を確保
nRet := ImgAllocateSDRAM(hDeviceHandle,
IFIMG_SDRAM_CMP, 100, 100, 1, hSDRAMHandle);
:
// CmpData 配列に比較データを格納します
:
// 比較データを SDRAM へ書き込みます
nRet := ImgWriteComparisonData(hDeviceHandle, hSDRAMHandle, CmpData, 10000);
// 2 値化の設定を行います。
BinConf.dwColorIngredient := IFIMG_INGREDIENT_GRAY;
BinConf.dwMaxthreshold := 255;
BinConf.dwMinthreshold := 128;
BinConf.dwBinarizationMode := IFIMG_BINMODE_NORMAL;
nRet := ImgSetBinarizationConfig(hDeviceHandle, BinConf);
// 測定範囲を指定します。
nRet := ImgSetMeasurementRange(hDeviceHandle, 220, 140, 100, 100);
// パターン一致条件を設定します。
PtnConfig.dwSDRAMhandle := hSDRAMHandle;
PtnConfig.dwAutoRevision := IFIMG_AUTO_ENABLE;
PtnConfig.dwXCoordinates := 220;
PtnConfig.dwYCoordinates := 140;
PtnConfig.dwPercentage := 80;
PtnConfig.dwTriggerMode := IFIMG_PTNMATCH_NORMAL;
nRet := ImgSetComparisonConfig(hDeviceHandle, PtnConfig);
// トリガを無効にする場合は、PtnConfig.dwTriggerMode に IFIMG_PTNMATCH_NONE を指定し
// ます。
PtnConfig.dwTriggerMode := IFIMG_PTNMATCH_NONE;
nRet := ImgSetComparisonConfig(hDeviceHandle, PtnConfig);
© 2003, 2016 Interface Corporation. All rights reserved.
259
GPC-5520 Help for Windows
●Visual C# .NET
IntPtr hDeviceHandle;
int nRet;
uint hSDRAMHandle
byte CmpData[10000];
IFCIMG_ANY.IMGPTNCONFIG PtnConfig;
IFCIMG_ANY.IMGBINCONFIG BinConf;
hDeviceHandle = IFCIMG.ImgOpen(“IFIMGPTN1”);
:
// SDRAM 内に比較用データ領域を確保
nRet = IFCIMG_ANY.ImgAllocateSDRAM(hDeviceHandle,
IFCIMG_ANY.IFIMG_SDRAM_CMP, 100, 100, 1, out hSDRAMHandle);
:
// CmpData 配列に比較データを格納します。
:
// 比較データを SDRAM へ書き込みます。
nRet = IFCIMG_ANY.ImgWriteComparisonData(hDeviceHandle, hSDRAMHandle,
CmpData, 10000);
// 2 値化の設定を行います。
BinConf.dwColorIngredient = IFCIMG_ANY.IFIMG_INGREDIENT_GRAY;
BinConf.dwMaxthreshold = 255;
BinConf.dwMinthreshold = 128;
BinConf.dwBinarizationMode = IFCIMG_ANY.IFIMG_BINMODE_NORMAL;
nRet = IFCIMG_ANY.ImgSetBinarizationConfig(hDeviceHandle, ref BinConf);
// 測定範囲を指定します。
nRet = IFCIMG_ANY.ImgSetMeasurementRange(hDeviceHandle, 220, 140, 100, 100);
// パターン一致条件を設定します。
PtnConfig.dwSDRAMhandle = hSDRAMHandle;
PtnConfig.dwAutoRevision = IFCIMG_ANY.IFIMG_AUTO_ENABLE;
PtnConfig.dwXCoordinates = 220;
PtnConfig.dwYCoordinates = 140;
PtnConfig.dwPercentage = 80;
PtnConfig.dwTriggerMode = IFCIMG_ANY.IFIMG_PTNMATCH_NORMAL;
nRet = IFCIMG_ANY.ImgSetComparisonConfig(hDeviceHandle, ref PtnConfig);
// トリガを無効にする場合は、PtnConfig.dwTriggerMode に
// IFCIMG_ANY.IFIMG_PTNMATCH_NONE を指定します。
PtnConfig.dwTriggerMode = IFCIMG_ANY.IFIMG_PTNMATCH_NONE;
nRet = IFCIMG_ANY.ImgSetComparisonConfig(hDeviceHandle, ref PtnConfig);
© 2003, 2016 Interface Corporation. All rights reserved.
260
GPC-5520 Help for Windows
●Visual Basic .NET
Dim lpszName As String
Dim hDeviceHandle As IntPtr
Dim hSDRAMHandle As IntPtr
Dim nRet As Integer
Dim CmpData (10000) As Byte
Dim BinConf As IFCIMG_ANY.IMGBINCONFIG
Dim PtnConfig As IFCIMG_ANY.IMGPTNCONFIG
lpszName = “IFIMGPTN1”
hDeviceHandle = IFCIMG.ImgOpen(lpszName)
:
‘ SDRAM 内に比較用データ領域を確保
nRet = IFCIMG_ANY.ImgAllocateSDRAM(hDeviceHandle,
IFCIMG_ANY.IFIMG_SDRAM_CMP, 100, 100, 1, hSDRAMHandle)
:
‘ CmpData 配列に比較用データを格納します。
:
‘ 比較データを指定の SDRAM 領域へ書き込みます。
nRet = IFCIMG_ANY.ImgWriteComparisonData(hDeviceHandle, hSDRAMHandle, CmpData,
10000)
‘ 2 値化の設定を行います。
BinConf.dwColorIngredient = IFCIMG_ANY.IFIMG_INGREDIENT_GRAY
BinConf.dwMaxthreshold = 255
BinConf.dwMinthreshold = 128
BinConf.dwBinarizationMode = IFCIMG_ANY.IFIMG_BINMODE_NORMAL
‘
測定範囲を指定します。
nRet = IFCIMG_ANY.ImgSetBinarizationConfig (hDeviceHandle, BinConf)
nRet = IFCIMG_ANY.ImgSetMeasurementRange (hDeviceHandle, 220, 140, 100, 100)
‘ パターン一致条件を設定します。
PtnConfig.dwSDRAMhandle = hSDRAMHandle
PtnConfig.dwAutoRevision = IFCIMG_ANY.IFIMG_AUTO_ENABLE
PtnConfig.dwXCoordinates = 220
PtnConfig.dwYCoordinates = 140
PtnConfig.dwPercentage = 80
PtnConfig.dwTriggerMode = IFCIMG_ANY.IFIMG_PTNMATCH_NORMAL
‘ パターン一致検出トリガを有効にします。
nRet = IFCIMG_ANY.ImgSetComparisonConfig(hDeviceHandle, PtnConfig)
‘ トリガを無効にする場合は、PtnConfig.dwTriggerMode に
‘ IFCIMG_ANY.IFIMG_PTNMATCH_NONE を指定します。
PtnConfig.dwTriggerMode = IFCIMG_ANY.IFIMG_PTNMATCH_NONE;
nRet = IFCIMG_ANY.ImgSetComparisonConfig(hDeviceHandle, PtnConfig)
© 2003, 2016 Interface Corporation. All rights reserved.
261
GPC-5520 Help for Windows
●Delphi 8
var
lpszName: String;
hDeviceHandle: Integer;
hSDRAMHandle: Integer;
nRet: Integer;
CmpData: array[0..9999] of Byte;
BinConf: IFCIMG.IMGBINCONFIG;
PtnConfig: IFCIMG.IMGPTNCONFIG;
lpszName := 'IFIMGPTN1';
hDeviceHandle := IFCIMG.ImgOpen(lpszName);
:
// SDRAM 内に比較用データ領域を確保
nRet := IFCIMG.ImgAllocateSDRAM(hDeviceHandle,
IFCIMG.IFIMG_SDRAM_CMP, 100, 100, 1, hSDRAMHandle);
:
// CmpData 配列に比較データを格納します
:
// 比較データを SDRAM へ書き込みます
nRet := IFCIMG.ImgWriteComparisonData(hDeviceHandle, hSDRAMHandle,
10000);
CmpData,
// 2値化の設定を行います。
BinConf.dwColorIngredient := IFCIMG.IFIMG_INGREDIENT_GRAY;
BinConf.dwMaxthreshold := 255;
BinConf.dwMinthreshold := 128;
BinConf.dwBinarizationMode := IFCIMG.IFIMG_BINMODE_NORMAL;
nRet := IFCIMG.ImgSetBinarizationConfig(hDeviceHandle, &BinConf);
// 測定範囲を指定します。
nRet := IFCIMG.ImgSetMeasurementRange(hDeviceHandle, 220, 140, 100, 100);
// パターン一致条件を設定します。
PtnConfig.dwSDRAMhandle := hSDRAMHandle;
PtnConfig.dwAutoRevision := IFCIMG.IFIMG_AUTO_ENABLE;
PtnConfig.dwXCoordinates := 220;
PtnConfig.dwYCoordinates := 140;
PtnConfig.dwPercentage := 80;
PtnConfig.dwTriggerMode := IFCIMG.IFIMG_PTNMATCH_NORMAL;
nRet := IFCIMG.ImgSetComparisonConfig(hDeviceHandle, PtnConfig);
// トリガを無効にする場合は、PtnConfig.dwTriggerMode に IFIMG_PTNMATCH_NONE
// を指定します。
PtnConfig.dwTriggerMode := IFCIMG.IFIMG_PTNMATCH_NONE;
nRet := IFCIMG.ImgSetComparisonConfig(hDeviceHandle, PtnConfig);
© 2003, 2016 Interface Corporation. All rights reserved.
262
GPC-5520 Help for Windows
デバイス名「IFIMGPTN1」のデバイスに対して、SDRAM に 100×100 の比較データ(8bit)を格納
します。
© 2003, 2016 Interface Corporation. All rights reserved.
263
GPC-5520 Help for Windows
33. ImgGetMatchingLevel
パターン一致における一致率を取得します。
※解像度設定が「320×240」または「160×120」の場合、パターン一致機能は使用できません。
【書式】
●C 言語
INT ImgGetMatchingLevel(
HANDLE
hDeviceHandle,
PDWORD
pdwPercentage,
PDWORD
pdwFrameCnt
);
//
//
//
デバイスハンドル
一致率格納用バッファのポインタ
フレーム番号格納用バッファポインタ
●Visual Basic
Declare Function ImgGetMatchingLevel Lib
ByVal
hDeviceHandle As Long, _ ‘
ByRef
pdwPercentage As Long, _ ‘
ByRef
pdwFrameCnt
As Long _ ‘
‘
)As Long
"IfImg.dll"( _
デバイスハンドル
一致率格納用バッファの参照渡し
フレーム番号格納用バッファの
参照渡し
●Delphi
function ImgGetMatchingLevel (
hDeviceHandle:
THandle; // デバイスハンドル
var pdwPercentage: DWORD;
// 一致率格納用バッファのポインタ
var pdwFrameCnt:
DWORD
// フレーム番号格納用バッファポインタ
): Integer; stdcall; external 'IfImg.dll';
●Visual C# .NET(x86、x64 共用)
[DllImport("IfImg.dll")]
public static extern int ImgGetMatchingLevel(
IntPtr
hDeviceHandle,
// デバイスハンドル
ref uint
pdwPercentage,
// 一致率格納用バッファのポインタ
ref uint
pdwFrameCnt
// フレーム番号格納用バッファポインタ
);
●Visual C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgGetMatchingLevel(
uint
hDeviceHandle,
// デバイスハンドル
ref uint
pdwPercentage,
// 一致率格納用バッファのポインタ
ref uint
pdwFrameCnt
// フレーム番号格納用バッファポインタ
);
© 2003, 2016 Interface Corporation. All rights reserved.
264
GPC-5520 Help for Windows
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgGetMatchingLevel Lib
ByVal
hDeviceHandle
As IntPtr,
ByRef
pdwPercentage
As Integer,
ByRef
pdwFrameCnt
As Integer
"IfImg.DLL"(
‘ デバイスハンドル
‘ 一致率格納用バッファの参照渡し
‘ フレーム番号格納用バッファの参
照渡し
)As Integer
●Visual Basic .NET(x86 専用)
Declare Function ImgGetMatchingLevel Lib
ByVal
hDeviceHandle
As Integer,
ByRef
pdwPercentage
As Integer,
ByRef
pdwFrameCnt
As Integer
"IfImg.DLL"(
‘ デバイスハンドル
‘ 一致率格納用バッファの参照渡し
‘ フレーム番号格納用バッファの参
照渡し
)As Integer
●Delphi 8
class function ImgGetMatchingLevel
hDeviceHandle:
Integer;
var pdwPercentage: Cardinal;
var pdwFrameCnt:
Cardinal
): Integer; static;
(
//
//
//
デバイスハンドル
一致率格納用バッファのポインタ
フレーム番号格納用バッファポインタ
【パラメータ】
hDeviceHandle
ImgOpen関数で取得したデバイスハンドルを指定してください。
pdwPercentage
比較一致率格納用のバッファの先頭ポインタです。
pdwFrameCnt
比較したフレーム番号を格納するバッファの先頭ポインタです。(バスマスタ対応)
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、
『4.5 戻り値一覧』をご参照くださ
い。
© 2003, 2016 Interface Corporation. All rights reserved.
265
GPC-5520 Help for Windows
【使用例】
●C 言語
HANDLE hDeviceHandle;
int nRet;
HANDLE hSDRAMHandle
BYTE CmpData[10000];
IMGPTNCONFIG PtnConfig;
IMGBINCONFIG BinConf;
DWORD dwPerCentage;
DWORD dwFrameCnt;
hDeviceHandle = ImgOpen(“IFIMGPTN1”);
:
// SDRAM 内に比較用データ領域を確保
nRet = ImgAllocateSDRAM(hDeviceHandle,
IFIMG_SDRAM_CMP, 100, 100, 1, &hSDRAMHandle);
:
// CmpData 配列に比較データを格納します。
:
// 比較データを SDRAM へ書き込みます。
nRet = ImgWriteComparisonData(hDeviceHandle, hSDRAMHandle, CmpData, 10000);
// 2 値化の設定を行います。
BinConf.dwColorIngredient = IFIMG_INGREDIENT_GRAY;
BinConf.dwMaxthreshold = 255;
BinConf.dwMinthreshold = 128;
BinConf.dwBinarizationMode = IFIMG_BINMODE_NORMAL;
nRet = ImgSetBinarizationConfig(hDeviceHandle, &BinConf);
// 測定範囲を指定します。
nRet = ImgSetMeasurementRange(hDeviceHandle, 220, 140, 100, 100);
// パターン一致条件を設定します。
PtnConfig.dwSDRAMhandle = hSDRAMHandle;
PtnConfig.dwAutoRevision = IFIMG_AUTO_ENABLE;
PtnConfig.dwXCoordinates = 220;
PtnConfig.dwYCoordinates = 140;
PtnConfig.dwPercentage = 80;
PtnConfig.dwTriggerMode = IFIMG_PTNMATCH_NORMAL;
nRet = ImgSetComparisonConfig(hDeviceHandle, &PtnConfig);
//
キャプチャ開始
:
// 一致率を取得します。
nRet = ImgGetMatchingLevel(hDeviceHandle, &dwPerCentage, &dwFrameCnt);
© 2003, 2016 Interface Corporation. All rights reserved.
266
GPC-5520 Help for Windows
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim hSDRAMHandle As Long
Dim nRet As Long
Dim CmpData (10000) As Byte
Dim BinConf As IMGBINCONFIG
Dim PtnConfig As IMGPTNCONFIG
Dim dwPerCentage As Long
Dim dwFrameCnt As Long
lpszName = “IFIMGPTN1”
hDeviceHandle = ImgOpen(lpszName)
:
‘ SDRAM 内に比較用データ領域を確保
nRet = ImgAllocateSDRAM(hDeviceHandle,
IFIMG_SDRAM_CMP, 100, 100, 1, hSDRAMHandle)
:
‘ CmpData 配列に比較用データを格納します。
:
‘ 比較データを指定の SDRAM 領域へ書き込みます。
nRet = ImgWriteComparisonData(hDeviceHandle, hSDRAMHandle, CmpData, 10000)
‘ 2 値化の設定を行います。
BinConf.dwColorIngredient = IFIMG_INGREDIENT_GRAY
BinConf.dwMaxthreshold = 255
BinConf.dwMinthreshold = 128
BinConf.dwBinarizationMode = IFIMG_BINMODE_NORMAL
nRet = ImgSetBinarizationConfig (hDeviceHandle, BinConf)
nRet = ImgSetMeasurementRange (hDeviceHandle, 220, 140, 100, 100)
‘ パターン一致条件を設定します。
PtnConfig.dwSDRAMhandle = hSDRAMHandle
PtnConfig.dwAutoRevision = IFIMG_AUTO_ENABLE
PtnConfig.dwXCoordinates = 220
PtnConfig.dwYCoordinates = 140
PtnConfig.dwPercentage = 80
PtnConfig.dwTriggerMode = IFIMG_PTNMATCH_NORMAL
nRet = ImgSetComparisonConfig(hDeviceHandle, PtnConfig)
‘
キャプチャ開始
:
‘ 一致率を取得します。
nRet = ImgGetMatchingLevel(hDeviceHandle, dwPerCentage, dwFrameCnt)
© 2003, 2016 Interface Corporation. All rights reserved.
267
GPC-5520 Help for Windows
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
hSDRAMHandle: THandle;
nRet: Integer;
CmpData: array[0..9999] of BYTE
dwPerCentage; DWORD:
dwFrameCnt; DWORD;
lpszName := 'IFIMGPTN1';
hDeviceHandle := ImgOpen(lpszName);
:
// SDRAM 内に比較用データ領域を確保
nRet := ImgAllocateSDRAM(hDeviceHandle,
IFIMG_SDRAM_CMP, 100, 100, 1, hSDRAMHandle);
:
// CmpData 配列に比較データを格納します
:
// 比較データを SDRAM へ書き込みます
nRet := ImgWriteComparisonData(hDeviceHandle, hSDRAMHandle, CmpData, 10000);
// 2 値化の設定を行います。
BinConf.dwColorIngredient := IFIMG_INGREDIENT_GRAY;
BinConf.dwMaxthreshold := 255;
BinConf.dwMinthreshold := 128;
BinConf.dwBinarizationMode := IFIMG_BINMODE_NORMAL;
nRet := ImgSetBinarizationConfig(hDeviceHandle, &BinConf);
// 測定範囲を指定します。
nRet := ImgSetMeasurementRange(hDeviceHandle, 220, 140, 100, 100);
// パターン一致条件を設定します。
PtnConfig.dwSDRAMhandle := hSDRAMHandle;
PtnConfig.dwAutoRevision := IFIMG_AUTO_ENABLE;
PtnConfig.dwXCoordinates := 220;
PtnConfig.dwYCoordinates := 140;
PtnConfig.dwPercentage := 80;
PtnConfig.dwTriggerMode := IFIMG_PTNMATCH_NORMAL;
nRet := ImgSetComparisonConfig(hDeviceHandle, PtnConfig);
//
キャプチャ開始
:
// 一致率を取得します。
nRet := ImgGetMatchingLevel(hDeviceHandle, dwPerCentage, dwFrameCnt);
© 2003, 2016 Interface Corporation. All rights reserved.
268
GPC-5520 Help for Windows
●Visual C# .NET
IntPtr hDeviceHandle;
int nRet;
IntPtr hSDRAMHandle
byte CmpData[10000];
IFCIMG_ANY.IMGPTNCONFIG PtnConfig;
IFCIMG_ANY.IMGBINCONFIG BinConf;
uint dwPerCentage;
uint dwFrameCnt;
hDeviceHandle = IFCIMG_ANY.ImgOpen(“IFIMGPTN1”);
:
// SDRAM 内に比較用データ領域を確保
nRet = IFCIMG_ANY.ImgAllocateSDRAM(hDeviceHandle,
IFCIMG_ANY.IFIMG_SDRAM_CMP, 100, 100, 1, out hSDRAMHandle);
:
// CmpData 配列に比較データを格納します。
:
// 比較データを SDRAM へ書き込みます。
nRet = IFCIMG_ANY.ImgWriteComparisonData(hDeviceHandle, hSDRAMHandle, CmpData,
10000);
// 2 値化の設定を行います。
BinConf.dwColorIngredient = IFCIMG_ANY.IFIMG_INGREDIENT_GRAY;
BinConf.dwMaxthreshold = 255;
BinConf.dwMinthreshold = 128;
BinConf.dwBinarizationMode = IFCIMG_ANY.IFIMG_BINMODE_NORMAL;
nRet = IFCIMG_ANY.ImgSetBinarizationConfig(hDeviceHandle, ref BinConf);
// 測定範囲を指定します。
nRet = IFCIMG_ANY.ImgSetMeasurementRange(hDeviceHandle, 220, 140, 100, 100);
// パターン一致条件を設定します。
PtnConfig.dwSDRAMhandle = hSDRAMHandle;
PtnConfig.dwAutoRevision = IFCIMG_ANY.IFIMG_AUTO_ENABLE;
PtnConfig.dwXCoordinates = 220;
PtnConfig.dwYCoordinates = 140;
PtnConfig.dwPercentage = 80;
PtnConfig.dwTriggerMode = IFCIMG_ANY.IFIMG_PTNMATCH_NORMAL;
nRet = IFCIMG_ANY.ImgSetComparisonConfig(hDeviceHandle, ref PtnConfig);
//
キャプチャ開始
:
// 一致率を取得します。
nRet = IFCIMG_ANY.ImgGetMatchingLevel(hDeviceHandle, out dwPerCentage,
out dwFrameCnt);
© 2003, 2016 Interface Corporation. All rights reserved.
269
GPC-5520 Help for Windows
●Visual Basic .NET
Dim lpszName As String
Dim hDeviceHandle As IntPtr
Dim hSDRAMHandle As IntPtr
Dim nRet As Integer
Dim CmpData (10000) As Byte
Dim BinConf As IFCIMG_ANY.IMGBINCONFIG
Dim PtnConfig As IFCIMG_ANY.IMGPTNCONFIG
Dim dwPerCentage As Integer
Dim dwFrameCnt As Integer
lpszName = “IFIMGPTN1”
hDeviceHandle = IFCIMG_ANY.ImgOpen(lpszName)
:
‘ SDRAM 内に比較用データ領域を確保
nRet = IFCIMG_ANY.ImgAllocateSDRAM(hDeviceHandle,
IFCIMG_ANY.IFIMG_SDRAM_CMP, 100, 100, 1, hSDRAMHandle)
:
‘ CmpData 配列に比較用データを格納します。
:
‘ 比較データを指定の SDRAM 領域へ書き込みます。
nRet = IFCIMG_ANY.ImgWriteComparisonData(hDeviceHandle, hSDRAMHandle, CmpData,
10000)
‘ 2 値化の設定を行います。
BinConf.dwColorIngredient = IFCIMG_ANY.IFIMG_INGREDIENT_GRAY
BinConf.dwMaxthreshold = 255
BinConf.dwMinthreshold = 128
BinConf.dwBinarizationMode = IFCIMG_ANY.IFIMG_BINMODE_NORMAL
nRet = IFCIMG_ANY.ImgSetBinarizationConfig(hDeviceHandle, BinConf)
nRet = IFCIMG_ANY.ImgSetMeasurementRange(hDeviceHandle, 220, 140, 100, 100)
‘ パターン一致条件を設定します。
PtnConfig.dwSDRAMhandle = hSDRAMHandle
PtnConfig.dwAutoRevision = IFCIMG_ANY.IFIMG_AUTO_ENABLE
PtnConfig.dwXCoordinates = 220
PtnConfig.dwYCoordinates = 140
PtnConfig.dwPercentage = 80
PtnConfig.dwTriggerMode = IFCIMG_ANY.IFIMG_PTNMATCH_NORMAL
nRet = IFCIMG_ANY.ImgSetComparisonConfig(hDeviceHandle, PtnConfig)
‘
キャプチャ開始
:
‘ 一致率を取得します。
nRet = IFCIMG_ANY.ImgGetMatchingLevel(hDeviceHandle, dwPerCentage, dwFrameCnt)
© 2003, 2016 Interface Corporation. All rights reserved.
270
GPC-5520 Help for Windows
●Delphi 8
var
lpszName: String;
hDeviceHandle: Integer;
hSDRAMHandle: Integer;
nRet: Integer;
CmpData: array[0..9999] of Byte;
BinConf: IFCIMG.IMGBINCONFIG;
PtnConfig: IFCIMG.IMGPTNCONFIG;
lpszName := 'IFIMGPTN1';
hDeviceHandle := IFCIMG.ImgOpen(lpszName);
:
// SDRAM 内に比較用データ領域を確保
nRet := IFCIMG.ImgAllocateSDRAM(hDeviceHandle,
IFCIMG.IFIMG_SDRAM_CMP, 100, 100, 1, hSDRAMHandle);
:
// CmpData 配列に比較データを格納します
:
// 比較データを SDRAM へ書き込みます
nRet := IFCIMG.ImgWriteComparisonData(hDeviceHandle, hSDRAMHandle,
10000);
CmpData,
// 2 値化の設定を行います。
BinConf.dwColorIngredient := IFCIMG.IFIMG_INGREDIENT_GRAY;
BinConf.dwMaxthreshold := 255;
BinConf.dwMinthreshold := 128;
BinConf.dwBinarizationMode := IFCIMG.IFIMG_BINMODE_NORMAL;
nRet := IFCIMG.ImgSetBinarizationConfig(hDeviceHandle, BinConf);
// 測定範囲を指定します。
nRet := IFCIMG.ImgSetMeasurementRange(hDeviceHandle, 220, 140, 100, 100);
// パターン一致条件を設定します。
PtnConfig.dwSDRAMhandle := hSDRAMHandle;
PtnConfig.dwAutoRevision := IFCIMG.IFIMG_AUTO_ENABLE;
PtnConfig.dwXCoordinates := 220;
PtnConfig.dwYCoordinates := 140;
PtnConfig.dwPercentage := 80;
PtnConfig.dwTriggerMode := IFCIMG.IFIMG_PTNMATCH_NORMAL;
nRet := IFCIMG.ImgSetComparisonConfig(hDeviceHandle, PtnConfig);
// トリガを無効にする場合は、PtnConfig.dwTriggerMode に IFIMG_PTNMATCH_NONE を指定し
// ます。
PtnConfig.dwTriggerMode := IFCIMG.IFIMG_PTNMATCH_NONE;
nRet := IFCIMG.ImgSetComparisonConfig(hDeviceHandle, PtnConfig);
デバイス名「IFIMGPTN1」のデバイスに対して、一致率を取得します。
© 2003, 2016 Interface Corporation. All rights reserved.
271
GPC-5520 Help for Windows
34. ImgSetColorIngredient
画像処理するカメラ画像の色成分を指定します。
対象画像処理は濃度分布、3×3 空間エッジ検出フィルタ、3×3 差分型エッジ検出フィルタ。
【書式】
●C 言語
INT ImgSetColorIngredient (
HANDLE
hDeviceHandle,
DWORD
dwIngredient
);
//
//
ファイルパス
色成分
●Visual Basic
Declare Function ImgSetColorIngredient Lib "IfImg.dll"( _
ByVal
hDeviceHandle
As Long, _
‘ デバイスハンドル
ByVal
dwIngredient
As Long _
‘ 色成分
)As Long
●Delphi
function ImgSetColorIngredient (
hDeviceHandle:
THandle;
dwIngredient:
DWORD
): Integer; stdcall; external 'IfImg.dll';
//
//
デバイスハンドル
色成分
●Visual C# .NET(x86、x64 共用)
[DllImport("IfImg.dll")]
public static extern int ImgSetColorIngredient (
IntPtr
hDeviceHandle,
// ファイルパス
uint
dwIngredient
// 色成分
);
●Visual C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgSetColorIngredient (
uint
hDeviceHandle,
// ファイルパス
uint
dwIngredient
// 色成分
);
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgSetColorIngredient Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As IntPtr,
‘ デバイスハンドル
ByVal
dwIngredient
As Integer
‘ 色成分
)As Integer
© 2003, 2016 Interface Corporation. All rights reserved.
272
GPC-5520 Help for Windows
●Visual Basic .NET(x86 専用)
Declare Function ImgSetColorIngredient Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As Integer, ‘ デバイスハンドル
ByVal
dwIngredient
As Integer
‘ 色成分
)As Integer
●Delphi 8
class function ImgSetColorIngredient (
hDeviceHandle:
Integer;
dwIngredient:
Cardinal
): Integer; static;
//
//
デバイスハンドル
色成分
【パラメータ】
hDeviceHandle
ImgOpen関数で取得したデバイスハンドルを指定してください。
dwIngredient
色成分を指定します。
識別子
IFIMG_INGREDIENT_RED
IFIMG_INGREDIENT_GREEN
IFIMG_INGREDIENT_BLUE
IFIMG_INGREDIENT_GRAY
値
00000001h
00000002h
00000003h
00000004h
意味
赤成分
緑成分
青成分
グレイスケール(輝度成分)
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、
『4.5 戻り値一覧』をご参照くださ
い。
【備考】
2 値化設定を同時に行なう場合は、ImgSetBinarizationConfig 関数で指定する 2 値化対象色成
分と同じ色成分にしてください。
IMGBINCONFIG 構造体のメンバ引数 dwColorIngredient の色指定情報と同じ設定値にしてくだ
さい。
【使用例】
●C 言語
HANDLE hDeviceHandle;
int nRet;
hDeviceHandle = ImgOpen(“IFIMGMSR1”);
:
:
nRet = ImgSetColorIngredient(hDeviceHandle, IFIMG_INGREDIENT_RED);
© 2003, 2016 Interface Corporation. All rights reserved.
273
GPC-5520 Help for Windows
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim nRet As Long
lpszName = “IFIMGMSR1”
hDeviceHandle = ImgOpen(lpszName)
:
:
nRet = ImgSetColorIngredient(hDeviceHandle, IFIMG_INGREDIENT_RED)
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
nRet: Integer;
lpszName := 'IFIMGMSR1';
hDeviceHandle := ImgOpen(lpszName);
:
:
nRet = ImgSetColorIngredient(hDeviceHandle, IFIMG_INGREDIENT_RED);
●Visual C# .NET
IntPtr hDeviceHandle;
int nRet;
hDeviceHandle = IFCIMG_ANY.ImgOpen(“IFIMGMSR1”);
:
:
nRet = IFCIMG_ANY.ImgSetColorIngredient(hDeviceHandle,
IFCIMG_ANY.IFIMG_INGREDIENT_RED);
●Visual Basic .NET
Dim lpszName As String
Dim hDeviceHandle As IntPtr
Dim nRet As Integer
lpszName = “IFIMGMSR1”
hDeviceHandle = IFCIMG_ANY.ImgOpen(lpszName)
:
:
nRet = IFCIMG_ANY.ImgSetColorIngredient(hDeviceHandle,_
IFCIMG_ANY.IFIMG_INGREDIENT_RED)
© 2003, 2016 Interface Corporation. All rights reserved.
274
GPC-5520 Help for Windows
●Delphi 8
var
lpszName: String;
hDeviceHandle: Integer;
nRet: Integer;
lpszName := 'IFIMGMSR1';
hDeviceHandle := IFCIMG.ImgOpen(lpszName);
:
:
nRet = IFCIMG.ImgSetColorIngredient(hDeviceHandle, IFCIMG.IFIMG_INGREDIENT_RED);
デバイス名「IFIMGMSR1」のデバイスに対して、画像処理を行なう成分を赤色成分に指定しま
す。
© 2003, 2016 Interface Corporation. All rights reserved.
275
GPC-5520 Help for Windows
35. ImgGetMeasurementValueEx
面積値、重心座標、フェレ径、慣性主軸の角度を取得します。
キャプチャ中に呼び出した場合、フレーム番号も取得します。
※解像度の設定が「320×240」または「160×120」の場合、本関数は実行できません。
【書式】
●C 言語
INT ImgGetMeasurementValueEx(
HANDLE
hDeviceHandle,
PIMGMEASURE pImgMeaSure,
PDWORD
pFrameNum
);
// デバイスハンドル
// IMGMEASURE 構造体
// フレーム番号
●Visual Basic
Declare Function ImgGetMeasurementValueEx Lib "IfImg.dll"( _
ByVal
hDeviceHandle,
As Long, _
‘ デバイスハンドル
RyRef
pImgMeaSure,
As PIMGMEASURE, _ ‘ IMGMEASURE 構造体
ByRef
pFrameNum
As Long _
‘ フレーム番号
)As Long
●Delphi
function ImgGetMeasurementValueEx (
hDeviceHandle:
THandle;
var pImgMeasure: PIMGMEASURE;
var pFrameNum
DWORD
): Integer; stdcall; external 'IfImg.dll';
// デバイスハンドル
// IMGMEASURE 構造体
// フレーム番号
●Visual C# .NET(x86、x64 共用)
[DllImport("IfImg.dll")]
public static extern int ImgGetMeasurementValueEx(
IntPtr
hDeviceHandle,
// デバイスハンドル
out IMGMEASUE
pImgMeasure,
// IMGMEASUE 構造体
out uint
pFrameNum
// フレーム番号
);
●Visual C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgGetMeasurementValueEx(
uint
hDeviceHandle,
// デバイスハンドル
out IMGMEASUE
pImgMeasure,
// IMGMEASUE 構造体
out uint
pFrameNum
// フレーム番号
);
© 2003, 2016 Interface Corporation. All rights reserved.
276
GPC-5520 Help for Windows
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgGetMeasurementValueEx Lib "IfImg.DLL"(
ByVal
hDeviceHandle,
As IntPtr,
‘ デバイスハンドル
RyRef
pImgMeasure,
As PIMGMEASUE, ‘ IMGMEASUE 構造体
ByRef
pFrameNum
As Integer
‘ フレーム番号
)As Long
●Visual Basic .NET(x86 専用)
Declare Function ImgGetMeasurementValueEx Lib "IfImg.DLL"(
ByVal
hDeviceHandle,
As Integer,
‘ デバイスハンドル
RyRef
pImgMeasure,
As PIMGMEASUE, ‘ IMGMEASUE 構造体
ByRef
pFrameNum
As Integer
‘ フレーム番号
)As Long
●Delphi 8
class function ImgGetMeasurementValueEx (
hDeviceHandle:
Integer;
var pImgMeasure: PIMGMEASURE;
var pFrameNum
Cardinal
): Integer; static;
// デバイスハンドル
// IMGMEASURE 構造体
// フレーム番号
【パラメータ】
hDeviceHandle
ImgOpen関数で取得したデバイスハンドルを指定してください。
pImgMeasure
IMGMEASURE 構造体へのポインタを指定してください。
構造体の説明については、『4.4 構造体』をご参照ください。
pFrameNum
フレーム番号を格納するバッファポインタを指定してください。
キャプチャ未実行の状態で本関数を呼び出した場合は、0 が格納されます。
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、
『4.5 戻り値一覧』をご参照くださ
い。
© 2003, 2016 Interface Corporation. All rights reserved.
277
GPC-5520 Help for Windows
【使用例】
●C 言語
HANDLE hDeviceHandle;
IMGMEASURE pMeasure;
IMGBINCONFIG pBinConf;
DWORD dwFrameNum;
int nRet;
hDeviceHandle = ImgOpen(“IFIMGMSR1”);
:
pBinConf.dwColorIngredient = IFIMG_INGREDIENT_GRAY;
pBinConf.dwMaxthreshold = 255;
pBinConf.dwMinthreshold = 128;
pBinConf.dwBinarizationMode = IFIMG_BINMODE_NORMAL;
:
nRet = ImgSetBinarizationConfig(hDeviceHandle, &pBinConf);
:
nRet = ImgSetMeasurementRange(hDeviceHandle, 0, 0, 320, 240);
nRet = ImgGetMeasurementValueEx (hDeviceHandle, &pMeasure, &dwFrameNum);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim pMeasure As IMGMEASURE
Dim dwFrameNum As Long
Dim pBinConf As IMGBINCONFIG
Dim nRet As Long
lpszName = “IFIMGMSR1”
hDeviceHandle = ImgOpen(lpszName)
:
pBinConf.dwColorIngredient = IFIMG_INGREDIENT_GRAY
pBinConf.dwMaxthreshold = 255
pBinConf.dwMinthreshold = 128
pBinConf.dwBinarizationMode = IFIMG_BINMODE_NORMAL
:
nRet = ImgSetBinarizationConfig (hDeviceHandle, pBinConf)
:
nRet = ImgSetMeasurementRange (hDeviceHandle, 0, 0, 320, 240)
:
nRet = ImgGetMeasurementValueEx (hDeviceHandle, pMeasure, dwFrameNum)
© 2003, 2016 Interface Corporation. All rights reserved.
278
GPC-5520 Help for Windows
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
pMeasure: IMGMEASURE
dwFrameNum: DWORD
nRet: Integer;
pBinConf: IMGBINCONFIG;
lpszName := 'IFIMGMSR1';
hDeviceHandle := ImgOpen(lpszName);
:
pBinConf.dwColorIngredient := IFIMG_INGREDIENT_GRAY;
pBinConf.dwMaxthreshold := 255;
pBinConf.dwMinthreshold := 128;
pBinConf.dwBinarizationMode := IFIMG_BINMODE_NORMAL;
nRet := ImgSetBinarizationConfig(hDeviceHandle, pBinConf);
:
:
nRet := ImgSetEventMask(hDeviceHandle, 0, 0, 320, 240);
:
nRet := ImgGetMeasurementValueEx (hDeviceHandle, pMeasure, dwFrameNum);
●Visual C# .NET
IntPtr hDeviceHandle;
IFCIMG_ANY.IMGMEASURE Measure;
IFCIMG_ANY.IMGBINCONFIG pBinConf;
uint dwFrameNum;
int nRet;
hDeviceHandle = IFCIMG_ANY.ImgOpen(“IFIMGMSR1”);
:
pBinConf.dwColorIngredient = IFCIMG_ANY.IFIMG_INGREDIENT_GRAY;
pBinConf.dwMaxthreshold = 255;
pBinConf.dwMinthreshold = 128;
pBinConf.dwBinarizationMode = IFCIMG_ANY.IFIMG_BINMODE_NORMAL;
:
nRet = IFCIMG_ANY.ImgSetBinarizationConfig(hDeviceHandle, ref pBinConf);
:
nRet = IFCIMG_ANY.ImgSetMeasurementRange(hDeviceHandle, 0, 0, 320, 240);
:
nRet = IFCIMG_ANY.ImgGetMeasurementValueEx(hDeviceHandle, out Measure,
out dwFrameNum);
© 2003, 2016 Interface Corporation. All rights reserved.
279
GPC-5520 Help for Windows
●Visual Basic .NET
Dim lpszName As String
Dim hDeviceHandle As IntPtr
Dim Measure As IFCIMG_ANY.IMGMEASURE
Dim pBinConf As IFCIMG_ANY.IMGBINCONFIG
Dim dwFrameNum As Integer;
Dim nRet As Integer
lpszName = “IFIMGMSR1”
hDeviceHandle = IFCIMG_ANY.ImgOpen(lpszName)
:
pBinConf.dwColorIngredient = IFCIMG_ANY.IFIMG_INGREDIENT_GRAY
pBinConf.dwMaxthreshold = 255
pBinConf.dwMinthreshold = 128
pBinConf.dwBinarizationMode = IFCIMG_ANY.IFIMG_BINMODE_NORMAL
:
nRet = IFCIMG_ANY.ImgSetBinarizationConfig(hDeviceHandle, pBinConf)
:
nRet = IFCIMG_ANY.ImgSetMeasurementRange(hDeviceHandle, 0, 0, 320, 240)
:
nRet = IFCIMG_ANY.ImgGetMeasurementValueEx (hDeviceHandle, Measure, dwFrameNum)
●Delphi 8
var
lpszName: String;
hDeviceHandle: Integer;
pMeasure: IFCIMG.IMGMEASURE;
dwFrameNum: Cardinal;
nRet: Integer;
pBinConf: IFCIMG.IMGBINCONFG;
lpszName := 'IFIMGMSR1';
hDeviceHandle := IFCIMG.ImgOpen(lpszName);
:
pBinConf.dwColorIngredient := IFCIMG.IFIMG_INGREDIENT_GRAY;
pBinConf.dwMaxthreshold := 255;
pBinConf.dwMinthreshold := 128;
pBinConf.dwBinarizationMode := IFCIMG.IFIMG_BINMODE_NORMAL;
nRet := IFCIMG.ImgSetBinarizationConfig(hDeviceHandle, pBinConf);
:
:
nRet := IFCIMG.ImgSetEventMask(hDeviceHandle, 0, 0, 320, 240);
:
nRet := IFCIMG.ImgGetMeasurementValueEx(hDeviceHandle, pMeasure, dwFrameNum);
© 2003, 2016 Interface Corporation. All rights reserved.
280
GPC-5520 Help for Windows
デバイス名「IFIMGMSR1」のデバイスに対して、2 値化処理設定を行います。
2 値化対象の色成分を輝度成分、上限しきい値を 255、下限しきい値を 128、上限と下限の間の
場合、2 値化データを 0xFF にします。
面積値、重心値を求める為の測定範囲を指定します。開始点(0,0)(左上)とし、開始点からの X
方向を 320、Y 方向を 240 とした測定範囲を設定します。
その後、面積値、重心値、フェレ径、慣性等価楕円の傾き角を取得します。
キャプチャ中に ImgGetMeasurementValueEx 関数を実行した場合、フレーム数を取得します。
dwFrameNum の値で何フレーム目のデータに対して測定を行ったのか、知ることができます。
※キャプチャを実行せずともカメラ等に接続している限り、取り込んでいるフレームデータに
対して、面積値、重心値を取得することも可能です。ただし、dwFrameNum の値は無効なデータ
です。
© 2003, 2016 Interface Corporation. All rights reserved.
281
GPC-5520 Help for Windows
36. ImgSetConversionConfig
階調変換処理、フィルタ処理、膨張・収縮処理の有効/無効を設定します。
各画像処理後の画像をキャプチャする場合は、有効に設定します。
【書式】
●C 言語
INT ImgSetConversionConfig(
HANDLE
hDeviceHandle,
DWORD
dwCnvEnabled
);
//
//
デバイスハンドル
画像処理有効設定
●Visual Basic
Declare Function ImgSetConversionConfig Lib "IfImg.dll"( _
ByVal
hDeviceHandle
As Long, _
‘ デバイスハンドル
RyVal
dwCnvEnabled
As Long _
‘ 画像処理有効設定
)As Long
●Delphi
function ImgSetConversionConfig(
hDeviceHandle:
THandle;
//
dwCnvEnabled:
DWORD
//
): Integer; stdcall; external 'IfImg.dll';
デバイスハンドル
画像処理有効設定
●Visual C# .NET(x86、x64 共用)
[DllImport("IfImg.dll")]
public static extern int ImgSetConversionConfig(
IntPtr
hDeviceHandle,
// デバイスハンドル
uint
dwCnvEnabled
// 画像処理有効設定
);
●Visual C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgSetConversionConfig(
uint
hDeviceHandle,
// デバイスハンドル
uint
dwCnvEnabled
// 画像処理有効設定
);
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgSetConversionConfig Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As IntPtr,
‘ デバイスハンドル
RyVal
dwCnvEnabled
As Integer
‘ 画像処理有効設定
)As Integer
© 2003, 2016 Interface Corporation. All rights reserved.
282
GPC-5520 Help for Windows
●Visual Basic .NET(x86 専用)
Declare Function ImgSetConversionConfig Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As Integer,
‘ デバイスハンドル
RyVal
dwCnvEnabled
As Integer
‘ 画像処理有効設定
)As Integer
●Delphi 8
class function ImgSetConversionConfig(
hDeviceHandle:
Integer;
dwCnvEnabled:
Cardinal
): Integer; static;
//
//
デバイスハンドル
画像処理有効設定
【パラメータ】
hDeviceHandle
ImgOpen関数で取得したデバイスハンドルを指定してください。
dwCnvEnabled
階調変換処理、フィルタ処理、膨張・収縮処理の有効/無効を選択します。
ビット
内容
bit31~bit3 予約
bit2
膨張・収縮処理
1:有効
0:無効
bit1
フィルタ処理
1:有効
0:無効
bit0
階調変換
1:有効
0:無効
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、
『4.5 戻り値一覧』をご参照くださ
い。
【使用例】
●C 言語
int
nRet;
HANDLE
hDeviceHandle;
hDeviceHandle = ImgOpen("IFIMGCNV1");
// 階調変換、フィルタ処理、膨張・収縮有効
nRet = ImgSetConversionConfig(hDeviceHandle, 0x07);
© 2003, 2016 Interface Corporation. All rights reserved.
283
GPC-5520 Help for Windows
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim nRet As Long
lpszName = “IFIMGCNV1”
hDeviceHandle = ImgOpen(lpszName)
' 階調変換、フィルタ処理、膨張・収縮有効
nRet = ImgSetConversionConfig(hDeviceHandle, &H07)
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
nRet: Integer;
begin
lpszName := 'IFIMGCNV1';
hDeviceHandle := ImgOpen(lpszName);
// 階調変換、フィルタ処理、膨張・収縮有効
nRet := ImgSetConversionConfig(hDeviceHandle, $07);
●Visual C# .NET
int
nRet;
IntPtr hDeviceHandle;
hDeviceHandle = IFCIMG_ANY.ImgOpen("IFIMGCNV1");
// 階調変換、フィルタ処理、膨張・収縮有効
nRet = IFCIMG_ANY.ImgSetConversionConfig(hDeviceHandle, 0x07);
●Visual Basic .NET
Dim lpszName As String
Dim hDeviceHandle As IntPtr
Dim nRet As Integer
lpszName = “IFIMGCNV1”
hDeviceHandle = IFCIMG_ANY.ImgOpen(lpszName)
' 階調変換、フィルタ処理、膨張・収縮有効
nRet = IFCIMG_ANY.ImgSetConversionConfig(hDeviceHandle, &H07)
© 2003, 2016 Interface Corporation. All rights reserved.
284
GPC-5520 Help for Windows
●Delphi 8
var
lpszName: String;
hDeviceHandle: Integer;
nRet: Integer;
begin
lpszName := 'IFIMGCNV1';
hDeviceHandle := IFCIMG.ImgOpen(lpszName);
// 階調変換、フィルタ処理、膨張・収縮有効
nRet := IFCIMG.ImgSetConversionConfig(hDeviceHandle, $07);
デバイス名「IFIMGCNV1」のデバイスに対して、階調変換、フィルタ処理、膨張・収縮処理を有
効にします。
© 2003, 2016 Interface Corporation. All rights reserved.
285
GPC-5520 Help for Windows
37. ImgSetLUT
指定した色成分に対する階調変換テーブルを設定します。
【書式】
●C 言語
INT ImgSetLUT(
HANDLE
PIMGLUTINFO
);
hDeviceHandle,
pLutinfo
//
//
デバイスハンドル
階調変換テーブル
●Visual Basic
Declare Function ImgSetLUT Lib "IfImg.dll"( _
ByVal
hDeviceHandle
As Long, _
RyRef
pLutinfo
As IMGLUTINFO _
)As Long
‘
‘
デバイスハンドル
階調変換テーブル
●Delphi
function ImgSetLUT (
hDeviceHandle:
var pLutinfo:
THandle;
IMGLUTINFO
): Integer; stdcall; external 'IfImg.dll';
●Visual C# .NET(x86、x64 共用)
[DllImport("IfImg.dll")]
public static extern int ImgSetLUT(
IntPtr
hDeviceHandle,
ref IMGLUTINFO pLutinfo
);
●Visual C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgSetLUT(
uint
hDeviceHandle,
ref IMGLUTINFO pLutinfo
);
//
//
デバイスハンドル
階調変換テーブル
// デバイスハンドル
// IMGLUTINFO 構造体のポインタ
// デバイスハンドル
// IMGLUTINFO 構造体のポインタ
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgSetLUT Lib "IfImg.DLL"(
ByVal
hDeviceHandle As IntPtr,
‘
RyRef
pLutinfo
As IMGLUTINFO ‘
)As Integer
●Visual Basic .NET(x86 専用)
Declare Function ImgSetLUT Lib "IfImg.DLL"(
ByVal
hDeviceHandle As Integer,
‘
RyRef
pLutinfo
As IMGLUTINFO ‘
)As Integer
デバイスハンドル
IMGLUTINFO 構造体への参照渡し
デバイスハンドル
IMGLUTINFO 構造体への参照渡し
© 2003, 2016 Interface Corporation. All rights reserved.
286
GPC-5520 Help for Windows
●Delphi 8
class function ImgSetLUT (
hDeviceHandle:
Integer;
var pLutinfo:
IMGLUTINFO
): Integer; static;
// デバイスハンドル
// IMGLUTINFO 構造体への参照渡し
【パラメータ】
hDeviceHandle
ImgOpen関数で取得したデバイスハンドルを指定してください。
pLutinfo
IMGLUTINFO 構造体へのポインタを指定してください。
構造体の説明については、『4.4 構造体』をご参照ください。
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、
『4.5 戻り値一覧』をご参照くださ
い。
© 2003, 2016 Interface Corporation. All rights reserved.
287
GPC-5520 Help for Windows
【使用例】
●C 言語
int
nRet;
int
i,j;
HANDLE
hDeviceHandle;
PBYTE
pSrcBuf;
DWORD
dwBufSise;
IMGCAPSTATUS
Status;
IMGBUFFERINFO BufInfo;
IMGLUTINFO LUTInfo;
hDeviceHandle = ImgOpen("IFIMGCNV1");
// 階調変換テーブルの設定 (明度を反転する)
for(i=0, j=255; i<256; i++,j-- ){
LUTInfo.rgbBlue[i] = j;
LUTInfo.rgbGreen[i] = j;
LUTInfo.rgbRed[i] = j;
}
nRet = ImgSetLUT(hDeviceHandle, &LUTInfo);
// 階調変換処理有効
nRet = ImgSetConversionConfig(hDeviceHandle, 0x01);
// RGB24bit 画像領域確保
dwBufSise = 640*480*3;
pSrcBuf = (PBYTE)malloc(dwBufSise);
// 画像情報を設定
BufInfo.pBufferAddress = pSrcBuf;
BufInfo.dwBufferSize = dwBufSise;
nRet=ImgSetBuffer(hDeviceHandle,&BufInfo, IFIMG_COLOR_RGB24);
// 1 フレームキャプチャ開始
nRet = ImgStartCapture(hDeviceHandle,1, IFIMG_DMACAPTURE_START);
// 完了まで待つ。
do{
nRet = ImgGetCaptureStatus(hDeviceHandle, &Status);
}while(Status.dwCapture & 0x01);
© 2003, 2016 Interface Corporation. All rights reserved.
288
GPC-5520 Help for Windows
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim Status As IMGCAPSTATUS
Dim LUTInfo As IMGLUTINFO
Dim nRet As Long
Dim buffer(921600) As Byte
Dim buffersize As Long
Dim i As Long
Dim j As Long
lpszName = "IFIMGCNV1"
hDeviceHandle = ImgOpen(lpszName)
' 階調変換テーブルの設定 (明度を反転する)
j = 255
For i = 0 To 255
LUTInfo.rgbBlue(i) = j
LUTInfo.rgbGreen(i) = j
LUTInfo.rgbRed(i) = j
j = j - 1
Next
nRet = ImgSetLUT(hDeviceHandle, LUTInfo)
' 階調変換処理有効
nRet = ImgSetConversionConfig(hDeviceHandle, &H1)
buffersize = 921600
nRet = ImgSetBufferVB(hDeviceHandle, buffer(0), buffersize, IFIMG_COLOR_RGB24)
' 1 フレームキャプチャ開始
nRet = ImgStartCapture(hDeviceHandle, 1, IFIMG_DMACAPTURE_START)
' キャプチャ完了まで待つ
Do
nRet = ImgGetCaptureStatus(hDeviceHandle, Status)
Loop While Status.dwCapture And &H1
© 2003, 2016 Interface Corporation. All rights reserved.
289
GPC-5520 Help for Windows
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
nRet: Integer;
i: Integer;
pSrcBuf: Pointer;
dwSize: DWORD;
Status: IMGCAPSTATUS;
BufInfo: IMGBUFFERINFO;
LUTInfo: IMGLUTINFO;
begin
lpszName := 'IFIMGCNV1';
hDeviceHandle := ImgOpen(lpszName);
// 階調変換テーブルの設定 (明度を反転する)
for i := 0 to 255 do
begin
with LUTInfo do
begin
rgbBlue[i] := 255 - i;
rgbGreen[i] := 255 - i;
rgbRed[i] := 255 - i;
end;
end;
nRet := ImgSetLUT(hDeviceHandle, LUTInfo);
// 階調変換処理有効
nRet := ImgSetConversionConfig (hDeviceHandle, $01);
// RGB24bit 画像領域確保
dwSize := 640*480*3;
pSrcBuf := AllocMem(dwSize);
// 画像情報を設定
BufInfo.pBufferAddress := pSrcBuf;
BufInfo.dwBufferSize := dwSize;
nRet := ImgSetBuffer(hDeviceHandle, BufInfo, IFIMG_COLOR_RGB24);
// 1 フレームキャプチャ開始
nRet := ImgStartCapture(hDeviceHandle,1, IFIMG_DMACAPTURE_START);
// 完了まで待つ
repeat
nRet := ImgGetCaptureStatus(hDeviceHandle, Status);
until (Status.dwCapture and $01) <> $01;
© 2003, 2016 Interface Corporation. All rights reserved.
290
GPC-5520 Help for Windows
●Visual C# .NET
int
nRet;
int
i,j;
IntPtr hDeviceHandle;
IntPtr pSrcBuf;
uint
dwBufSise;
IFCIMG_ANY.IMGCAPSTATUS Status;
IFCIMG_ANY.IMGBUFFERINFO BufInfo;
IFCIMG_ANY.IMGLUTINFO
LUTInfo;
// オープン処理
hDeviceHandle = IFCIMG_ANY.ImgOpen("IFIMGCNV1");
// 階調変換テーブルの設定 (明度を反転する)
for(i=0, j=255; i<256; i++,j-- ){
LUTInfo.rgbBlue[i] = j;
LUTInfo.rgbGreen[i] = j;
LUTInfo.rgbRed[i] = j;
}
nRet = IFCIMG_ANY.ImgSetLUT(hDeviceHandle, ref LUTInfo);
// 階調変換処理有効
nRet = IFCIMG_ANY.ImgSetConversionConfig(hDeviceHandle, 0x01);
// RGB24bit 画像領域確保
dwBufSise = 640*480*3;
pSrcBuf = Marshal.AllocCoTaskMem((int)dwBufSise);
// 画像情報を設定
BufInfo.pBufferAddress = pSrcBuf;
BufInfo.dwBufferSize = dwBufSise;
nRet = IFCIMG_ANY.ImgSetBuffer(hDeviceHandle, ref BufInfo,
IFCIMG_ANY.IFIMG_COLOR_RGB24);
// 1 フレームキャプチャ開始
nRet = IFCIMG_ANY.ImgStartCapture(hDeviceHandle,1,
IFCIMG_ANY.IFIMG_DMACAPTURE_START);
// 完了まで待つ
do{
nRet = IFCIMG_ANY.ImgGetCaptureStatus(hDeviceHandle, out Status);
}while(Status.dwCapture & 0x01);
© 2003, 2016 Interface Corporation. All rights reserved.
291
GPC-5520 Help for Windows
●Visual Basic .NET
Dim lpszName As String
Dim hDeviceHandle As IntPtr
Dim Status As IFCIMG_ANY.IMGCAPSTATUS
Dim LUTInfo As IFCIMG_ANY.IMGLUTINFO
Dim nRet As Long
Dim buffer(921600) As byte
Dim buffersize As Integer
Dim i As Integer
Dim j As Integer
lpszName = “IFIMGCNV1”
hDeviceHandle = IFCIMG_ANY.ImgOpen(lpszName)
' 階調変換テーブルの設定 (明度を反転する)
j = 255
For i = 0 To 255
LUTInfo.rgbBlue(i) = j
LUTInfo.rgbGreen(i) = j
LUTInfo.rgbRed(i) = j
j = j – 1
Next
nRet = IFCIMG_ANY.ImgSetLUT(hDeviceHandle, LUTInfo)
' 階調変換処理有効
nRet = IFCIMG_ANY.ImgSetConversionConfig(hDeviceHandle, &H1)
buffersize = 921600
nRet = IFCIMG_ANY.ImgSetBufferVB(_
hDeviceHandle, buffer, buffersize, IFCIMG_ANY.IFIMG_COLOR_RGB24)
' 1 フレームキャプチャ開始
nRet = IFCIMG_ANY.ImgStartCapture(hDeviceHandle,1,
IFCIMG_ANY.IFIMG_DMACAPTURE_START)
' キャプチャ完了まで待つ
Do
nRet = IFCIMG_ANY.ImgGetCaptureStatus(hDeviceHandle, Status)
Loop While Status.dwCapture And &H1
© 2003, 2016 Interface Corporation. All rights reserved.
292
GPC-5520 Help for Windows
●Delphi 8
var
lpszName: String;
hDeviceHandle: Integer;
nRet: Integer;
i: Integer;
j: Integer;
pSrcBuf: IntPtr;
dwSize: Integer;
Status: IFCIMG.IMGCAPSTATUS;
BufInfo: IFCIMG.IMGBUFFERINFO;
LUTInfo: IFCIMG.IMGLUTINFO;
begin
lpszName := 'IFIMGCNV1';
hDeviceHandle := IFCIMG.ImgOpen(lpszName);
// 階調変換テーブルの設定 (画像を反転する)
for i := 0 to 255 do
begin
with LUTInfo do
begin
rgbBlue[i] := 255 - i;
rgbGreen[i] := 255 - i;
rgbRed[i] := 255 – i;
end;
end;
nRet := IFCIMG.ImgSetLUT(hDeviceHandle, LUTInfo);
// 階調変換処理有効
nRet := IFCIMG.ImgSetConversionConfig (hDeviceHandle, $01);
// RGB24bit 画像領域確保
dwSize := 640*480*3;
pSrcBuf := Marshal.AllocHGlobal(dwSize);
// 画像情報を設定
BufInfo.pBufferAddress := pSrcBuf;
BufInfo.dwBufferSize := dwBufSise;
nRet := IFCIMG.ImgSetBuffer(hDeviceHandle, BufInfo, IFCIMG.IFIMG_COLOR_RGB24);
// 1 フレームキャプチャ開始
nRet := IFCIMG.ImgStartCapture(hDeviceHandle,1, IFCIMG.IFIMG_DMACAPTURE_START);
// 完了まで待つ
repeat
nRet := IFCIMG.ImgGetCaptureStatus(hDeviceHandle, Status);
until (Status.dwCapture and $01) <> $01;
© 2003, 2016 Interface Corporation. All rights reserved.
293
GPC-5520 Help for Windows
デバイス名「IFIMGCNV1」のデバイスに対して、階調変換処理した画像をキャプチャします。
© 2003, 2016 Interface Corporation. All rights reserved.
294
GPC-5520 Help for Windows
38. ImgSetFilter
フィルタ係数を設定します。
【書式】
●C 言語
INT ImgSetFilter(
HANDLE
DWORD
PIMGFILTER
);
hDeviceHandle,
dwFilterSelect,
pCoefficient
//
//
//
デバイスハンドル
フィルタ選択
フィルタ係数
●Visual Basic
Declare Function ImgSetFilter Lib "IfImg.dll"( _
ByVal
hDeviceHandle
As Long, _
RyVal
dwFilterSelect
As Long, _
ByRef
pCoefficient
As IMGFILTER _
)As Long
‘
‘
‘
デバイスハンドル
使用するフィルタ
フィルタ係数
●Delphi
function ImgSetFilter (
hDeviceHandle:
dwFilterSelect:
var pCoefficient:
THandle;
DWORD;
IMGFILTER
): Integer; stdcall; external 'IfImg.dll';
●Visual C# .NET(x86、x64 共用)
[DllImport("IfImg.dll")]
public static extern int ImgSetFilter(
IntPtr
hDeviceHandle,
uint
dwFilterSelect,
ref IMGFILTER
pCoefficient
);
●Visual C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgSetFilter(
uint
hDeviceHandle,
uint
dwFilterSelect,
ref IMGFILTER
pCoefficient
);
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgSetFilter Lib
ByVal
hDeviceHandle
As
RyVal
dwFilterSelect
As
ByRef
pCoefficient
As
)As Integer
//
//
//
デバイスハンドル
使用するフィルタ
フィルタ係数
//
//
//
デバイスハンドル
フィルタ選択
フィルタ係数
//
//
//
デバイスハンドル
フィルタ選択
フィルタ係数
"IfImg.DLL"(
IntPtr,
Integer,
IMGFILTER
© 2003, 2016 Interface Corporation. All rights reserved.
295
‘
‘
‘
デバイスハンドル
使用するフィルタ
フィルタ係数
GPC-5520 Help for Windows
●Visual Basic .NET(x86 専用)
Declare Function ImgSetFilter Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As Integer,
RyVal
dwFilterSelect
As Integer,
ByRef
pCoefficient
As IMGFILTER
)As Integer
●Delphi 8
class function ImgSetFilter (
hDeviceHandle:
Integer;
dwFilterSelect:
Cardinal;
var pCoefficient: IMGFILTER
): Integer; static;
‘
‘
‘
//
//
//
デバイスハンドル
使用するフィルタ
フィルタ係数
デバイスハンドル
使用するフィルタ
フィルタ係数
【パラメータ】
hDeviceHandle
ImgOpen関数で取得したデバイスハンドルを指定してください。
dwFilterSelect
識別子
IFIMG_SPATIAL_FILTER
IFIMG_EDGE_FILTER
値
00000001h
00000002h
意味
3×3 空間フィルタ
3×3 差分エッジ型検出
フィルタ
pCoefficient
フィルタ係数を設定します。IMGFILTER 構造体へのポインタを指定してください。
構造体の説明については、『4.4 構造体』をご参照ください。
dwFilterSelect の指定が IFIMG_SPATIAL_FILTER の場合、IMGFILTER 構造体は 1 つを用意
します。IFIMG_EDGE_FILTER の場合、X 方向用と Y 方向用として、2 つ要素の IMGFILTER
構造体の配列を用意します。
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、
『4.5 戻り値一覧』をご参照くださ
い。
© 2003, 2016 Interface Corporation. All rights reserved.
296
GPC-5520 Help for Windows
【使用例 3×3 空間フィルタ処理 】
●C 言語
int
nRet;
int
i,j;
HANDLE
hDeviceHandle;
PBYTE
pSrcBuf;
DWORD
dwBufSise;
IMGCAPSTATUS
Status;
IMGBUFFERINFO BufInfo;
IMGFILTER
Filter;
hDeviceHandle = ImgOpen("IFIMGCNV1");
// フィルタ係数設定(ラプラシアンフィルタ)
Filter.a = 0;
Filter.b = 1;
Filter.c = 0;
Filter.d = 1;
Filter.e = -4;
Filter.f = 1;
Filter.g = 0;
Filter.h = 1;
Filter.i = 0;
nRet = ImgSetFilter(hDeviceHandle,IFIMG_SPATIAL_FILTER, &Filter);
// フィルタ処理有効
nRet = ImgSetConversionConfig(hDeviceHandle, 0x02);
// フィルタ 8bit 画像領域確保
dwBufSise = 640*480;
pSrcBuf = (PBYTE)malloc(dwBufSise);
// 画像情報を設定
BufInfo.pBufferAddress = pSrcBuf;
BufInfo.dwBufferSize = dwBufSise;
nRet=ImgSetBuffer(hDeviceHandle,&BufInfo, IFIMG_COLOR_FIL8);
// 1 フレームキャプチャ開始
nRet = ImgStartCapture(hDeviceHandle,1, IFIMG_DMACAPTURE_START);
// 完了まで待つ
do{
nRet = ImgGetCaptureStatus(hDeviceHandle, &Status);
}while(Status.dwCapture & 0x01);
© 2003, 2016 Interface Corporation. All rights reserved.
297
GPC-5520 Help for Windows
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim Status As IMGCAPSTATUS
Dim Filter As IMGFILTER
Dim nRet As Long
Dim buffer(307200) As byte
Dim buffersize As Long
lpszName = “IFIMGCNV1”
hDeviceHandle = ImgOpen(lpszName)
' フィルタ係数設定(ラプラシアンフィルタ)
Filter.a = 0
Filter.b = 1
Filter.c = 0
Filter.d = 1
Filter.e = -4
Filter.f = 1
Filter.g = 0
Filter.h = 1
Filter.i = 0
nRet = ImgSetFilter(hDeviceHandle,IFIMG_SPATIAL_FILTER, Filter)
' フィルタ処理有効
nRet = ImgSetConversionConfig(hDeviceHandle, &H2)
buffersize = 307200
nRet = ImgSetBufferVB(hDeviceHandle, buffer(0), buffersize, IFIMG_COLOR_FIL8)
' 1 フレームキャプチャ開始
nRet = ImgStartCapture(hDeviceHandle,1, IFIMG_DMACAPTURE_START)
' キャプチャ完了まで待つ
Do
nRet = ImgGetCaptureStatus(hDeviceHandle, Status)
Loop While Status.dwCapture And &H1
© 2003, 2016 Interface Corporation. All rights reserved.
298
GPC-5520 Help for Windows
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
nRet: Integer;
pSrcBuf: Pointer;
dwSize: DWORD;
Status: IMGCAPSTATUS;
BufInfo: IMGBUFFERINFO;
Filter: IMGFILTER;
begin
lpszName := 'IFIMGCNV1';
hDeviceHandle := ImgOpen(lpszName);
// フィルタ係数設定(ラプラシアンフィルタ)
Filter.a := 0;
Filter.b := 1;
Filter.c := 0;
Filter.d := 1;
Filter.e := -4;
Filter.f := 1;
Filter.g := 0;
Filter.h := 1;
Filter.i := 0;
nRet := ImgSetFilter(hDeviceHandle, IFIMG_SPATIAL_FILTER, Filter);
// フィルタ処理有効
nRet := ImgSetConversionConfig(hDeviceHandle, $02);
// フィルタ 8bit 画像領域確保
dwSize := 640*480;
pSrcBuf := AllocMem(dwSize);
// 画像情報を設定
BufInfo.pBufferAddress := pSrcBuf;
BufInfo.dwBufferSize := dwSize;
nRet := ImgSetBuffer(hDeviceHandle, BufInfo, IFIMG_COLOR_FIL8);
// 1 フレームキャプチャ開始
nRet := ImgStartCapture(hDeviceHandle,1, IFIMG_DMACAPTURE_START);
// 完了まで待つ
repeat
nRet := ImgGetCaptureStatus(hDeviceHandle, Status);
until (Status.dwCapture and $01) <> $01;
© 2003, 2016 Interface Corporation. All rights reserved.
299
GPC-5520 Help for Windows
●Visual C# .NET
int
nRet;
int
i,j;
IntPtr hDeviceHandle;
IntPtr
pSrcBuf;
uint
dwBufSise;
IFCIMG_ANY.IMGCAPSTATUS
IFCIMG_ANY.IMGBUFFERINFO
IFCIMG_ANY.IMGFILTER
Status;
BufInfo;
Filter;
// オープン処理
hDeviceHandle = IFCIMG_ANY.ImgOpen("IFIMGCNV1");
// フィルタ係数設定(ラプラシアンフィルタ)
Filter.a = 0;
Filter.b = 1;
Filter.c = 0;
Filter.d = 1;
Filter.e = -4;
Filter.f = 1;
Filter.g = 0;
Filter.h = 1;
Filter.i = 0;
nRet = IFCIMG_ANY.ImgSetFilter(hDeviceHandle, IFCIMG_ANY.IFIMG_SPATIAL_FILTER,
ref Filter);
// フィルタ処理有効
nRet = IFCIMG_ANY.ImgSetConversionConfig(hDeviceHandle, 0x02);
// フィルタ 8bit 画像領域確保
dwBufSise = 640*480;
pSrcBuf = Marshal.AllocCoTaskMem((int)dwBufSise);
// 画像情報を設定
BufInfo.pBufferAddress = pSrcBuf;
BufInfo.dwBufferSize = dwBufSise;
nRet = IFCIMG_ANY.ImgSetBuffer(hDeviceHandle, ref BufInfo,
IFCIMG_ANY.IFIMG_COLOR_FIL8);
// 1 フレームキャプチャ開始
nRet = IFCIMG_ANY.ImgStartCapture(hDeviceHandle, 1,
IFCIMG_ANY.IFIMG_DMACAPTURE_START);
// 完了まで待つ
do{
nRet = IFCIMG_ANY.ImgGetCaptureStatus(hDeviceHandle, out Status);
}while(Status.dwCapture & 0x01);
© 2003, 2016 Interface Corporation. All rights reserved.
300
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
301
GPC-5520 Help for Windows
●Visual Basic .NET
Dim lpszName As String
Dim hDeviceHandle As IntPtr
Dim Status As IFCIMG_ANY.IMGCAPSTATUS
Dim Filter As IFCIMG_ANY.IMGFILTER
Dim nRet As Integer
Dim buffer(307200) As byte
Dim buffersize As Integer
lpszName = “IFIMGCNV1”
hDeviceHandle = IFCIMG_ANY.ImgOpen(lpszName)
' フィルタ係数設定(ラプラシアンフィルタ)
Filter.a = 0
Filter.b = 1
Filter.c = 0
Filter.d = 1
Filter.e = -4
Filter.f = 1
Filter.g = 0
Filter.h = 1
Filter.i = 0
nRet = IFCIMG_ANY.ImgSetFilter(hDeviceHandle, IFCIMG_ANY.IFIMG_SPATIAL_FILTER,_
Filter)
' フィルタ処理有効
nRet = IFCIMG_ANY.ImgSetConversionConfig(hDeviceHandle, &H2)
buffersize = 307200
nRet = IFCIMG_ANY.ImgSetBufferVB(_
hDeviceHandle, buffer, buffersize, IFCIMG_ANY.IFIMG_COLOR_FIL8)
' 1 フレームキャプチャ開始
nRet = IFCIMG_ANY.ImgStartCapture(hDeviceHandle,1,_
IFCIMG_ANY.IFIMG_DMACAPTURE_START)
' キャプチャ完了まで待つ
Do
nRet = IFCIMG_ANY.ImgGetCaptureStatus(hDeviceHandle, Status)
Loop While Status.dwCapture And &H1
© 2003, 2016 Interface Corporation. All rights reserved.
302
GPC-5520 Help for Windows
●Delphi 8
var
lpszName: String;
hDeviceHandle: Integer;
nRet: Integer;
pSrcBuf: IntPtr;
dwSize: Integer;
Status: IFCIMG.IMGCAPSTATUS;
BufInfo: IFCIMG.IMGBUFFERINFO;
Filter: IFCIMG.IMGFILTER;
begin
lpszName := 'IFIMGCNV1';
hDeviceHandle := IFCIMG.ImgOpen(lpszName);
// フィルタ係数設定(ラプラシアンフィルタ)
Filter.a := 0;
Filter.b := 1;
Filter.c := 0;
Filter.d := 1;
Filter.e := -4;
Filter.f := 1;
Filter.g := 0;
Filter.h := 1;
Filter.i := 0;
nRet := IFCIMG.ImgSetFilter(hDeviceHandle, IFCIMG.IFIMG_SPATIAL_FILTER, Filter);
// フィルタ処理有効
nRet := IFCIMG.ImgSetConversionConfig (hDeviceHandle, $02);
// フィルタ 8bit 画像領域確保
dwSize := 640*480;
pSrcBuf := AllocMem(dwSize);
// 画像情報を設定
BufInfo.pBufferAddress := pSrcBuf;
BufInfo.dwBufferSize := dwSize;
nRet := IFCIMG.ImgSetBuffer(hDeviceHandle, BufInfo, IFCIMG.IFIMG_COLOR_FIL8);
// 1 フレームキャプチャ開始
nRet := IFCIMG.ImgStartCapture(hDeviceHandle,1, IFCIMG.IFIMG_DMACAPTURE_START);
// 完了まで待つ
repeat
nRet := IFCIMG.ImgGetCaptureStatus(hDeviceHandle, Status);
until (Status.dwCapture and $01) <> $01;
© 2003, 2016 Interface Corporation. All rights reserved.
303
GPC-5520 Help for Windows
【使用例 3×3 差分型エッジ検出フィルタ】
●C 言語
int
nRet;
int
i,j;
HANDLE
hDeviceHandle;
PBYTE
pSrcBuf;
DWORD
dwBufSise;
IMGCAPSTATUS
Status;
IMGBUFFERINFO BufInfo;
IMGFILTER
Filter[2]; // 差分エッジフィルタの場合は配列を 2 つ用意する。
hDeviceHandle = ImgOpen("IFIMGCNV1");
// X 方向フィルタ係数設定 (Sobel フィルタ)
Filter[0].a = -1;
Filter[0].b = 0;
Filter[0].c = 1;
Filter[0].d = -2;
Filter[0].e = 0;
Filter[0].f = 2;
Filter[0].g = -1;
Filter[0].h = 0;
Filter[0].i = 1;
// Y 方向フィルタ係数設定 (Sobel フィルタ)
Filter[1].a = -1;
Filter[1].b = -2;
Filter[1].c = -1;
Filter[1].d = 0;
Filter[1].e = 0;
Filter[1].f = 0;
Filter[1].g = 1;
Filter[1].h = 2;
Filter[1].i = 1;
nRet = ImgSetFilter(hDeviceHandle,IFIMG_EDGE_FILTER, Filter);
// フィルタ処理有効
nRet = ImgSetConversionConfig(hDeviceHandle, 0x02);
// フィルタ 8bit 画像領域確保
dwBufSise = 640*480;
pSrcBuf = (PBYTE)malloc(dwBufSise);
// 画像情報を設定
BufInfo.pBufferAddress = pSrcBuf;
BufInfo.dwBufferSize = dwBufSise;
nRet=ImgSetBuffer(hDeviceHandle,&BufInfo, IFIMG_COLOR_FIL8);
© 2003, 2016 Interface Corporation. All rights reserved.
304
GPC-5520 Help for Windows
// 1 フレームキャプチャ開始
nRet = ImgStartCapture(hDeviceHandle,1, IFIMG_DMACAPTURE_START);
// 完了まで待つ
do{
nRet = ImgGetCaptureStatus(hDeviceHandle, &Status);
}while(Status.dwCapture & 0x01);
© 2003, 2016 Interface Corporation. All rights reserved.
305
GPC-5520 Help for Windows
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim Status As IMGCAPSTATUS
Dim Filter(2) As IMGFILTER
Dim nRet As Long
Dim buffer(307200) As byte
Dim buffersize As Long
lpszName = “IFIMGCNV1”
hDeviceHandle = ImgOpen(lpszName)
' X 方向フィルタ係数設定 (Sobel フィルタ)
Filter(0).a = -1
Filter(0).b = 0
Filter(0).c = 1
Filter(0).d = -2
Filter(0).e = 0
Filter(0).f = 2
Filter(0).g = -1
Filter(0).h = 0
Filter(0).i = 1
' Y 方向フィルタ係数設定 (Sobel フィルタ)
Filter(1).a = -1
Filter(1).b = -2
Filter(1).c = -1
Filter(1).d = 0
Filter(1).e = 0
Filter(1).f = 0
Filter(1).g = 1
Filter(1).h = 2
Filter(1).i = 1
nRet = ImgSetFilter(hDeviceHandle, IFIMG_EDGE_FILTER, Filter(0))
' フィルタ処理有効
nRet = ImgSetConversionConfig(hDeviceHandle, &H2)
buffersize = 307200
nRet = ImgSetBufferVB(hDeviceHandle, buffer(0), buffersize, IFIMG_COLOR_FIL8)
' 1 フレームキャプチャ開始
nRet = ImgStartCapture(hDeviceHandle,1, IFIMG_DMACAPTURE_START)
' キャプチャ完了まで待つ
Do
nRet = ImgGetCaptureStatus(hDeviceHandle, Status)
© 2003, 2016 Interface Corporation. All rights reserved.
306
GPC-5520 Help for Windows
Loop While Status.dwCapture And &H1
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
nRet: Integer;
pSrcBuf: Pointer;
dwSize: DWORD;
Status: IMGCAPSTATUS;
BufInfo: IMGBUFFERINFO;
Filter: array[0..1] of IMGFILTER;
begin
lpszName := 'IFIMGCNV1';
hDeviceHandle := ImgOpen(lpszName);
// X 方向フィルタ係数設定(Sobel フィルタ)
Filter[0].a := -1;
Filter[0].b := 0;
Filter[0].c := 1;
Filter[0].d := -2;
Filter[0].e := 0;
Filter[0].f := 2;
Filter[0].g := -1;
Filter[0].h := 0;
Filter[0].i := 1;
// Y 方向フィルタ係数設定(Sobel フィルタ)
Filter[1].a := -1;
Filter[1].b := -2;
Filter[1].c := -1;
Filter[1].d := 0;
Filter[1].e := 0;
Filter[1].f := 0;
Filter[1].g := 1;
Filter[1].h := 2;
Filter[1].i := 1;
nRet := ImgSetFilter(hDeviceHandle, IFIMG_EDGE_FILTER, Filter[0]);
// フィルタ処理有効
nRet := ImgSetConversionConfig(hDeviceHandle, $02);
// フィルタ 8bit 画像領域確保
dwSize := 640*480;
pSrcBuf := AllocMem(dwSize);
// 画像情報を設定
© 2003, 2016 Interface Corporation. All rights reserved.
307
GPC-5520 Help for Windows
BufInfo.pBufferAddress := pSrcBuf;
BufInfo.dwBufferSize := dwSize;
nRet := ImgSetBuffer(hDeviceHandle, BufInfo, IFIMG_COLOR_FIL8);
// 1 フレームキャプチャ開始
nRet := ImgStartCapture(hDeviceHandle,1, IFIMG_DMACAPTURE_START);
// 完了まで待つ
repeat
nRet := ImgGetCaptureStatus(hDeviceHandle, Status);
until (Status.dwCapture and $01) <> $01;
●Visual C# .NET
int
nRet;
int
i,j;
IntPtr hDeviceHandle;
IntPtr pSrcBuf;
uint
dwBufSise;
IFCIMG_ANY.IMGCAPSTATUS Status;
IFCIMG_ANY.IMGBUFFERINFO BufInfo;
IFCIMG_ANY.IMGFILTER Filter[2]; // 差分エッジフィルタの場合は配列を 2 つ用意する。
// Open a device.
hDeviceHandle = IFCIMG_ANY.ImgOpen("IFIMGCNV1");
// X 方向フィルタ係数設定 (Sobel フィルタ)
Filter[0].a = -1;
Filter[0].b = 0;
Filter[0].c = 1;
Filter[0].d = -2;
Filter[0].e = 0;
Filter[0].f = 2;
Filter[0].g = -1;
Filter[0].h = 0;
Filter[0].i = 1;
// Y 方向フィルタ係数設定 (Sobel フィルタ)
Filter[1].a = -1;
Filter[1].b = -2;
Filter[1].c = -1;
Filter[1].d = 0;
Filter[1].e = 0;
Filter[1].f = 0;
Filter[1].g = 1;
Filter[1].h = 2;
Filter[1].i = 1;
nRet = IFCIMG_ANY.ImgSetFilter(hDeviceHandle, IFCIMG_ANY.IFIMG_EDGE_FILTER,
ref Filter);
© 2003, 2016 Interface Corporation. All rights reserved.
308
GPC-5520 Help for Windows
// フィルタ処理有効
nRet = IFCIMG_ANY.ImgSetConversionConfig(hDeviceHandle, 0x02);
// フィルタ 8bit 画像領域確保
dwBufSise = 640*480;
pSrcBuf = Marshal.AllocCoTaskMem((int)dwBufSise);
// 画像情報を設定
BufInfo.pBufferAddress = pSrcBuf;
BufInfo.dwBufferSize = dwBufSise;
nRet = IFCIMG_ANY.ImgSetBuffer(hDeviceHandle, ref BufInfo,
IFCIMG_ANY.IFIMG_COLOR_FIL8);
// 1 フレームキャプチャ開始
nRet = IFCIMG_ANY.ImgStartCapture(hDeviceHandle,1,
IFCIMG_ANY.IFIMG_DMACAPTURE_START);
// 完了まで待つ
do{
nRet = IFCIMG_ANY.ImgGetCaptureStatus(hDeviceHandle, out Status);
}while(Status.dwCapture & 0x01);
© 2003, 2016 Interface Corporation. All rights reserved.
309
GPC-5520 Help for Windows
●Visual Basic .NET
Dim lpszName As String
Dim hDeviceHandle As IntPtr
Dim Status As IFCIMG_ANY.IMGCAPSTATUS
Dim Filter(2) As IFCIMG_ANY.IMGFILTER
Dim nRet As Long
Dim buffer(307200) As byte
Dim buffersize As Integer
lpszName = “IFIMGCNV1”
hDeviceHandle = IFCIMG_ANY.ImgOpen(lpszName)
' X 方向フィルタ係数設定(Sobel フィルタ)
Filter(0).a = -1
Filter(0).b = 0
Filter(0).c = 1
Filter(0).d = -2
Filter(0).e = 0
Filter(0).f = 2
Filter(0).g = -1
Filter(0).h = 0
Filter(0).i = 1
' Y 方向フィルタ係数設定(Sobel フィルタ)
Filter(1).a = -1
Filter(1).b = -2
Filter(1).c = -1
Filter(1).d = 0
Filter(1).e = 0
Filter(1).f = 0
Filter(1).g = 1
Filter(1).h = 2
Filter(1).i = 1
nRet = IFCIMG_ANY.ImgSetFilter(hDeviceHandle,_
IFCIMG_ANY.IFIMG_EDGE_FILTER, Filter(0))
' フィルタ処理有効
nRet = IFCIMG_ANY.ImgSetConversionConfig(hDeviceHandle, &H2)
buffersize = 307200
nRet = IFCIMG_ANY.ImgSetBufferVB(_
hDeviceHandle, buffer, buffersize, IFCIMG_ANY.IFIMG_COLOR_FIL8)
' 1 フレームキャプチャ開始
nRet = IFCIMG_ANY.ImgStartCapture(hDeviceHandle,1,
IFCIMG_ANY.IFIMG_DMACAPTURE_START)
© 2003, 2016 Interface Corporation. All rights reserved.
310
GPC-5520 Help for Windows
' キャプチャ完了まで待つ
Do
nRet = IFCIMG_ANY.ImgGetCaptureStatus(hDeviceHandle, Status)
Loop While Status.dwCapture And &H1
●Delphi 8
var
lpszName: String;
hDeviceHandle: Integer;
nRet: Integer;
pSrcBuf: IntPtr;
dwBufSise: Integer;
Status: IFCIMG.IMGCAPSTATUS;
BufInfo: IFCIMG.IMGBUFFERINFO;
Filter: array[0..1] of IFCIMG.IMGFILTER;
begin
lpszName := 'IFIMGCNV1';
hDeviceHandle := IFCIMG.ImgOpen(lpszName);
// X 方向フィルタ係数設定(Sobel フィルタ)
Filter[0].a := -1;
Filter[0].b := 0;
Filter[0].c := 1;
Filter[0].d := -2;
Filter[0].e := 0;
Filter[0].f := 2;
Filter[0].g := -1;
Filter[0].h := 0;
Filter[0].i := 1;
// Y 方向フィルタ係数設定(Sobel フィルタ)
Filter[1].a := -1;
Filter[1].b := -2;
Filter[1].c := -1;
Filter[1].d := 0;
Filter[1].e := 0;
Filter[1].f := 0;
Filter[1].g := 1;
Filter[1].h := 2;
Filter[1].i := 1;
nRet := IFCIMG.ImgSetFilter(hDeviceHandle, IFCIMG.IFIMG_EDGE_FILTER, Filter[0]);
// フィルタ処理有効
nRet := IFCIMG.ImgSetConversionConfig(hDeviceHandle, $02);
// フィルタ 8bit 画像領域確保
© 2003, 2016 Interface Corporation. All rights reserved.
311
GPC-5520 Help for Windows
dwSize := 640*480;
pSrcBuf := AllocMem(dwSize);
// 画像情報を設定
BufInfo.pBufferAddress := pSrcBuf;
BufInfo.dwBufferSize := dwBufSise;
nRet := IFCIMG.ImgSetBuffer(hDeviceHandle, BufInfo, IFCIMG.IFIMG_COLOR_FIL8);
// 1 フレームキャプチャ開始
nRet := IFCIMG.ImgStartCapture(hDeviceHandle,1, IFCIMG.IFIMG_DMACAPTURE_START);
// 完了まで待つ
repeat
nRet := IFCIMG.ImgGetCaptureStatus(hDeviceHandle, Status);
until (Status.dwCapture and $01) <> $01;
デバイス名「IFIMGCNV1」のデバイスに対して、Sobel フィルタ処理をした画像をキャプチャ
します。
© 2003, 2016 Interface Corporation. All rights reserved.
312
GPC-5520 Help for Windows
39. ImgSetDil_Er
膨張・収縮処理の条件を設定します。段数と各段に対する膨張・収縮の選択と近傍の選択します。
【書式】
●C 言語
INT ImgSetDil_Er(
HANDLE
PIMGDILATE_ERODE
);
hDeviceHandle,
pDilate_Erode
//
//
デバイスハンドル
膨張・収縮設定構造体
●Visual Basic
Declare Function ImgSetDil_Er Lib "IfImg.dll"( _
ByVal
hDeviceHandle
As Long, _
‘
ByRef
pDilate_Erode
As IMGDILATE_ERODE _ ‘
)As Long
デバイスハンドル
膨張・収縮設定構造体
●Delphi
function ImgSetDil_Er(
hDeviceHandle:
var pDilate_Erode:
THandle;
IMGDILATE_ERODE
): Integer; stdcall; external 'IfImg.dll';
●Visual C# .NET(x86、x64 共用)
[DllImport("IfImg.dll")]
public static extern int ImgSetDil_Er(
IntPtr
hDeviceHandle,
ref IMGDILATE_ERODE pDilate_Erode
);
●Visual C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgSetDil_Er(
uint
hDeviceHandle,
ref IMGDILATE_ERODE pDilate_Erode
);
//
//
デバイスハンドル
膨張・収縮設定構造体
//
//
デバイスハンドル
膨張・収縮設定構造体
//
//
デバイスハンドル
膨張・収縮設定構造体
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgSetDil_Er Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As IntPtr,
ByRef
pDilate_Erode
As IMGDILATE_ERODE
)As Integer
●Visual Basic .NET(x86 専用)
Declare Function ImgSetDil_Er Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As Integer,
ByRef
pDilate_Erode
As IMGDILATE_ERODE
)As Integer
© 2003, 2016 Interface Corporation. All rights reserved.
313
‘
‘
デバイスハンドル
膨張・収縮設定構造体
‘
‘
デバイスハンドル
膨張・収縮設定構造体
GPC-5520 Help for Windows
●Delphi 8
class function ImgSetDil_Er(
hDeviceHandle:
Integer;
var pDilate_Erode: IMGDILATE_ERODE
): Integer; static;
//
//
デバイスハンドル
膨張・収縮設定構造体
【パラメータ】
hDeviceHandle
ImgOpen関数で取得したデバイスハンドルを指定してください。
pDilate_Erode
IMGDILATE_ERODE構造体のポインタを指定してください。
構造体の説明については、『4.4 構造体』をご参照ください。
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、
『4.5 戻り値一覧』をご参照くださ
い。
© 2003, 2016 Interface Corporation. All rights reserved.
314
GPC-5520 Help for Windows
●C 言語
HANDLE
hDeviceHandle;
int
nRet;
PBYTE
pSrcBuf;
DWORD
dwBufSise;
IMGCAPSTATUS
Status;
IMGBUFFERINFO
BufInfo;
IMGDILATE_ERODE DIL_ER;
IMGBINCONFIG BinConf;
hDeviceHandle = ImgOpen("IFIMGCNV1");
// 膨張・収縮設定
DIL_ER.dwStepCnt = 8;
// 8 段構成
// 収縮→収縮→収縮→収縮→膨張→膨張→膨張→膨張
DIL_ER.dwSelectD_E = 0x0F;
DIL_ER.dwNeighborhood = 0x00; // 全段 4 連結
nRet = ImgSetDil_Er(hDeviceHandle, &DIL_ER);
// 膨張・収縮処理有効
nRet = ImgSetConversionConfig(hDeviceHandle, 0x04);
// 2 値化設定
BinConf.dwColorIngredient = IFIMG_INGREDIENT_GRAY;
BinConf.dwMaxthreshold = 255;
BinConf.dwMinthreshold = 128;
BinConf.dwBinarizationMode = IFIMG_BINMODE_NORMAL;
nRet = ImgSetBinarizationConfig(hDeviceHandle, &BinConf);
// 2 値画像領域確保
dwBufSise = 640*480;
pSrcBuf = (PBYTE)malloc(dwBufSise);
// 画像情報を設定
BufInfo.pBufferAddress = pSrcBuf;
BufInfo.dwBufferSize = dwBufSise;
nRet=ImgSetBuffer(hDeviceHandle,&BufInfo, IFIMG_COLOR_BIN8);
// 1 フレームキャプチャ開始
nRet = ImgStartCapture(hDeviceHandle,1, IFIMG_DMACAPTURE_START);
// 完了まで待つ。
do{
nRet = ImgGetCaptureStatus(hDeviceHandle, &Status);
}while(Status.dwCapture & 0x01);
© 2003, 2016 Interface Corporation. All rights reserved.
315
GPC-5520 Help for Windows
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim Status As IMGCAPSTATUS
Dim DIL_ER As IMGDILATE_ERODE
Dim BinConf As IMGBINCONFIG
Dim nRet As Long
Dim buffer(307200) As Byte
Dim buffersize As Long
lpszName = "IFIMGCNV1"
hDeviceHandle = ImgOpen(lpszName)
' 膨張・収縮設定
DIL_ER.dwStepCnt = 8
' 8 段構成
' 収縮→収縮→収縮→収縮→膨張→膨張→膨張→膨張
DIL_ER.dwSelectD_E = &HF
DIL_ER.dwNeighborhood = &H0
' 全段 4 連結
nRet = ImgSetDil_Er(hDeviceHandle, DIL_ER)
' 膨張・収縮処理有効
nRet = ImgSetConversionConfig(hDeviceHandle, &H4)
' 2 値化設定
BinConf.dwColorIngredient = IFIMG_INGREDIENT_GRAY
BinConf.dwMaxthreshold = 255
BinConf.dwMinthreshold = 128
BinConf.dwBinarizationMode = IFIMG_BINMODE_NORMAL
nRet = ImgSetBinarizationConfig(hDeviceHandle, BinConf)
'2 値画像領域確保
buffersize = 307200
nRet = ImgSetBufferVB(hDeviceHandle, buffer(0), buffersize, IFIMG_COLOR_BIN8)
' 1 フレームキャプチャ開始
nRet = ImgStartCapture(hDeviceHandle, 1, IFIMG_DMACAPTURE_START)
' キャプチャ完了まで待つ
Do
nRet = ImgGetCaptureStatus(hDeviceHandle, Status)
Loop While Status.dwCapture And &H1
© 2003, 2016 Interface Corporation. All rights reserved.
316
GPC-5520 Help for Windows
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
nRet: Integer;
pSrcBuf: Pointer;
dwSize: DWORD;
Status: IMGCAPSTATUS;
BufInfo: IMGBUFFERINFO;
BinConf: IMGBINCONFIG;
DIL_ER: IMGDILATE_ERODE;
begin
lpszName := 'IFIMGCNV1';
hDeviceHandle := ImgOpen(lpszName);
// 膨張・収縮設定
DIL_ER.dwStepCnt := 8;
// 8 段構成
// 収縮→収縮→収縮→収縮→膨張→膨張→膨張→膨張
DIL_ER.dwSelectD_E := $0F;
DIL_ER.dwNeighborhood := $00; // 全段 4 連結
nRet := ImgSetDil_Er(hDeviceHandle, DIL_ER);
// 膨張・収縮処理有効
nRet := ImgSetConversionConfig(hDeviceHandle, $04);
BinConf.dwColorIngredient := IFIMG_INGREDIENT_GRAY;
BinConf.dwMaxthreshold := 255;
BinConf.dwMinthreshold := 128;
BinConf.dwBinarizationMode := IFIMG_BINMODE_NORMAL;
nRet := ImgSetBinarizationConfig(hDeviceHandle, BinConf);
// 2 値画像領域確保
dwSize := 640*480;
pSrcBuf := AllocMem(dwSize);
// 画像情報を設定
BufInfo.pBufferAddress := pSrcBuf;
BufInfo.dwBufferSize := dwSize;
nRet := ImgSetBuffer(hDeviceHandle, BufInfo, IFIMG_COLOR_BIN8);
// 1 フレームキャプチャ開始
nRet := ImgStartCapture(hDeviceHandle,1, IFIMG_DMACAPTURE_START);
// 完了まで待つ
repeat
nRet := ImgGetCaptureStatus(hDeviceHandle, Status);
until (Status.dwCapture and $01) <> $01;
© 2003, 2016 Interface Corporation. All rights reserved.
317
GPC-5520 Help for Windows
●Visual C# .NET
IntPtr hDeviceHandle;
int
nRet;
IntPtr pSrcBuf;
uint
dwBufSise;
IFCIMG_ANY.IMGCAPSTATUS
IFCIMG_ANY.IMGBUFFERINFO
IFCIMG_ANY.IMGDILATE_ERODE
IFCIMG_ANY.IMGBINCONFIG
Status;
BufInfo;
DIL_ER;
BinConf;
// インタフェースモジュールプン
hDeviceHandle = IFCIMG_ANY.ImgOpen("IFIMGCNV1");
// 膨張・収縮設定
DIL_ER.dwStepCnt = 8;
// 8 段構成
// 収縮→収縮→収縮→収縮→膨張→膨張→膨張→膨張
DIL_ER.dwSelectD_E = 0x0F;
DIL_ER.dwNeighborhood = 0x00; // 4 連結(全て)
nRet = IFCIMG_ANY.ImgSetDil_Er(hDeviceHandle, ref DIL_ER);
// 膨張・収縮処理有効
nRet = IFCIMG_ANY.ImgSetConversionConfig(hDeviceHandle, 0x04);
// 2 値化設定
BinConf.dwColorIngredient = IFCIMG_ANY.IFIMG_INGREDIENT_GRAY;
BinConf.dwMaxthreshold = 255;
BinConf.dwMinthreshold = 128;
BinConf.dwBinarizationMode = IFCIMG_ANY.IFIMG_BINMODE_NORMAL;
nRet = IFCIMG_ANY.ImgSetBinarizationConfig(hDeviceHandle, ref BinConf);
// 2 値画像領域確保
dwBufSise = 640*480;
pSrcBuf = Marshal.AllocCoTaskMem((int)dwBufSise);
// 画像情報を設定
BufInfo.pBufferAddress = pSrcBuf;
BufInfo.dwBufferSize = dwBufSise;
nRet = IFCIMG_ANY.ImgSetBuffer(hDeviceHandle, ref BufInfo,
IFCIMG_ANY.IFIMG_COLOR_BIN8);
// 1 フレームキャプチャ開始
nRet = IFCIMG_ANY.ImgStartCapture(hDeviceHandle, 1,
IFCIMG_ANY.IFIMG_DMACAPTURE_START);
// 完了まで待つ
do{
nRet = IFCIMG_ANY.ImgGetCaptureStatus(hDeviceHandle, out Status);
}while(Status.dwCapture & 0x01);
© 2003, 2016 Interface Corporation. All rights reserved.
318
GPC-5520 Help for Windows
●Visual Basic .NET
Dim lpszName As String
Dim hDeviceHandle As IntPtr
Dim Status As IFCIMG_ANY.IMGCAPSTATUS
Dim DIL_ER As IFCIMG_ANY.IMGDILATE_ERODE
Dim BinConf As IFCIMG_ANY.IMGBINCONFIG
Dim nRet As Integer
Dim buffer(307200) As byte
Dim buffersize As Integer
lpszName = “IFIMGCNV1”
hDeviceHandle = IFCIMG_ANY.ImgOpen(lpszName)
' 膨張・収縮設定
DIL_ER.dwStepCnt = 8
' 8 段構成
' 収縮→収縮→収縮→収縮→膨張→膨張→膨張→膨張
DIL_ER.dwSelectD_E = &H0F
DIL_ER.dwNeighborhood = &H00 ' 4 連結(全て)
nRet = IFCIMG_ANY.ImgSetDil_Er(hDeviceHandle, DIL_ER)
' 膨張・収縮処理有効
nRet = IFCIMG_ANY.ImgSetConversionConfig(hDeviceHandle, &H4)
' 2 値化設定
BinConf.dwColorIngredient = IFCIMG_ANY.IFIMG_INGREDIENT_GRAY
BinConf.dwMaxthreshold = 255
BinConf.dwMinthreshold = 128
BinConf.dwBinarizationMode = IFCIMG_ANY.IFIMG_BINMODE_NORMAL
nRet = IFCIMG_ANY.ImgSetBinarizationConfig (hDeviceHandle, BinConf)
’2 値画像領域確保
buffersize = 307200
nRet = IFCIMG_ANY.ImgSetBufferVB(_
hDeviceHandle, buffer, buffersize, IFCIMG_ANY.IFIMG_COLOR_BIN8)
' 1 フレームキャプチャ開始
nRet = IFCIMG_ANY.ImgStartCapture(hDeviceHandle,1, _
IFCIMG_ANY.IFIMG_DMACAPTURE_START)
' キャプチャ完了まで待つ
Do
nRet = IFCIMG_ANY.ImgGetCaptureStatus(hDeviceHandle, Status)
Loop While Status.dwCapture And &H1
© 2003, 2016 Interface Corporation. All rights reserved.
319
GPC-5520 Help for Windows
●Delphi 8
var
lpszName: String;
hDeviceHandle: Integer;
nRet: Integer;
pSrcBuf: IntPtr;
dwSize: Integer;
Status: IFCIMG.IMGCAPSTATUS;
BufInfo: IFCIMG.IMGBUFFERINFO;
BinConf: IFCIMG.IMGBINCONFIG;
begin
lpszName := 'IFIMGCNV1';
hDeviceHandle := IFCIMG.ImgOpen(lpszName);
// 膨張・収縮設定
DIL_ER.dwStepCnt := 8;
// 8 段構成
DIL_ER.dwSelectD_E := $F0;
// 膨→膨→膨→膨→収→収→収→収
DIL_ER.dwNeighborhood := $00; // 4 連結(全て)
nRet := IFCIMG.ImgSetDil_Er(hDeviceHandle, ref DIL_ER);
// 膨張・収縮処理有効
nRet := IFCIMG.ImgSetConversionConfig(hDeviceHandle, $04);
// 2 値画像領域確保
dwSize := 640*480;
pSrcBuf := Marshal.AllocHGlobal(dwSize);
// 画像情報を設定
BufInfo.pBufferAddress := pSrcBuf;
BufInfo.dwBufferSize := dwBufSise;
nRet := IFCIMG.ImgSetBuffer(hDeviceHandle, ref BufInfo, IFCIMG.IFIMG_COLOR_BIN8);
// 1 フレームキャプチャ開始
nRet := IFCIMG.ImgStartCapture(hDeviceHandle,1, IFCIMG.IFIMG_DMACAPTURE_START);
// 完了まで待つ
repeat
nRet := IFCIMG.ImgGetCaptureStatus(hDeviceHandle, out Status);
until (Status.dwCapture and $01) <> $01;
デバイス名「IFIMGCNV1」のデバイスに対して、膨張・収縮処理後の画像をキャプチャします。
© 2003, 2016 Interface Corporation. All rights reserved.
320
GPC-5520 Help for Windows
40. ImgSetStillPictureData
静止画出力用の画像データをセットします。
【書式】
●C 言語
INT ImgSetStillPictureData(
HANDLE
hDeviceHandle,
PVOID
pSrc
);
//
//
デバイスハンドル
画像データの先頭ポインタ
●Visual Basic
Declare Function ImgSetStillPictureData Lib "IfImg.dll"( _
ByVal
hDeviceHandle
As Long, _ ‘ デバイスハンドル
ByRef
pSrc
As Any _
‘ 画像データの参照渡し
)As Long
●Delphi
function ImgSetStillPictureData(
hDeviceHandle:
THandle,
// デバイスハンドル
pSrc:
Pointer
// 画像データの参照渡し
): Integer; stdcall; external 'IfImg.dll';
●Visual C# .NET(x86、x64 共用)
[DllImport("IfImg.dll")]
public static extern int ImgSetStillPictureData(
IntPtr
hDeviceHandle,
// デバイスハンドル
byte[]
pSrc
// 画像データの先頭ポインタ
);
[DllImport("IfImg.dll")]
public static extern int ImgSetStillPictureData(
IntPtr
hDeviceHandle,
// デバイスハンドル
short[]
pSrc
// 画像データの先頭ポインタ
);
[DllImport("IfImg.dll")]
public static extern int ImgSetStillPictureData(
IntPtr
hDeviceHandle,
// デバイスハンドル
uint[]
pSrc
// 画像データの先頭ポインタ
);
●Visual C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgSetStillPictureData(
uint
hDeviceHandle,
// デバイスハンドル
byte[]
pSrc
// 画像データの先頭ポインタ
);
© 2003, 2016 Interface Corporation. All rights reserved.
321
GPC-5520 Help for Windows
[DllImport("IfImg.dll")]
public static extern int ImgSetStillPictureData(
uint
hDeviceHandle,
// デバイスハンドル
short[]
pSrc
// 画像データの先頭ポインタ
);
[DllImport("IfImg.dll")]
public static extern int ImgSetStillPictureData(
uint
hDeviceHandle,
// デバイスハンドル
uint[]
pSrc
// 画像データの先頭ポインタ
);
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgSetStillPictureData Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As IntPtr,
‘ デバイスハンドル
ByRef
pSrc( )
As Byte
‘ 画像データの参照渡し
)As Integer
Declare Function ImgSetStillPictureData Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As IntPtr,
‘ デバイスハンドル
ByRef
pSrc( )
As Short
‘ 画像データの参照渡し
)As Integer
Declare Function ImgSetStillPictureData Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As IntPtr,
‘ デバイスハンドル
ByRef
pSrc( )
As Integer
‘ 画像データの参照渡し
)As Integer
●Visual Basic .NET(x86 専用)
Declare Function ImgSetStillPictureData Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As Integer, ‘ デバイスハンドル
ByRef
pSrc( )
As Byte
‘ 画像データの参照渡し
)As Integer
Declare Function ImgSetStillPictureData Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As Integer, ‘ デバイスハンドル
ByRef
pSrc( )
As Short
‘ 画像データの参照渡し
)As Integer
Declare Function ImgSetStillPictureData Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As Integer, ‘ デバイスハンドル
ByRef
pSrc( )
As Integer
‘ 画像データの参照渡し
)As Integer
© 2003, 2016 Interface Corporation. All rights reserved.
322
GPC-5520 Help for Windows
●Delphi 8
class function ImgSetStillPictureData(
hDeviceHandle:
Integer;
pSrc:
array of Byte
): Integer; static;
//
//
デバイスハンドル
画像データの参照渡し
//
//
デバイスハンドル
画像データの参照渡し
class function ImgSetStillPictureData(
hDeviceHandle:
Integer;
//
pSrc:
array of Cardinal //
): Integer; static;
デバイスハンドル
画像データの参照渡し
class function ImgSetStillPictureData(
hDeviceHandle:
Integer;
pSrc:
array of Word
): Integer; static;
【パラメータ】
hDeviceHandle
関数で取得したデバイスハンドルを指定してください。
pSrc
書き込む画像データの先頭ポインタを指定します。
画像データのフォーマットは解像度 640×480 の RGB32bit のデータです。
データサイズは 1 フレーム分です。(1228800byte)
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、
『4.5 戻り値一覧』をご参照くださ
い。
【備考】
画像データのセットは ImgSetOutputMode 関数で静止画出力モードに変更した後に実行してく
ださい。
© 2003, 2016 Interface Corporation. All rights reserved.
323
GPC-5520 Help for Windows
●C 言語
HANDLE
hDeviceHandle;
int
nRet;
PDWORD
pSrcBuf;
DWORD
dwBufSise;
hDeviceHandle = ImgOpen("IFIMGCNV1");
// 静止画出力用画像データ確保
dwBufSise = 640*480*4;
pSrcBuf = (PDWORD)malloc(dwBufSise);
:
// RGB32bit の出力画像を作成
:
// 映像出力端子を静止画出力モードへセット
nRet = ImgSetOutputMode(hDeviceHandle, IFIMG_OUTMODE_STILL_PICTURE);
// データ書き込み
nRet = ImgSetStillPictureData(hDeviceHandle, pSrcBuf);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim nRet As Long
Dim pSrcBuf(307200) As Long
lpszName = “IFIMGCNV1”
hDeviceHandle = ImgOpen(lpszName)
:
' RGB32bit の出力画像を作成
:
' 映像出力端子を静止画出力モードへセット
nRet = ImgSetOutputMode(hDeviceHandle, IFIMG_OUTMODE_STILL_PICTURE)
' データ書き込み
nRet = ImgSetStillPictureData(hDeviceHandle, pSrcBuf)
© 2003, 2016 Interface Corporation. All rights reserved.
324
GPC-5520 Help for Windows
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
nRet: Integer;
pSrcBuf: Pointer;
dwBufSise: DWORD;
begin
lpszName := 'IFIMGCNV1';
hDeviceHandle := ImgOpen(lpszName);
// RGB32bit の出力画像を作成
dwSize := 640*480*4;
pSrcBuf := AllocMem(dwSize);
:
// RGB32bit の出力画像を作成
:
// 映像出力端子を静止画出力モードへセット
nRet := ImgSetOutputMode(hDeviceHandle, IFIMG_OUTMODE_STILL_PICTURE);
// データ書き込み
nRet := ImgSetStillPictureData(hDeviceHandle, pSrcBuf);
●Visual C# .NET
IntPtr hDeviceHandle;
int
nRet;
uint
pSrcBuf[307200];
// デバイスオープン
hDeviceHandle = IFCIMG_ANY.ImgOpen("IFIMGCNV1");
// RGB32bit の出力画像を作成
:
// 映像出力端子を静止画出力モードへセット
nRet = IFCIMG_ANY.ImgSetOutputMode(hDeviceHandle,
IFCIMG_ANY.IFIMG_OUTMODE_STILL_PICTURE);
// データ書き込み
nRet = IFCIMG_ANY.ImgSetStillPictureData(hDeviceHandle, pSrcBuf);
© 2003, 2016 Interface Corporation. All rights reserved.
325
GPC-5520 Help for Windows
●Visual Basic .NET
Dim lpszName As String
Dim hDeviceHandle As IntPtr
Dim nRet As Integer
Dim pSrcBuf(307200) As Integer
lpszName = “IFIMGCNV1”
hDeviceHandle = IFCIMG_ANY.ImgOpen(lpszName)
:
' RGB32bit の出力画像を作成
:
' 映像出力端子を静止画出力モードへセット
nRet = IFCIMG_ANY.ImgSetOutputMode(hDeviceHandle, _
IFCIMG_ANY.IFIMG_OUTMODE_STILL_PICTURE)
' データ書き込み
nRet = IFCIMG_ANY.ImgSetStillPictureData(hDeviceHandle, pSrcBuf)
●Delphi 8
var
lpszName: String;
hDeviceHandle: Integer;
nRet: Integer;
pSrcBuf: array of Cardinal;
dwSize: Cardinal;
begin
lpszName := 'IFIMGCNV1';
hDeviceHandle := IFCIMG.ImgOpen(lpszName);
// RGB32bit 画像領域確保
dwSize := 9216000;
Setlength(pCaptureData, pSrcBuf);
:
// RGB32bit の出力画像を作成
:
// 映像出力端子を静止画出力モードへセット
nRet :=IFCIMG.ImgSetOutputMode(hDeviceHandle, IFCIMG.IFIMG_OUTMODE_STILL_PICTURE);
// データ書き込み
nRet := IFCIMG.ImgSetStillPictureData(hDeviceHandle, pSrcBuf);
デバイス名「IFIMGCNV1」のデバイスに対して、静止画出力モードへセットし、静止画データ
を設定します。
© 2003, 2016 Interface Corporation. All rights reserved.
326
GPC-5520 Help for Windows
41. ImgGetStillPictureData
静止画出力用の画像データを取得します。
【書式】
●C 言語
INT ImgGetStillPictureData(
HANDLE
hDeviceHandle,
PVOID
pDst
);
//
//
デバイスハンドル
読み込み先バッファの先頭ポインタ
●Visual Basic
Declare Function ImgGetStillPictureData Lib "IfImg.dll"( _
ByVal
hDeviceHandle As Long, _ ‘ デバイスハンドル
ByRef
pDst
As Any _
‘ 読み込み先バッファの参照渡し
)As Long
●Delphi
function ImgGetStillPictureData(
hDeviceHandle:
THandle,
// デバイスハンドル
pDst:
Pointer
// 読み込み先バッファの参照渡し
): Integer; stdcall; external 'IfImg.dll';
●Visual C# .NET(x86、x64 共用)
[DllImport("IfImg.dll")]
public static extern int ImgGetStillPictureData(
IntPtr
hDeviceHandle,
// デバイスハンドル
byte[]
pDst
// 読み込み先バッファの先頭ポインタ
);
[DllImport("IfImg.dll")]
public static extern int ImgGetStillPictureData(
IntPtr
hDeviceHandle,
// デバイスハンドル
short[]
pDst
// 読み込み先バッファの先頭ポインタ
);
[DllImport("IfImg.dll")]
public static extern int ImgGetStillPictureData(
IntPtr
hDeviceHandle,
// デバイスハンドル
uint[]
pDst
// 読み込み先バッファの先頭ポインタ
);
●Visual C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgGetStillPictureData(
uint
hDeviceHandle,
// デバイスハンドル
byte[]
pDst
// 読み込み先バッファの先頭ポインタ
);
© 2003, 2016 Interface Corporation. All rights reserved.
327
GPC-5520 Help for Windows
[DllImport("IfImg.dll")]
public static extern int ImgGetStillPictureData(
uint
hDeviceHandle,
// デバイスハンドル
short[]
pDst
// 読み込み先バッファの先頭ポインタ
);
[DllImport("IfImg.dll")]
public static extern int ImgGetStillPictureData(
uint
hDeviceHandle,
// デバイスハンドル
uint[]
pDst
// 読み込み先バッファの先頭ポインタ
);
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgGetStillPictureData Lib "IfImg.DLL"(
ByVal
hDeviceHandle As IntPtr, ‘ デバイスハンドル
ByRef
pDst( )
As Byte
‘ 読み込み先バッファの参照渡し
)As Integer
Declare Function ImgGetStillPictureData Lib "IfImg.DLL"(
ByVal
hDeviceHandle As IntPtr, ‘ デバイスハンドル
ByRef
pDst( )
As Short
‘ 読み込み先バッファの参照渡し
)As Integer
Declare Function ImgGetStillPictureData Lib "IfImg.DLL"(
ByVal
hDeviceHandle As IntPtr, ‘ デバイスハンドル
ByRef
pDst( )
As Integer ‘ 読み込み先バッファの参照渡し
)As Integer
●Visual Basic .NET(x86 専用)
Declare Function ImgGetStillPictureData Lib "IfImg.DLL"(
ByVal
hDeviceHandle As Integer, ‘ デバイスハンドル
ByRef
pDst( )
As Byte
‘ 読み込み先バッファの参照渡し
)As Integer
Declare Function ImgGetStillPictureData Lib "IfImg.DLL"(
ByVal
hDeviceHandle As Integer, ‘ デバイスハンドル
ByRef
pDst( )
As Short
‘ 読み込み先バッファの参照渡し
)As Integer
Declare Function ImgGetStillPictureData Lib "IfImg.DLL"(
ByVal
hDeviceHandle As Integer, ‘ デバイスハンドル
ByRef
pDst( )
As Integer ‘ 読み込み先バッファの参照渡し
)As Integer
© 2003, 2016 Interface Corporation. All rights reserved.
328
GPC-5520 Help for Windows
●Delphi 8
class function ImgGetStillPictureData(
hDeviceHandle:
Integer;
pDst:
array of Byte
): Integer; static;
//
//
デバイスハンドル
画像データの参照渡し
//
//
デバイスハンドル
画像データの参照渡し
class function ImgGetStillPictureData(
hDeviceHandle:
Integer;
//
pDst:
array of Cardinal //
): Integer; static;
デバイスハンドル
画像データの参照渡し
class function ImgGetStillPictureData(
hDeviceHandle:
Integer;
pDst:
array of Word
): Integer; static;
【パラメータ】
hDeviceHandle
関数で取得したデバイスハンドルを指定してください。
pDst
読み込み先バッファの先頭ポインタを指定してください。
読み込まれる画像データのフォーマットは解像度 640×480 の RGB32bit のデータです。
1 フレーム分のサイズのバッファを用意してください。
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、
『4.5 戻り値一覧』をご参照くださ
い。
【備考】
画像データのセットは ImgSetOutputMode 関数で静止画出力モードに変更した後に実行してく
ださい。
© 2003, 2016 Interface Corporation. All rights reserved.
329
GPC-5520 Help for Windows
●C 言語
HANDLE
int
PDWORD
DWORD
hDeviceHandle;
nRet;
pDstBuf;
dwBufSise;
hDeviceHandle = ImgOpen("IFIMGCNV1");
:
// 静止画出力用画像データ確保
dwBufSise = 640*480*4;
pDstBuf = (PDWORD)malloc(dwBufSise);
// データを読み込む
nRet = ImgGetStillPictureData(hDeviceHandle, pDstBuf);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim nRet As Long
Dim pDstBuf(307200) As Long
lpszName = “IFIMGCNV1”
hDeviceHandle = ImgOpen(lpszName)
' データ読み込み
nRet = ImgGetStillPictureData(hDeviceHandle, pDstBuf)
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
nRet: Integer;
pDstBuf: Pointer;
dwBufSise: DWORD;
begin
lpszName := 'IFIMGCNV1';
hDeviceHandle := ImgOpen(lpszName);
// RGB32bit の出力画像を作成
dwSize := 640*480*4;
pDstBuf := AllocMem(dwSize);
// データ読み込み
nRet := ImgGetStillPictureData(hDeviceHandle, pDstBuf);
© 2003, 2016 Interface Corporation. All rights reserved.
330
GPC-5520 Help for Windows
●Visual C# .NET
IntPtr hDeviceHandle;
int
nRet;
uint
pSrcBuf[307200];
// デバイスオープン
hDeviceHandle = IFCIMG_ANY.ImgOpen("IFIMGCNV1");
// RGB32bit の出力画像を作成
:
// 映像出力端子を静止画出力モードへセット
nRet = IFCIMG_ANY.ImgSetOutputMode(hDeviceHandle,
IFCIMG_ANY.IFIMG_OUTMODE_STILL_PICTURE);
// データ書き込み
nRet = IFCIMG_ANY.ImgGetStillPictureData(hDeviceHandle, pSrcBuf);
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As IntPtr
Dim nRet As Integer
Dim pSrcBuf(307200) As Integer
lpszName = “IFIMGCNV1”
hDeviceHandle = IFCIMG_ANY.ImgOpen(lpszName)
:
' RGB32bit の出力画像を作成
:
' 映像出力端子を静止画出力モードへセット
nRet = IFCIMG_ANY.ImgSetOutputMode(hDeviceHandle,
IFCIMG_ANY.IFIMG_OUTMODE_STILL_PICTURE)
' データ書き込み
nRet = IFCIMG_ANY.ImgGetStillPictureData(hDeviceHandle, pSrcBuf)
© 2003, 2016 Interface Corporation. All rights reserved.
331
GPC-5520 Help for Windows
●Delphi 8
var
lpszName: String;
hDeviceHandle: Integer;
nRet: Integer;
pSrcBuf: array of Cardinal;
dwSize: Cardinal;
begin
lpszName := 'IFIMGCNV1';
hDeviceHandle := IFCIMG.ImgOpen(lpszName);
// RGB32bit 画像領域確保
dwSize := 9216000;
Setlength(pCaptureData, pSrcBuf);
:
// RGB32bit の出力画像を作成
:
// 映像出力端子を静止画出力モードへセット
nRet :=IFCIMG.ImgSetOutputMode(hDeviceHandle, IFCIMG.IFIMG_OUTMODE_STILL_PICTURE);
// データ書き込み
nRet := IFCIMG.ImgGetStillPictureData(hDeviceHandle, pSrcBuf);
デバイス名「IFIMGCNV1」のデバイスに対して、静止画データを読み込みます。
© 2003, 2016 Interface Corporation. All rights reserved.
332
GPC-5520 Help for Windows
42. ImgSetLabelingConfig
ラベリング処理時の 4 連結、8 連結を選択します。
【書式】
●C 言語
INT ImgSetLabelingConfig(
HANDLE
hDeviceHandle,
DWORD
dwConnection
);
//
//
デバイスハンドル
連結方法の選択
●Visual Basic
Declare Function ImgSetLabelingConfig Lib "IfImg.dll"( _
ByVal
hDeviceHandle As Long, _ ‘ デバイスハンドル
ByRef
dwConnection
As Long _ ‘ 連結方法の選択
)As Long
●Delphi
function ImgSetLabelingConfig(
hDeviceHandle:
THandle,
// デバイスハンドル
dwConnection:
DWORD
// 連結方法の選択
): Integer; stdcall; external 'IfImg.dll';
●Visual C# .NET(x86、x64 共用)
[DllImport("IfImg.dll")]
public static extern int ImgSetLabelingConfig(
IntPtr
hDeviceHandle,
// デバイスハンドル
uint
dwConnection
// 連結方法の選択
);
●Visual C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgSetLabelingConfig(
uint
hDeviceHandle,
// デバイスハンドル
uint
dwConnection
// 連結方法の選択
);
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgSetLabelingConfig Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As IntPtr,
‘ デバイスハンドル
RyVal
dwConnection
As Integer
‘ 連結方法の選択
)As Integer
●Visual Basic .NET(x86 専用)
Declare Function ImgSetLabelingConfig Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As Integer,
‘ デバイスハンドル
RyVal
dwConnection
As Integer
‘ 連結方法の選択
)As Integer
© 2003, 2016 Interface Corporation. All rights reserved.
333
GPC-5520 Help for Windows
●Delphi 8
class function ImgSetLabelingConfig(
hDeviceHandle:
Integer;
dwConnection:
Cardinal
): Integer; static;
//
//
デバイスハンドル
連結方法の選択
【パラメータ】
hDeviceHandle
関数で取得したデバイスハンドルを指定してください。
dwConnection
4 連結と 8 連結処理を選択します。
識別子
IFIMG_FOUR_CONNECTION
IFIMG_EIGHT_CONNECTION
値
00000000h
00000001h
意味
4 連結
8 連結
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、
『4.5 戻り値一覧』をご参照くださ
い。
© 2003, 2016 Interface Corporation. All rights reserved.
334
GPC-5520 Help for Windows
●C 言語
HANDLE
hDeviceHandle;
int
nRet;
PBYTE
pSrcBuf;
DWORD
dwBufSise;
IMGCAPSTATUS
Status;
IMGBUFFERINFO
BufInfo;
IMGBINCONFIG BinConf;
hDeviceHandle = ImgOpen("IFIMGLBL1");
// 2 値化設定
BinConf.dwColorIngredient = IFIMG_INGREDIENT_GRAY;
BinConf.dwMaxthreshold = 255;
BinConf.dwMinthreshold = 128;
BinConf.dwBinarizationMode = IFIMG_BINMODE_NORMAL;
nRet = ImgSetBinarizationConfig(hDeviceHandle, &BinConf);
// ラベリングの連結選択
nRet = ImgSetLabelingConfig(hDeviceHandle, IFIMG_EIGHT_CONNECTION);
// 2 値画像領域確保
dwBufSise = 640*480;
pSrcBuf = (PBYTE)malloc(dwBufSise);
// 画像情報を設定
BufInfo.pBufferAddress = pSrcBuf;
BufInfo.dwBufferSize = dwBufSise;
nRet=ImgSetBuffer(hDeviceHandle,&BufInfo, IFIMG_COLOR_LABEL8);
// 1 フレームキャプチャ開始
nRet = ImgStartCapture(hDeviceHandle,1, IFIMG_DMACAPTURE_START);
// 完了まで待つ。
do{
nRet = ImgGetCaptureStatus(hDeviceHandle, &Status);
}while(Status.dwCapture & 0x01);
© 2003, 2016 Interface Corporation. All rights reserved.
335
GPC-5520 Help for Windows
●Visual Basic
Dim lpszName As String
Dim hDeviceHandle As Long
Dim Status As IMGCAPSTATUS
Dim BinConf As IMGBINCONFIG
Dim nRet As Long
Dim buffer(307200) As Byte
Dim buffersize As Long
lpszName = "IFIMGLBL1"
hDeviceHandle = ImgOpen(lpszName)
' 2 値化設定
BinConf.dwColorIngredient = IFIMG_INGREDIENT_GRAY
BinConf.dwMaxthreshold = 255
BinConf.dwMinthreshold = 128
BinConf.dwBinarizationMode = IFIMG_BINMODE_NORMAL
nRet = ImgSetBinarizationConfig(hDeviceHandle, BinConf)
' ラベリングの連結選択
nRet = ImgSetLabelingConfig(hDeviceHandle, IFIMG_EIGHT_CONNECTION)
'2 値画像領域確保
buffersize = 307200
nRet = ImgSetBufferVB(hDeviceHandle, buffer(0), buffersize, IFIMG_COLOR_LABEL8)
' 1 フレームキャプチャ開始
nRet = ImgStartCapture(hDeviceHandle, 1, IFIMG_DMACAPTURE_START)
' キャプチャ完了まで待つ
Do
nRet = ImgGetCaptureStatus(hDeviceHandle, Status)
Loop While Status.dwCapture And &H1
© 2003, 2016 Interface Corporation. All rights reserved.
336
GPC-5520 Help for Windows
●Delphi
var
lpszName: String;
hDeviceHandle: THandle;
nRet: Integer;
pSrcBuf: Pointer;
dwSize: DWORD;
Status: IMGCAPSTATUS;
BufInfo: IMGBUFFERINFO;
BinConf: IMGBINCONFIG;
begin
lpszName := 'IFIMGLBL1';
hDeviceHandle := ImgOpen(lpszName);
BinConf.dwColorIngredient := IFIMG_INGREDIENT_GRAY;
BinConf.dwMaxthreshold := 255;
BinConf.dwMinthreshold := 128;
BinConf.dwBinarizationMode := IFIMG_BINMODE_NORMAL;
nRet := ImgSetBinarizationConfig(hDeviceHandle, BinConf);
// ラベリングの連結選択
nRet := ImgSetLabelingConfig(hDeviceHandle, IFIMG_EIGHT_CONNECTION);
// 2 値画像領域確保
dwSize := 640*480;
pSrcBuf := AllocMem(dwSize);
// 画像情報を設定
BufInfo.pBufferAddress := pSrcBuf;
BufInfo.dwBufferSize := dwSize;
nRet := ImgSetBuffer(hDeviceHandle, BufInfo, IFIMG_COLOR_LABEL8);
// 1 フレームキャプチャ開始
nRet := ImgStartCapture(hDeviceHandle,1, IFIMG_DMACAPTURE_START);
// 完了まで待つ
repeat
nRet := ImgGetCaptureStatus(hDeviceHandle, Status);
until (Status.dwCapture and $01) <> $01;
© 2003, 2016 Interface Corporation. All rights reserved.
337
GPC-5520 Help for Windows
●Visual C# .NET
IntPtr hDeviceHandle;
int
nRet;
IntPtr
pSrcBuf;
uint
dwBufSise;
IFCIMG_ANY.IMGCAPSTATUS
IFCIMG_ANY.IMGBUFFERINFO
IFCIMG_ANY.IMGBINCONFIG
Status;
BufInfo;
BinConf;
hDeviceHandle = IFCIMG_ANY.ImgOpen("IFIMGLBL1");
// 2 値化設定
BinConf.dwColorIngredient = IFCIMG_ANY.IFIMG_INGREDIENT_GRAY;
BinConf.dwMaxthreshold = 255;
BinConf.dwMinthreshold = 128;
BinConf.dwBinarizationMode = IFCIMG_ANY.IFIMG_BINMODE_NORMAL;
nRet = IFCIMG_ANY.ImgSetBinarizationConfig(hDeviceHandle, ref BinConf);
// ラベリングの連結選択
nRet = IFCIMG_ANY.ImgSetLabelingConfig(hDeviceHandle,
IFCIMG_ANY.IFIMG_EIGHT_CONNECTION);
// 2 値画像領域確保
dwBufSise = 640*480;
pSrcBuf = Marshal.AllocCoTaskMem((int)dwBufSise);
// 画像情報を設定
BufInfo.pBufferAddress = pSrcBuf;
BufInfo.dwBufferSize = dwBufSise;
nRet=ImgSetBuffer(hDeviceHandle, ref BufInfo, IFCIMG_ANY.IFIMG_COLOR_LABEL8);
// 1 フレームキャプチャ開始
nRet = IFCIMG_ANY.ImgStartCapture(hDeviceHandle,1,
IFCIMG_ANY.IFIMG_DMACAPTURE_START);
// 完了まで待つ。
do{
nRet = IFCIMG_ANY.ImgGetCaptureStatus(hDeviceHandle, out Status);
}while(Status.dwCapture & 0x01);
© 2003, 2016 Interface Corporation. All rights reserved.
338
GPC-5520 Help for Windows
●Visual Basic .NET
Dim lpszName As String
Dim hDeviceHandle As IntPtr
Dim Status As IFCIMG_ANY.IMGCAPSTATUS
Dim BinConf As IFCIMG_ANY.IMGBINCONFIG
Dim nRet As Intger
Dim buffer(307200) As byte
Dim buffersize As Integer
lpszName = "IFIMGLBL1"
hDeviceHandle = IFCIMG_ANY.ImgOpen(lpszName)
' 2 値化設定
BinConf.dwColorIngredient = IFCIMG_ANY.IFIMG_INGREDIENT_GRAY
BinConf.dwMaxthreshold = 255
BinConf.dwMinthreshold = 128
BinConf.dwBinarizationMode = IFCIMG_ANY.IFIMG_BINMODE_NORMAL
nRet = IFCIMG_ANY.ImgSetBinarizationConfig(hDeviceHandle, BinConf)
' ラベリングの連結選択
nRet = IFCIMG_ANY.ImgSetLabelingConfig(hDeviceHandle,
IFCIMG_ANY.IFIMG_EIGHT_CONNECTION)
'2 値画像領域確保
buffersize = 307200
nRet = IFCIMG_ANY.ImgSetBufferVB(_
hDeviceHandle, buffer, buffersize, IFCIMG_ANY.IFIMG_COLOR_LABEL8)
' 1 フレームキャプチャ開始
nRet = IFCIMG_ANY.ImgStartCapture(hDeviceHandle, 1,
IFCIMG_ANY.IFIMG_DMACAPTURE_START)
' キャプチャ完了まで待つ
Do
nRet = IFCIMG_ANY.ImgGetCaptureStatus(hDeviceHandle, Status)
Loop While Status.dwCapture And &H1
© 2003, 2016 Interface Corporation. All rights reserved.
339
GPC-5520 Help for Windows
●Delphi
var
lpszName: String;
hDeviceHandle: Integer;
nRet: Integer;
pSrcBuf: IntPtr;
dwSize: Integr;
Status: IFCIMG.IMGCAPSTATUS;
BufInfo: IFCIMG.IMGBUFFERINFO;
BinConf: IFCIMG.IMGBINCONFIG;
begin
lpszName := 'IFIMGLBL1';
hDeviceHandle := IFCIMG.ImgOpen(lpszName);
BinConf.dwColorIngredient := IFCIMG.IFIMG_INGREDIENT_GRAY;
BinConf.dwMaxthreshold := 255;
BinConf.dwMinthreshold := 128;
BinConf.dwBinarizationMode := IFCIMG.IFIMG_BINMODE_NORMAL;
nRet := IFCIMG.ImgSetBinarizationConfig(hDeviceHandle, ref BinConf);
// ラベリングの連結選択
nRet := IFCIMG.ImgSetLabelingConfig(hDeviceHandle, IFCIMG.IFIMG_EIGHT_CONNECTION);
// 2 値画像領域確保
dwSize := 640*480;
pSrcBuf := Marshal.AllocHGlobal(dwSize);
// 画像情報を設定
BufInfo.pBufferAddress := pSrcBuf;
BufInfo.dwBufferSize := dwSize;
nRet := IFCIMG.ImgSetBuffer(hDeviceHandle, BufInfo, IFCIMG.IFIMG_COLOR_LABEL8);
// 1 フレームキャプチャ開始
nRet := IFCIMG.ImgStartCapture(hDeviceHandle,1, IFCIMG.IFIMG_DMACAPTURE_START);
// 完了まで待つ
repeat
nRet := IFCIMG.ImgGetCaptureStatus(hDeviceHandle, Status);
until (Status.dwCapture and $01) <> $01;
デバイス名「IFIMGLBL1」のデバイスに対して、ラベリング処理後の画像データをキャプチャ
します。
© 2003, 2016 Interface Corporation. All rights reserved.
340
GPC-5520 Help for Windows
43. ImgGetMeasurementValueLBL
全ラベルか、指定したラベル番号の面積値、重心座標、フェレ径、慣性主軸の角度を取得します。
【書式】
●C 言語
INT ImgGetMeasurementValueLBL(
HANDLE
hDeviceHandle,
PVOID
pSrcData,
DWORD
dwFrameNum,
PDWORD
pdwLabelNum,
PIMGMEASURE pImgMeaSure
);
//
//
//
//
//
デバイスハンドル
DMA 転送先バッファの先頭アドレス
フレーム番号
ラベル番号
IMGMEASURE 構造体
●Visual Basic
Declare Function ImgGetMeasurementValueLBL Lib "IfImg.dll"( _
ByVal
hDeviceHandle, As Long, _
‘ デバイスハンドル
RyRef
pSrcData,
As Any, _
‘ DMA 転送先バッファの
‘ 参照渡し
ByVal
dwFrameNum,
As Long, _
‘ フレーム番号
ByRef
pdwLabelNum,
As Long, _
‘ ラベル番号
ByRef
pImgMeaSure
As IMGMEASURE _ ‘ IMGMEASURE 構造体
)As Long
●Delphi
function ImgGetMeasurementValueLBL (
hDeviceHandle,
THandle;
//
pSrcData,
Pointer;
//
dwFrameNum,
DWORD;
//
var pdwLabelNum, DWORD;
//
var pImgMeaSure IMGMEASURE
//
): Integer; stdcall; external 'IfImg.dll';
デバイスハンドル
DMA 転送先バッファの参照渡し
フレーム番号
ラベル番号
IMGMEASURE 構造体
●Visual C# .NET(x86、x64 共用)
[DllImport("IfImg.dll")]
public static extern int ImgGetMeasurementValueLBL(
IntPtr
hDeviceHandle, // デバイスハンドル
IntPtr
pSrcData,
// DMA 転送先バッファの先頭アドレス
uint
dwFrameNum,
// フレーム番号
out uint
pdwLabelNum,
// ラベル番号
ref IMGMEASURE pMeasure
// IMGMEASURE 構造体
);
© 2003, 2016 Interface Corporation. All rights reserved.
341
GPC-5520 Help for Windows
[DllImport("IfImg.dll")]
public static extern int ImgGetMeasurementValueLBL(
IntPtr
hDeviceHandle, // デバイスハンドル
byte[]
pSrcData,
// DMA 転送先バッファの先頭アドレス
uint
dwFrameNum,
// フレーム番号
out uint
pdwLabelNum,
// ラベル番号
ref IMGMEASURE pMeasure
// IMGMEASURE 構造体
);
[DllImport("IfImg.dll")]
public static extern int ImgGetMeasurementValueLBL(
IntPtr
hDeviceHandle, // デバイスハンドル
short[]
pSrcData,
// DMA 転送先バッファの先頭アドレス
uint
dwFrameNum,
// フレーム番号
out uint
pdwLabelNum,
// ラベル番号
ref IMGMEASURE pMeasure
// IMGMEASURE 構造体
);
[DllImport("IfImg.dll")]
public static extern int ImgGetMeasurementValueLBL(
IntPtr
hDeviceHandle, // デバイスハンドル
uint[]
pSrcData,
// DMA 転送先バッファの先頭アドレス
uint
dwFrameNum,
// フレーム番号
out uint
pdwLabelNum,
// ラベル番号
ref IMGMEASURE pMeasure
// IMGMEASURE 構造体
);
●Visual C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgGetMeasurementValueLBL(
uint
hDeviceHandle, // デバイスハンドル
IntPtr
pSrcData,
// DMA 転送先バッファの先頭アドレス
uint
dwFrameNum,
// フレーム番号
out uint
pdwLabelNum,
// ラベル番号
ref IMGMEASURE pMeasure
// IMGMEASURE 構造体
);
[DllImport("IfImg.dll")]
public static extern int ImgGetMeasurementValueLBL(
uint
hDeviceHandle, // デバイスハンドル
byte[]
pSrcData,
// DMA 転送先バッファの先頭アドレス
uint
dwFrameNum,
// フレーム番号
out uint
pdwLabelNum,
// ラベル番号
ref IMGMEASURE pMeasure
// IMGMEASURE 構造体
);
© 2003, 2016 Interface Corporation. All rights reserved.
342
GPC-5520 Help for Windows
[DllImport("IfImg.dll")]
public static extern int ImgGetMeasurementValueLBL(
uint
hDeviceHandle, // デバイスハンドル
short[]
pSrcData,
// DMA 転送先バッファの先頭アドレス
uint
dwFrameNum,
// フレーム番号
out uint
pdwLabelNum,
// ラベル番号
ref IMGMEASURE pMeasure
// IMGMEASURE 構造体
);
[DllImport("IfImg.dll")]
public static extern int ImgGetMeasurementValueLBL(
uint
hDeviceHandle, // デバイスハンドル
uint[]
pSrcData,
// DMA 転送先バッファの先頭アドレス
uint
dwFrameNum,
// フレーム番号
out uint
pdwLabelNum,
// ラベル番号
ref IMGMEASURE pMeasure
// IMGMEASURE 構造体
);
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgGetMeasurementValueLBL
ByVal
hDeviceHandle, As IntPtr,
RyVal
pSrcData,
As IntPtr,
ByVal
dwFrameNum,
As Integer,
ByRef
pdwLabelNum,
As Integer,
ByRef
pImgMeaSure
As IMGMEASURE
) As Integer
Lib "IfImg.DLL"(
‘ デバイスハンドル
‘ DMA 転送先バッファの参照渡し
‘ フレーム番号
‘ ラベル番号
‘ IMGMEASURE 構造体
Declare Function ImgGetMeasurementValueLBL
ByVal
hDeviceHandle, As IntPtr,
RyVal
pSrcData( ),
As Byte,
ByVal
dwFrameNum,
As Integer,
ByRef
pdwLabelNum,
As Integer,
ByRef
pImgMeaSure
As IMGMEASURE
) As Integer
Lib "IfImg.DLL"(
‘ デバイスハンドル
‘ DMA 転送先バッファの参照渡し
‘ フレーム番号
‘ ラベル番号
‘ IMGMEASURE 構造体
Declare Function ImgGetMeasurementValueLBL
ByVal
hDeviceHandle, As IntPtr,
RyVal
pSrcData( ),
As Short,
ByVal
dwFrameNum,
As Integer,
ByRef
pdwLabelNum,
As Integer,
ByRef
pImgMeaSure
As IMGMEASURE
) As Integer
Lib "IfImg.DLL"(
‘ デバイスハンドル
‘ DMA 転送先バッファの参照渡し
‘ フレーム番号
‘ ラベル番号
‘ IMGMEASURE 構造体
© 2003, 2016 Interface Corporation. All rights reserved.
343
GPC-5520 Help for Windows
Declare Function ImgGetMeasurementValueLBL
ByVal
hDeviceHandle, As IntPtr,
RyVal
pSrcData( ),
As Integer,
ByVal
dwFrameNum,
As Integer,
ByRef
pdwLabelNum,
As Integer,
ByRef
pImgMeaSure
As IMGMEASURE
) As Integer
●Visual Basic .NET(x86 専用)
Declare Function ImgGetMeasurementValueLBL
ByVal
hDeviceHandle, As Integer,
RyRef
pSrcData,
As IntPtr,
ByVal
dwFrameNum,
As Integer,
ByRef
pdwLabelNum,
As Integer,
ByRef
pImgMeaSure
As IMGMEASURE
) As Integer
Lib "IfImg.DLL"(
‘ デバイスハンドル
‘ DMA 転送先バッファの参照渡し
‘ フレーム番号
‘ ラベル番号
‘ IMGMEASURE 構造体
Lib "IfImg.DLL"(
‘ デバイスハンドル
‘ DMA 転送先バッファの参照渡し
‘ フレーム番号
‘ ラベル番号
‘ IMGMEASURE 構造体
Declare Function ImgGetMeasurementValueLBL
ByVal
hDeviceHandle, As Integer,
RyVal
pSrcData( ),
As Byte,
ByVal
dwFrameNum,
As Integer,
ByRef
pdwLabelNum,
As Integer,
ByRef
pImgMeaSure
As IMGMEASURE
) As Integer
Lib "IfImg.DLL"(
‘ デバイスハンドル
‘ DMA 転送先バッファの参照渡し
‘ フレーム番号
‘ ラベル番号
‘ IMGMEASURE 構造体
Declare Function ImgGetMeasurementValueLBL
ByVal
hDeviceHandle, As Integer,
RyVal
pSrcData( ),
As Short,
ByVal
dwFrameNum,
As Integer,
ByRef
pdwLabelNum,
As Integer,
ByRef
pImgMeaSure
As IMGMEASURE
) As Integer
Lib "IfImg.DLL"(
‘ デバイスハンドル
‘ DMA 転送先バッファの参照渡し
‘ フレーム番号
‘ ラベル番号
‘ IMGMEASURE 構造体
Declare Function ImgGetMeasurementValueLBL
ByVal
hDeviceHandle, As Integer,
RyVal
pSrcData( ),
As Integer,
ByVal
dwFrameNum,
As Integer,
ByRef
pdwLabelNum,
As Integer,
ByRef
pImgMeaSure
As IMGMEASURE
) As Integer
Lib "IfImg.DLL"(
‘ デバイスハンドル
‘ DMA 転送先バッファの参照渡し
‘ フレーム番号
‘ ラベル番号
‘ IMGMEASURE 構造体
© 2003, 2016 Interface Corporation. All rights reserved.
344
GPC-5520 Help for Windows
●Delphi 8
class function ImgGetMeasurementValueLBL (
hDeviceHandle,
Integer;
// デバイスハンドル
pSrcData,
IntPtr;
// DMA 転送先バッファの参照渡し
dwFrameNum,
Cardinal;
// フレーム番号
var pdwLabelNum, Cardinal;
// ラベル番号
var pImgMeaSure IMGMEASURE
// IMGMEASURE 構造体
): Integer; static;
class function ImgGetMeasurementValueLBL (
hDeviceHandle,
Integer;
// デバイスハンドル
pSrcData,
array of Byte;
// DMA 転送先バッファの参照渡し
dwFrameNum,
Cardinal;
// フレーム番号
var pdwLabelNum, Cardinal;
// ラベル番号
var pImgMeaSure IMGMEASURE
// IMGMEASURE 構造体
): Integer; static;
class function ImgGetMeasurementValueLBL (
hDeviceHandle,
Integer;
// デバイスハンドル
pSrcData,
array of Word;
// DMA 転送先バッファの参照渡し
dwFrameNum,
Cardinal;
// フレーム番号
var pdwLabelNum, Cardinal;
// ラベル番号
var pImgMeaSure IMGMEASURE
// IMGMEASURE 構造体
): Integer; static;
class function ImgGetMeasurementValueLBL (
hDeviceHandle,
Integer;
// デバイスハンドル
pSrcData,
array of Cardinal; // DMA 転送先バッファの参照渡し
dwFrameNum,
Cardinal;
// フレーム番号
var pdwLabelNum, Cardinal;
// ラベル番号
var pImgMeaSure IMGMEASURE
// IMGMEASURE 構造体
): Integer; static;
【パラメータ】
hDeviceHandle
ImgOpen関数で取得したデバイスハンドルを指定してください。
pSrcData
ImgSetBuffer 関数(もしくは ImgSetBufferVB 関数)で指定した転送先バッファの先頭アド
レスを指定します。
x64 環境で使用する場合、ImgGetMemPtrValue 関数で取得した先頭アドレスを指定します。
dwFrameNum
フレーム番号を指定します。
© 2003, 2016 Interface Corporation. All rights reserved.
345
GPC-5520 Help for Windows
pdwLabelNum
取得したいラベル番号を格納している変数の先頭アドレスを指定します。
変数に 1~63 を格納した場合、そのラベル番号の画像計測結果を取得します。
64 以上を格納した場合は、実際の画像処理結果後の最大ラベル番号を取得します。
さらに、変数に格納したラベル番号が、最大ラベル番号を超えていた場合、その最大ラベ
ル番号が変数に格納されます。
pMeaSure
IMGMEASURE 構造体へのポインタを指定してください。
pdwLabelNum で指定したラベル番号に対する画像処理結果が可能されます。
全てのブロックの画像処理結果を欲しい場合、pdwLabelNum で指示する変数に 64 以上の値
を格納して、pMeaSure には要素数が 64 の構造体配列の先頭ポインタ(参照渡し)を指定し
てください。
構造体の説明については、『4.4 構造体』をご参照ください。
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、
『4.5 戻り値一覧』をご参照くださ
い。
© 2003, 2016 Interface Corporation. All rights reserved.
346
GPC-5520 Help for Windows
【使用例】
●C 言語(x86)
HANDLE
hDeviceHandle;
int
nRet;
PBYTE
pSrcBuf;
DWORD
dwBufSise;
IMGCAPSTATUS
Status;
IMGBUFFERINFO
BufInfo;
IMGBINCONFIG BinConf;
IMGMEASURE pMeasure[64];
DWORD
dwLblNum;
hDeviceHandle = ImgOpen("IFIMGLBL1");
// 2 値化設定
BinConf.dwColorIngredient = IFIMG_INGREDIENT_GRAY;
BinConf.dwMaxthreshold = 255;
BinConf.dwMinthreshold = 128;
BinConf.dwBinarizationMode = IFIMG_BINMODE_NORMAL;
nRet = ImgSetBinarizationConfig(hDeviceHandle, &BinConf);
// ラベリングの連結選択
nRet = ImgSetLabelingConfig(hDeviceHandle, IFIMG_EIGHT_CONNECTION);
// ラベル画像のサイズ
dwBufSise = 640*480;
// ラベル数(4Byte)、面積値(256byte)、ΣX とΣY(512Byte)、フェレ径(512byte)、
// ΣX2、ΣXY、ΣY2 (1536byte)のサイズ
dwBufSise = dwBufSise + 4 + 256 + 512 + 512 + 1536;
pSrcBuf = (PBYTE)malloc(dwBufSise);
// 画像情報を設定
BufInfo.pBufferAddress = pSrcBuf;
BufInfo.dwBufferSize = dwBufSise;
nRet=ImgSetBuffer(hDeviceHandle,&BufInfo,
IFIMG_COLOR_LABEL8 + IFIMG_MEASUEMENT_LBLCNT + IFIMG_MEASUEMENT_AREA
+
IFIMG_MEASUEMENT_GRV
+
IFIMG_MEASUEMENT_FERE
IFIMG_MEASUEMENT_ELLIPSE
);
// 1 フレームキャプチャ開始
nRet = ImgStartCapture(hDeviceHandle,1, IFIMG_DMACAPTURE_START);
// 完了まで待つ。
do{
nRet = ImgGetCaptureStatus(hDeviceHandle, &Status);
}while(Status.dwCapture & 0x01);
© 2003, 2016 Interface Corporation. All rights reserved.
347
+
GPC-5520 Help for Windows
dwLblNum = 64;
// 全ラベルの面積値、重心値、フェレ径、慣性等価楕円の傾き角の取得
nRet = ImgGetMeasurementValueLBL(hDeviceHandle, pSrcBuf, 1,&dwLblNum, pMeasure);
●C 言語(x64)
HANDLE
hDeviceHandle;
int
nRet;
PBYTE
pSrcBuf;
DWORD
dwBufSise;
IMGCAPSTATUS
Status;
IMGBUFFERINFO
BufInfo;
IMGBINCONFIG BinConf;
IMGMEASURE pMeasure[64];
DWORD
dwLblNum;
hDeviceHandle = ImgOpen("IFIMGLBL1");
// 2 値化設定
BinConf.dwColorIngredient = IFIMG_INGREDIENT_GRAY;
BinConf.dwMaxthreshold = 255;
BinConf.dwMinthreshold = 128;
BinConf.dwBinarizationMode = IFIMG_BINMODE_NORMAL;
nRet = ImgSetBinarizationConfig(hDeviceHandle, &BinConf);
// ラベリングの連結選択
nRet = ImgSetLabelingConfig(hDeviceHandle, IFIMG_EIGHT_CONNECTION);
// ラベル画像のサイズ
dwBufSise = 640*480;
// ラベル数(4Byte)、面積値(256byte)、ΣX とΣY(512Byte)、フェレ径(512byte)、
// ΣX2、ΣXY、ΣY2 (1536byte)のサイズ
dwBufSise = dwBufSise + 4 + 256 + 512 + 512 + 1536;
// 画像情報を設定
BufInfo.pBufferAddress = (PVOID)-1;
BufInfo.dwBufferSize = dwBufSise;
nRet=ImgSetBuffer(hDeviceHandle,&BufInfo,
IFIMG_COLOR_LABEL8 + IFIMG_MEASUEMENT_LBLCNT + IFIMG_MEASUEMENT_AREA
+
IFIMG_MEASUEMENT_GRV
+
IFIMG_MEASUEMENT_FERE
IFIMG_MEASUEMENT_ELLIPSE
);
nRet = ImgGetMemPtrValue(DeviceHandle, &pSrcBuf);
// 1 フレームキャプチャ開始
nRet = ImgStartCapture(hDeviceHandle,1, IFIMG_DMACAPTURE_START);
// 完了まで待つ。
© 2003, 2016 Interface Corporation. All rights reserved.
348
+
GPC-5520 Help for Windows
do{
nRet = ImgGetCaptureStatus(hDeviceHandle, &Status);
}while(Status.dwCapture & 0x01);
dwLblNum = 64;
// 全ラベルの面積値、重心値、フェレ径、慣性等価楕円の傾き角の取得
nRet = ImgGetMeasurementValueLBL(hDeviceHandle, pSrcBuf, 1,&dwLblNum, pMeasure);
© 2003, 2016 Interface Corporation. All rights reserved.
349
GPC-5520 Help for Windows
●Visual Basic(x86)
Dim lpszName As String
Dim hDeviceHandle As Long
Dim Status As IMGCAPSTATUS
Dim BinConf As IMGBINCONFIG
Dim nRet As Long
Dim buffer(307200) As Byte
Dim buffersize As Long
Dim pMeasure(64) As IMGMEASURE
Dim LblNum As Long
lpszName = "IFIMGLBL1"
hDeviceHandle = ImgOpen(lpszName)
' 2 値化設定
BinConf.dwColorIngredient = IFIMG_INGREDIENT_GRAY
BinConf.dwMaxthreshold = 255
BinConf.dwMinthreshold = 128
BinConf.dwBinarizationMode = IFIMG_BINMODE_NORMAL
nRet = ImgSetBinarizationConfig(hDeviceHandle, BinConf)
' ラベリングの連結選択
nRet = ImgSetLabelingConfig(hDeviceHandle, IFIMG_EIGHT_CONNECTION)
' ラベル画像のサイズ
buffersize = 640*480
' ラベル数(4Byte)、面積値(256byte)、ΣX とΣY(512Byte)、フェレ径(512byte)、
' ΣX2、ΣXY、ΣY2 (1536byte)のサイズ
buffersize = buffersize + 4 + 256 + 512 + 512 + 1536
nRet = ImgSetBufferVB(hDeviceHandle, buffer(0), buffersize, _
IFIMG_COLOR_LABEL8 + IFIMG_MEASUEMENT_LBLCNT + IFIMG_MEASUEMENT_AREA _
+
IFIMG_MEASUEMENT_GRV
+
IFIMG_MEASUEMENT_FERE
IFIMG_MEASUEMENT_ELLIPSE)
+
' 1 フレームキャプチャ開始
nRet = ImgStartCapture(hDeviceHandle, 1, IFIMG_DMACAPTURE_START)
' キャプチャ完了まで待つ
Do
nRet = ImgGetCaptureStatus(hDeviceHandle, Status)
Loop While Status.dwCapture And &H1
LblNum = 64
‘ 全ラベルの面積値、重心値、フェレ径、慣性等価楕円の傾き角の取得
nRet = ImgGetMeasurementValueLBL(hDeviceHandle, buffer(0), 1, LblNum, pMeasure(0))
© 2003, 2016 Interface Corporation. All rights reserved.
350
GPC-5520 Help for Windows
●Visual Basic(x64)
Dim lpszName As String
Dim hDeviceHandle As Long
Dim Status As IMGCAPSTATUS
Dim BinConf As IMGBINCONFIG
Dim nRet As Long
Dim buffer As Long
Dim buffersize As Long
Dim pMeasure(64) As IMGMEASURE
Dim LblNum As Long
lpszName = "IFIMGLBL1"
hDeviceHandle = ImgOpen(lpszName)
' 2 値化設定
BinConf.dwColorIngredient = IFIMG_INGREDIENT_GRAY
BinConf.dwMaxthreshold = 255
BinConf.dwMinthreshold = 128
BinConf.dwBinarizationMode = IFIMG_BINMODE_NORMAL
nRet = ImgSetBinarizationConfig(hDeviceHandle, BinConf)
' ラベリングの連結選択
nRet = ImgSetLabelingConfig(hDeviceHandle, IFIMG_EIGHT_CONNECTION)
' ラベル画像のサイズ
buffersize = 640*480
' ラベル数(4Byte)、面積値(256byte)、ΣX とΣY(512Byte)、フェレ径(512byte)、
' ΣX2、ΣXY、ΣY2 (1536byte)のサイズ
buffersize = buffersize + 4 + 256 + 512 + 512 + 1536
nRet = ImgSetBufferVB(hDeviceHandle, ByVal -1, buffersize, _
IFIMG_COLOR_LABEL8 + IFIMG_MEASUEMENT_LBLCNT + IFIMG_MEASUEMENT_AREA _
+
IFIMG_MEASUEMENT_GRV
+
IFIMG_MEASUEMENT_FERE
IFIMG_MEASUEMENT_ELLIPSE)
nRet = ImgGetMemPtrValue(hDeviceHandle, buffer)
' 1 フレームキャプチャ開始
nRet = ImgStartCapture(hDeviceHandle, 1, IFIMG_DMACAPTURE_START)
' キャプチャ完了まで待つ
Do
nRet = ImgGetCaptureStatus(hDeviceHandle, Status)
Loop While Status.dwCapture And &H1
LblNum = 64
‘ 全ラベルの面積値、重心値、フェレ径、慣性等価楕円の傾き角の取得
nRet = ImgGetMeasurementValueLBL(hDeviceHandle, buffer, 1, LblNum, pMeasure(0))
© 2003, 2016 Interface Corporation. All rights reserved.
351
+
GPC-5520 Help for Windows
●Delphi(x86)
var
lpszName: String;
hDeviceHandle: THandle;
nRet: Integer;
pSrcBuf: Pointer;
dwSize: DWORD;
Status: IMGCAPSTATUS;
BufInfo: IMGBUFFERINFO;
BinConf: IMGBINCONFIG;
pMeasure: array[0..63] of IMGMEASURE;
dwLblNum: DWORD;
begin
lpszName := 'IFIMGLBL1';
hDeviceHandle := ImgOpen(lpszName);
BinConf.dwColorIngredient := IFIMG_INGREDIENT_GRAY;
BinConf.dwMaxthreshold := 255;
BinConf.dwMinthreshold := 128;
BinConf.dwBinarizationMode := IFIMG_BINMODE_NORMAL;
nRet := ImgSetBinarizationConfig(hDeviceHandle, BinConf);
// ラベリングの連結選択
nRet := ImgSetLabelingConfig(hDeviceHandle, IFIMG_EIGHT_CONNECTION);
// ラベル画像のサイズ
dwSize := 640*480;
// ラベル数(4Byte)、面積値(256byte)、ΣX とΣY(512Byte)、フェレ径(512byte)、
// ΣX2、ΣXY、ΣY2 (1536byte)のサイズ
dwSize := dwSize + 4 + 256 + 512 + 512 + 1536;
pSrcBuf := AllocMem(dwSize);
// 画像情報を設定
BufInfo.pBufferAddress := pSrcBuf;
BufInfo.dwBufferSize := dwSize;
nRet := ImgSetBuffer(hDeviceHandle, BufInfo,
IFIMG_COLOR_LABEL8 + IFIMG_MEASUEMENT_LBLCNT + IFIMG_MEASUEMENT_AREA
+
IFIMG_MEASUEMENT_GRV
+
IFIMG_MEASUEMENT_FERE
IFIMG_MEASUEMENT_ELLIPSE
);
// 1 フレームキャプチャ開始
nRet := ImgStartCapture(hDeviceHandle,1, IFIMG_DMACAPTURE_START);
// 完了まで待つ
© 2003, 2016 Interface Corporation. All rights reserved.
352
+
GPC-5520 Help for Windows
repeat
nRet := ImgGetCaptureStatus(hDeviceHandle, Status);
until (Status.dwCapture and $01) <> $01;
dwLblNum := 64;
// 全ラベルの面積値、重心値、フェレ径、慣性等価楕円の傾き角の取得
nRet := ImgGetMeasurementValueLBL(hDeviceHandle, pSrcBuf ,1, dwLblNum, pMeasure[0]);
●Delphi(x64)
var
lpszName: String;
hDeviceHandle: THandle;
nRet: Integer;
pSrcBuf: Pointer;
dwSize: DWORD;
Status: IMGCAPSTATUS;
BufInfo: IMGBUFFERINFO;
BinConf: IMGBINCONFIG;
pMeasure: array[0..63] of IMGMEASURE;
dwLblNum: DWORD;
begin
lpszName := 'IFIMGLBL1';
hDeviceHandle := ImgOpen(lpszName);
BinConf.dwColorIngredient := IFIMG_INGREDIENT_GRAY;
BinConf.dwMaxthreshold := 255;
BinConf.dwMinthreshold := 128;
BinConf.dwBinarizationMode := IFIMG_BINMODE_NORMAL;
nRet := ImgSetBinarizationConfig(hDeviceHandle, BinConf);
// ラベリングの連結選択
nRet := ImgSetLabelingConfig(hDeviceHandle, IFIMG_EIGHT_CONNECTION);
// ラベル画像のサイズ
dwSize := 640*480;
// ラベル数(4Byte)、面積値(256byte)、ΣX とΣY(512Byte)、フェレ径(512byte)、
// ΣX2、ΣXY、ΣY2 (1536byte)のサイズ
dwSize := dwSize + 4 + 256 + 512 + 512 + 1536;
// 画像情報を設定
BufInfo.pBufferAddress := Pointer(-1);
BufInfo.dwBufferSize := dwSize;
nRet := ImgSetBuffer(hDeviceHandle, BufInfo,
IFIMG_COLOR_LABEL8 + IFIMG_MEASUEMENT_LBLCNT + IFIMG_MEASUEMENT_AREA
+
IFIMG_MEASUEMENT_GRV
+
IFIMG_MEASUEMENT_FERE
IFIMG_MEASUEMENT_ELLIPSE
);
© 2003, 2016 Interface Corporation. All rights reserved.
353
+
GPC-5520 Help for Windows
nRet = ImgGetMemPtrValue(hDeviceHandle, pSrcBuf)
// 1 フレームキャプチャ開始
nRet := ImgStartCapture(hDeviceHandle,1, IFIMG_DMACAPTURE_START);
// 完了まで待つ
repeat
nRet := ImgGetCaptureStatus(hDeviceHandle, Status);
until (Status.dwCapture and $01) <> $01;
dwLblNum := 64;
// 全ラベルの面積値、重心値、フェレ径、慣性等価楕円の傾き角の取得
nRet := ImgGetMeasurementValueLBL(hDeviceHandle, pSrcBuf ,1, dwLblNum, pMeasure[0]);
●Visual C# .NET(x86)
IntPtr hDeviceHandle;
int
nRet;
IntPtr pSrcBuf;
uint
dwBufSize;
IFCIMG_ANY.IMGCAPSTATUS Status;
IFCIMG_ANY.IMGBUFFERINFO BufInfo;
IFCIMG_ANY.IMGBINCONFIG BinConf;
IFCIMG_ANY.IMGMEASURE pMeasure[64];
uint
dwLblNum;
hDeviceHandle = IFCIMG_ANY.ImgOpen("IFIMGLBL1");
// 2 値化設定
BinConf.dwColorIngredient = IFCIMG_ANY.IFIMG_INGREDIENT_GRAY;
BinConf.dwMaxthreshold = 255;
BinConf.dwMinthreshold = 128;
BinConf.dwBinarizationMode = IFCIMG_ANY.IFIMG_BINMODE_NORMAL;
nRet = IFCIMG_ANY.ImgSetBinarizationConfig(hDeviceHandle, ref BinConf);
// ラベリングの連結選択
nRet = IFCIMG_ANY.ImgSetLabelingConfig(hDeviceHandle,
IFCIMG_ANY.IFIMG_EIGHT_CONNECTION);
// ラベル画像のサイズ
dwBufSize = 640*480;
// ラベル数(4Byte)、面積値(256byte)、ΣX とΣY(512Byte)、フェレ径(512byte)、
// ΣX2、ΣXY、ΣY2 (1536byte)のサイズ
dwBufSize += 4 + 256 + 512 + 512 + 1536;
pSrcBuf = Marshal.AllocCoTaskMem((int) dwBufSize);
// 画像情報を設定
BufInfo.pBufferAddress = pSrcBuf;
BufInfo.dwBufferSize = dwBufSize;
© 2003, 2016 Interface Corporation. All rights reserved.
354
GPC-5520 Help for Windows
nRet=ImgSetBuffer(hDeviceHandle, ref BufInfo,
IFCIMG_ANY.IFIMG_COLOR_LABEL8 + IFCIMG_ANY.IFIMG_MEASUEMENT_LBLCNT
+ IFCIMG_ANY.IFIMG_MEASUEMENT_AREA + IFCIMG_ANY.IFIMG_MEASUEMENT_GRV
+ IFCIMG_ANY.IFIMG_MEASUEMENT_FERE + IFCIMG_ANY.IFIMG_MEASUEMENT_ELLIPSE
);
// 1 フレームキャプチャ開始
nRet = IFCIMG_ANY.ImgStartCapture(hDeviceHandle,1,
IFCIMG_ANY.IFIMG_DMACAPTURE_START);
// 完了まで待つ。
do{
nRet = IFCIMG_ANY.ImgGetCaptureStatus(hDeviceHandle, ref Status);
}while(Status.dwCapture & 0x01);
dwLblNum = 64;
// 全ラベルの面積値、重心値、フェレ径、慣性等価楕円の傾き角の取得
nRet = IFCIMG_ANY.ImgGetMeasurementValueLBL(hDeviceHandle,1, ref dwLblNum, ref
pMeasure);
●Visual C# .NET(x64)
IntPtr hDeviceHandle;
int
nRet;
IntPtr pSrcBuf;
uint
dwBufSize;
IFCIMG_ANY.IMGCAPSTATUS Status;
IFCIMG_ANY.IMGBUFFERINFO BufInfo;
IFCIMG_ANY.IMGBINCONFIG BinConf;
IFCIMG_ANY.IMGMEASURE pMeasure[64];
uint
dwLblNum;
hDeviceHandle = IFCIMG_ANY.ImgOpen("IFIMGLBL1");
// 2 値化設定
BinConf.dwColorIngredient = IFCIMG_ANY.IFIMG_INGREDIENT_GRAY;
BinConf.dwMaxthreshold = 255;
BinConf.dwMinthreshold = 128;
BinConf.dwBinarizationMode = IFCIMG_ANY.IFIMG_BINMODE_NORMAL;
nRet = IFCIMG_ANY.ImgSetBinarizationConfig(hDeviceHandle, ref BinConf);
// ラベリングの連結選択
nRet = IFCIMG_ANY.ImgSetLabelingConfig(hDeviceHandle,
IFCIMG_ANY.IFIMG_EIGHT_CONNECTION);
// ラベル画像のサイズ
dwBufSise = 640*480;
// ラベル数(4Byte)、面積値(256byte)、ΣX とΣY(512Byte)、フェレ径(512byte)、
// ΣX2、ΣXY、ΣY2 (1536byte)のサイズ
© 2003, 2016 Interface Corporation. All rights reserved.
355
GPC-5520 Help for Windows
dwBufSize += 4 + 256 + 512 + 512 + 1536;
// 画像情報を設定
BufInfo.pBufferAddress = new IntPtr(-1);
BufInfo.dwBufferSize = dwBufSize;
nRet = ImgSetBuffer(hDeviceHandle, ref BufInfo,
IFCIMG_ANY.IFIMG_COLOR_LABEL8 + IFCIMG_ANY.IFIMG_MEASUEMENT_LBLCNT
+ IFCIMG_ANY.IFIMG_MEASUEMENT_AREA + IFCIMG_ANY.IFIMG_MEASUEMENT_GRV
+ IFCIMG_ANY.IFIMG_MEASUEMENT_FERE + IFCIMG_ANY.IFIMG_MEASUEMENT_ELLIPSE
);
nRet = IFCIMG_ANY.ImgGetMemPtrValue(hDeviceHandle, out pSrcBuf);
// 1 フレームキャプチャ開始
nRet = IFCIMG_ANY.ImgStartCapture(hDeviceHandle,1,
IFCIMG_ANY.IFIMG_DMACAPTURE_START);
// 完了まで待つ。
do{
nRet = IFCIMG_ANY.ImgGetCaptureStatus(hDeviceHandle, ref Status);
}while(Status.dwCapture & 0x01);
dwLblNum = 64;
// 全ラベルの面積値、重心値、フェレ径、慣性等価楕円の傾き角の取得
nRet = IFCIMG_ANY.ImgGetMeasurementValueLBL(hDeviceHandle, pSrcBuf, 1, ref dwLblNum,
ref pMeasure);
© 2003, 2016 Interface Corporation. All rights reserved.
356
GPC-5520 Help for Windows
●Visual Basic .NET(x86)
Dim lpszName As String
Dim hDeviceHandle As IntPtr
Dim Status As IFCIMG_ANY.IMGCAPSTATUS
Dim BinConf As IFCIMG_ANY.IMGBINCONFIG
Dim nRet As Integer
Dim buffer(307200) As byte
Dim buffersize As Integer
Dim pMeasure(64) As IFCIMG_ANY.IMGMEASURE
Dim LblNum As Integer
lpszName = "IFIMGLBL1"
hDeviceHandle = IFCIMG_ANY.ImgOpen(lpszName)
' 2 値化設定
BinConf.dwColorIngredient = IFCIMG_ANY.IFIMG_INGREDIENT_GRAY
BinConf.dwMaxthreshold = 255
BinConf.dwMinthreshold = 128
BinConf.dwBinarizationMode = IFCIMG_ANY.IFIMG_BINMODE_NORMAL
nRet = IFCIMG_ANY.ImgSetBinarizationConfig(hDeviceHandle, BinConf)
' ラベリングの連結選択
nRet = IFCIMG_ANY.ImgSetLabelingConfig(hDeviceHandle,
IFCIMG_ANY.IFIMG_EIGHT_CONNECTION)
' ラベル画像のサイズ
buffersize = 640*480
' ラベル数(4Byte)、面積値(256byte)、ΣX とΣY(512Byte)、フェレ径(512byte)、
' ΣX2、ΣXY、ΣY2 (1536byte)のサイズ
buffersize = buffersize + 4 + 256 + 512 + 512 + 1536
nRet = IFCIMG_ANY.ImgSetBufferVB(hDeviceHandle, buffer(0), buffersize, _
IFCIMG_ANY.IFIMG_COLOR_LABEL8 + IFCIMG_ANY.IFIMG_MEASUEMENT_LBLCNT_
+ IFCIMG_ANY.IFIMG_MEASUEMENT_AREA + IFCIMG_ANY.IFIMG_MEASUEMENT_GRV_
+ IFCIMG_ANY.IFIMG_MEASUEMENT_FERE + IFCIMG_ANY.IFIMG_MEASUEMENT_ELLIPSE)
' 1 フレームキャプチャ開始
nRet = IFCIMG_ANY.ImgStartCapture(hDeviceHandle, 1,
IFCIMG_ANY.IFIMG_DMACAPTURE_START)
' キャプチャ完了まで待つ
Do
nRet = IFCIMG_ANY.ImgGetCaptureStatus(hDeviceHandle, Status)
Loop While Status.dwCapture And &H1
LblNum = 64
‘ 全ラベルの面積値、重心値、フェレ径、慣性等価楕円の傾き角の取得
nRet = IFCIMG_ANY.ImgGetMeasurementValueLBL(hDeviceHandle, buffer(0), 1,_
© 2003, 2016 Interface Corporation. All rights reserved.
357
GPC-5520 Help for Windows
LblNum, pMeasure(0))
●Visual Basic .NET(x64)
Dim lpszName As String
Dim hDeviceHandle As IntPtr
Dim Status As IFCIMG_ANY.IMGCAPSTATUS
Dim BinConf As IFCIMG_ANY.IMGBINCONFIG
Dim nRet As Integer
Dim buffer As IntPtr
Dim buffersize As Integer
Dim pMeasure(64) As IFCIMG_ANY.IMGMEASURE
Dim LblNum As Integer
lpszName = "IFIMGLBL1"
hDeviceHandle = IFCIMG_ANY.ImgOpen(lpszName)
' 2 値化設定
BinConf.dwColorIngredient = IFCIMG_ANY.IFIMG_INGREDIENT_GRAY
BinConf.dwMaxthreshold = 255
BinConf.dwMinthreshold = 128
BinConf.dwBinarizationMode = IFCIMG_ANY.IFIMG_BINMODE_NORMAL
nRet = IFCIMG_ANY.ImgSetBinarizationConfig(hDeviceHandle, BinConf)
' ラベリングの連結選択
nRet = IFCIMG_ANY.ImgSetLabelingConfig(hDeviceHandle,
IFCIMG_ANY.IFIMG_EIGHT_CONNECTION)
' ラベル画像のサイズ
buffersize = 640*480
' ラベル数(4Byte)、面積値(256byte)、ΣX とΣY(512Byte)、フェレ径(512byte)、
' ΣX2、ΣXY、ΣY2 (1536byte)のサイズ
buffersize = buffersize + 4 + 256 + 512 + 512 + 1536
nRet = IFCIMG_ANY.ImgSetBufferVB(hDeviceHandle, New IntPtr(-1), buffersize, _
IFCIMG_ANY.IFIMG_COLOR_LABEL8 + IFCIMG_ANY.IFIMG_MEASUEMENT_LBLCNT_
+ IFCIMG_ANY.IFIMG_MEASUEMENT_AREA + IFCIMG_ANY.IFIMG_MEASUEMENT_GRV_
+ IFCIMG_ANY.IFIMG_MEASUEMENT_FERE + IFCIMG_ANY.IFIMG_MEASUEMENT_ELLIPSE)
nRet = IFCIMG_ANY.ImgGetMemPtrValue(hDeviceHandle, buffer)
' 1 フレームキャプチャ開始
nRet = IFCIMG_ANY.ImgStartCapture(hDeviceHandle, 1,
IFCIMG_ANY.IFIMG_DMACAPTURE_START)
' キャプチャ完了まで待つ
Do
nRet = IFCIMG_ANY.ImgGetCaptureStatus(hDeviceHandle, Status)
© 2003, 2016 Interface Corporation. All rights reserved.
358
GPC-5520 Help for Windows
Loop While Status.dwCapture And &H1
LblNum = 64
‘ 全ラベルの面積値、重心値、フェレ径、慣性等価楕円の傾き角の取得
nRet = IFCIMG_ANY.ImgGetMeasurementValueLBL(hDeviceHandle, buffer, 1,_
LblNum, pMeasure(0))
© 2003, 2016 Interface Corporation. All rights reserved.
359
GPC-5520 Help for Windows
●Delphi 8
var
lpszName: String;
hDeviceHandle: Integer;
nRet: Integer;
pSrcBuf: IntPtr;
dwSize: Integer;
Status: IFCIMG.IMGCAPSTATUS;
BufInfo: IFCIMG.IMGBUFFERINFO;
BinConf: IFCIMG.IMGBINCONFIG;
pMeasure: array[0..63] of IFCIMG.IMGMEASURE;
dwLblNum: Cardinal;
begin
lpszName := 'IFIMGLBL1';
hDeviceHandle := IFCIMG.ImgOpen(lpszName);
BinConf.dwColorIngredient := IFCIMG.IFIMG_INGREDIENT_GRAY;
BinConf.dwMaxthreshold := 255;
BinConf.dwMinthreshold := 128;
BinConf.dwBinarizationMode := IFCIMG.IFIMG_BINMODE_NORMAL;
nRet := IFCIMG.ImgSetBinarizationConfig(hDeviceHandle, BinConf);
// ラベリングの連結選択
nRet := IFCIMG.ImgSetLabelingConfig(hDeviceHandle, IFCIMG.IFIMG_EIGHT_CONNECTION);
// ラベル画像のサイズ
dwSize := 640*480;
// ラベル数(4Byte)、面積値(256byte)、ΣX とΣY(512Byte)、フェレ径(512byte)、
// ΣX2、ΣXY、ΣY2 (1536byte)のサイズ
dwSize := dwSize + 4 + 256 + 512 + 512 + 1536;
pSrcBuf := Marshal.AllocHGlobal(dwSize);
// 画像情報を設定
BufInfo.pBufferAddress := pSrcBuf;
BufInfo.dwBufferSize := dwSize;
nRet := IFCIMG.ImgSetBuffer(hDeviceHandle, BufInfo,
IFCIMG.IFIMG_COLOR_LABEL8 + IFCIMG.IFIMG_MEASUEMENT_LBLCNT
+ IFCIMG.IFIMG_MEASUEMENT_AREA
+ IFCIMG.IFIMG_MEASUEMENT_GRV
+ IFCIMG.IFIMG_MEASUEMENT_FERE + IFCIMG.IFIMG_MEASUEMENT_ELLIPSE
);
// 1 フレームキャプチャ開始
nRet := IFCIMG.ImgStartCapture(hDeviceHandle,1, IFCIMG.IFIMG_DMACAPTURE_START);
// 完了まで待つ
© 2003, 2016 Interface Corporation. All rights reserved.
360
GPC-5520 Help for Windows
repeat
nRet := IFCIMG.ImgGetCaptureStatus(hDeviceHandle, Status);
until (Status.dwCapture and $01) <> $01;
dwLblNum := 64;
// 全ラベルの面積値、重心値、フェレ径、慣性等価楕円の傾き角の取得
nRet := IFCIMG.ImgGetMeasurementValueLBL(hDeviceHandle,1, dwLblNum, pMeasure[0]);
デバイス名「IFIMGLBL1」のデバイスで、全ラベルの面積値、重心値、フェレ径、慣性等価楕
円の傾き角を取得します。
© 2003, 2016 Interface Corporation. All rights reserved.
361
GPC-5520 Help for Windows
44. IfSaveBitMapFile
メモリ上のデータを指定したビットマップファイル形式で保存します。
【書式】
●C 言語
INT IfSaveBitMapFile(
LPCSTR
pszPathName,
void
pBufferPointer,
unsigned long dwBufferFormat,
long
lWidth,
long
lHeight
);
//
//
//
//
//
ファイルパス
データバッファポインタ
データフォーマット
イメージの幅
イメージの高さ
●Visual Basic
Declare Function IfSaveBitMapFileLib "IfSaveFile.DLL"( _
ByVal
pszPathName
As String, _ ‘ ファイルパス
ByRef
pBufferPointer
As Any, _
‘ データバッファポインタ
ByVal
dwBufferFormat
As Long, _
‘ データフォーマット
ByVal
lWidth
As Long, _
‘ イメージの幅
ByVal
lHeight
As Long _
‘ イメージの高さ
)As Long
●Delphi
function IfSaveBitMapFile (
pszPathName:
String;
// ファイルパス
pBufferPointer:
Pointer;
// データバッファポインタ
dwBufferFormat:
DWORD;
// データフォーマット
lWidth:
Cardinal;
// イメージの幅
lHeight:
Cardinal
// イメージの高さ
): Integer; stdcall; external 'IfSaveFile.DLL';
●Visual C# .NET
[DllImport("IfImg.dll")]
public static extern int IfSaveBitMapFile(
string
pszPathName,
//
ref byte
pBufferPointer, //
uint
dwBufferFormat, //
int
lWidth,
//
int
lHeight,
//
);
ファイルパス
データバッファポインタ
データフォーマット
イメージの幅
イメージの高さ
© 2003, 2016 Interface Corporation. All rights reserved.
362
GPC-5520 Help for Windows
[DllImport("IfImg.dll")]
public static extern int IfSaveBitMapFile(
string
pszPathName,
//
ref short
pBufferPointer, //
uint
dwBufferFormat, //
int
lWidth,
//
int
lHeight,
//
);
[DllImport("IfImg.dll")]
public static extern int IfSaveBitMapFile(
string
pszPathName,
//
ref uint
pBufferPointer, //
uint
dwBufferFormat, //
int
lWidth,
//
int
lHeight,
//
);
[DllImport("IfImg.dll")]
public static extern int IfSaveBitMapFile(
string
pszPathName,
//
byte[]
pBufferPointer, //
uint
dwBufferFormat, //
int
lWidth,
//
int
lHeight,
//
);
[DllImport("IfImg.dll")]
public static extern int IfSaveBitMapFile(
string
pszPathName,
//
ushort[]
pBufferPointer, //
uint
dwBufferFormat, //
int
lWidth,
//
int
lHeight,
//
);
[DllImport("IfImg.dll")]
public static extern int IfSaveBitMapFile(
string
pszPathName,
//
uint[]
pBufferPointer, //
uint
dwBufferFormat, //
int
lWidth,
//
int
lHeight,
//
);
ファイルパス
データバッファポインタ
データフォーマット
イメージの幅
イメージの高さ
ファイルパス
データバッファポインタ
データフォーマット
イメージの幅
イメージの高さ
ファイルパス
データバッファポインタ
データフォーマット
イメージの幅
イメージの高さ
ファイルパス
データバッファポインタ
データフォーマット
イメージの幅
イメージの高さ
ファイルパス
データバッファポインタ
データフォーマット
イメージの幅
イメージの高さ
© 2003, 2016 Interface Corporation. All rights reserved.
363
GPC-5520 Help for Windows
●Visual Basic .NET
Declare Function IfSaveBitMapFileLib "IfSaveFile.DLL"(
ByVal
pszPathName
As String,
‘ ファイルパス
ByRef
pBufferPointer As Byte,
‘ データバッファポインタ
ByVal
dwBufferFormat As Integer,
‘ データフォーマット
ByVal
lWidth
As Integer,
‘ イメージの幅
ByVal
lHeight
As Integer
‘ イメージの高さ
)As Integer
Declare Function IfSaveBitMapFileLib "IfSaveFile.DLL"(
ByVal
pszPathName
As String,
‘ ファイルパス
ByRef
pBufferPointer As Short,
‘ データバッファポインタ
ByVal
dwBufferFormat As Integer,
‘ データフォーマット
ByVal
lWidth
As Integer,
‘ イメージの幅
ByVal
lHeight
As Integer
‘ イメージの高さ
)As Integer
Declare Function IfSaveBitMapFileLib "IfSaveFile.DLL"(
ByVal
pszPathName
As String,
‘ ファイルパス
ByRef
pBufferPointer As Integer,
‘ データバッファポインタ
ByVal
dwBufferFormat As Integer,
‘ データフォーマット
ByVal
lWidth
As Integer,
‘ イメージの幅
ByVal
lHeight
As Integer
‘ イメージの高さ
)As Integer
Declare Function IfSaveBitMapFileLib "IfSaveFile.DLL"(
ByVal
pszPathName
As String,
‘ ファイルパス
ByVal
pBufferPointer( ) As Byte,
‘ データバッファポインタ
ByVal
dwBufferFormat
As Integer,
‘ データフォーマット
ByVal
lWidth
As Integer,
‘ イメージの幅
ByVal
lHeight
As Integer
‘ イメージの高さ
)As Integer
Declare Function IfSaveBitMapFileLib "IfSaveFile.DLL"(
ByVal
pszPathName
As String,
‘ ファイルパス
ByRef
pBufferPointer( ) As Short,
‘ データバッファポインタ
ByVal
dwBufferFormat
As Integer,
‘ データフォーマット
ByVal
lWidth
As Integer,
‘ イメージの幅
ByVal
lHeight
As Integer
‘ イメージの高さ
)As Integer
© 2003, 2016 Interface Corporation. All rights reserved.
364
GPC-5520 Help for Windows
Declare Function IfSaveBitMapFileLib "IfSaveFile.DLL"(
ByVal
pszPathName
As String,
‘ ファイルパス
ByRef
pBufferPointer( ) As Integer,
‘ データバッファポインタ
ByVal
dwBufferFormat
As Integer,
‘ データフォーマット
ByVal
lWidth
As Integer,
‘ イメージの幅
ByVal
lHeight
As Integer
‘ イメージの高さ
)As Integer
●Delphi 8
class function IfSaveBitMapFile (
pszPathName:
String;
pBufferPointer:
IntPtr;
dwBufferFormat:
Cardinal;
lWidth:
Cardinal;
lHeight:
Cardinal
): Integer; static;
//
//
//
//
//
ファイルパス
データバッファポインタ
データフォーマット
イメージの幅
イメージの高さ
class function IfSaveBitMapFile (
pszPathName:
String;
var pBufferPointer: Byte;
dwBufferFormat:
Cardinal;
lWidth:
Cardinal;
lHeight:
Cardinal
): Integer; static;
//
//
//
//
//
ファイルパス
データバッファポインタ
データフォーマット
イメージの幅
イメージの高さ
class function IfSaveBitMapFile (
pszPathName:
String;
var pBufferPointer: Word;
dwBufferFormat:
Cardinal;
lWidth:
Cardinal;
lHeight:
Cardinal
): Integer; static;
//
//
//
//
//
ファイルパス
データバッファポインタ
データフォーマット
イメージの幅
イメージの高さ
class function IfSaveBitMapFile (
pszPathName:
String;
var pBufferPointer: Cardinal;
dwBufferFormat:
Cardinal;
lWidth:
Cardinal;
lHeight:
Cardinal
): Integer; static;
//
//
//
//
//
ファイルパス
データバッファポインタ
データフォーマット
イメージの幅
イメージの高さ
© 2003, 2016 Interface Corporation. All rights reserved.
365
GPC-5520 Help for Windows
class function IfSaveBitMapFile (
pszPathName:
String;
pBufferPointer:
array of Byte;
dwBufferFormat:
Cardinal;
lWidth:
Cardinal;
lHeight:
Cardinal
): Integer; static;
class function IfSaveBitMapFile (
pszPathName:
String;
pBufferPointer:
array of Word;
dwBufferFormat:
Cardinal;
lWidth:
Cardinal;
lHeight:
Cardinal
): Integer; static;
//
//
//
//
//
//
//
//
//
//
class function IfSaveBitMapFile (
pszPathName:
String;
pBufferPointer:
array of Cardinal;
dwBufferFormat:
Cardinal;
lWidth:
Cardinal;
lHeight:
Cardinal
): Integer; static;
ファイルパス
データバッファポインタ
データフォーマット
イメージの幅
イメージの高さ
ファイルパス
データバッファポインタ
データフォーマット
イメージの幅
イメージの高さ
//
//
//
//
//
ファイルパス
データバッファポインタ
データフォーマット
イメージの幅
イメージの高さ
【パラメータ】
pszPathName
保存するファイルパスを指定。(絶対パス)
pBufferPointer
キャプチャデータが格納しているバッファのポインタ。
dwBufferFormat
カラーフォーマットを指定します。
識別子
IFIMG_COLOR_RGB32
IFIMG_COLOR_RGB24
IFIMG_COLOR_RGB15
IFIMG_COLOR_RGB16
IFIMG_COLOR_GRAY8
IFIMG_COLOR_RED8
IFIMG_COLOR_GREEN8
IFIMG_COLOR_BLUE8
IFIMG_COLOR_BIN8
値
00000001h
00000002h
00000003h
0000000Bh
00000004h
00000005h
00000006h
00000007h
00000008h
© 2003, 2016 Interface Corporation. All rights reserved.
366
意味
RGB32 bit
RGB24 bit
RGB15 bit
RGB16 bit
GRAY8 bit
R 8bit
G 8bit
B 8bit
2 値化処理データ 8bit
GPC-5520 Help for Windows
lWidth
データのイメージ幅を指定します。
キャプチャしたデータ解像度によって値を以下の通りに設定します。
解像度
640×480
320×240
160×120
768×572
384×286
192×143
値
640
320
120
768
384
192
lHeight
データのイメージ高さを指定します。
キャプチャしたデータ解像度によって値を以下の通りに設定します。
※
解像度
640×480
320×240
160×120
768×572
384×286
192×143
n は保存するフレーム数です。
値
480 ×
240 ×
120 ×
572 ×
286 ×
143 ×
n
n
n
n
n
n
正数指定の場合、画像データはボトムアップ形式で保存します。
負数指定の場合、画像データはトップダウン形式で保存します。
通常は正数で指定してください。負数指定で保存した場合、Paint ソフト等で開くを画像
データが逆さまに表示されます。
【戻り値】
エラー識別子
IFSAVEFILE_ERROR_SUCCESS
IFSAVEFILE_ERROR_INVALID_PARAMETER
IFSAVEFILE_ERROR_NOT_ALLOCATE_MEMORY
IFSAVEFILE_ERROR_NOT_OPENFILE
IFSAVEFILE_ERROR_INVALID_WRITEFILE
値
0
c0000010h
(-1073741808)
c0000021h
(-1073741791)
c0001000h
(-1073737728)
c0001001h
(-1073737727)
意味
正常終了
引数の値が正しくありま
せん。
作業用のメモリの確保に
失敗しました。
ファイルがオープンでき
ません。
ファイル書き込みに失敗
しました。
【備考】
本 API 関 数 は IfImg.dll と は 別 の ラ イ ブ ラ リ (IfSaveFile.dll) と ヘ ッ ダ ー フ ァ イ ル
(IfSaveFile.h、IfSaveFile.bas、IfSaveFile.pas)で提供しています。
© 2003, 2016 Interface Corporation. All rights reserved.
367
GPC-5520 Help for Windows
【使用例】
●C 言語(x86)
HANDLE hDeviceHandle;
IMGBUFFERINFO Buffer;
int nRet;
hDeviceHandle = ImgOpen(“IFIMGST1”);
:
nRet = ImgSetBuffer(hDeviceHandle, &Buffer, IFIMG_COLOR_RGB24);
:
nRet = ImgStartCapture(hDeviceHandle, 10, IFIMG_DMACAPTURE_START);
:
(キャプチャの完了)
:
nRet = IfSaveBitmapFile(
“BitmapFile.bmp”,
Buffer.pBufferAddress, IFIMG_COLOR_RGB24,640,480);
●C 言語(x64)
HANDLE hDeviceHandle;
PVOID Buffer;
int nRet;
hDeviceHandle = ImgOpen(“IFIMGST1”);
:
nRet = ImgGetMemPtrValue(hDeviceHandle, &Buffer);
:
nRet = ImgStartCapture(hDeviceHandle, 10, IFIMG_DMACAPTURE_START);
:
(キャプチャの完了)
:
nRet = IfSaveBitmapFile(
“BitmapFile.bmp”,
Buffer, IFIMG_COLOR_RGB24,640,480);
© 2003, 2016 Interface Corporation. All rights reserved.
368
GPC-5520 Help for Windows
●Visual Basic(x86)
Dim lpszName As String
Dim hDeviceHandle As Long
Dim buffer(921600) As Byte
Dim buffersize As Long
lpszName = “IFIMGST1”
hDeviceHandle = ImgOpen(lpszName)
:
buffersize = 921600
nRet = ImgSetBufferVB(hDeviceHandle, buffer(0), buffersize, IFIMG_COLOR_RGB24)
:
nRet = ImgStartCapture(hDeviceHandle, 10, IFIMG_DMACAPTURE_START)
:
(キャプチャの完了)
:
nRet = IfSaveBitmapFile(
“BitmapFile.bmp”,
buffer(0), IFIMG_COLOR_RGB24,640,480)
●Visual Basic(x64)
Dim lpszName As String
Dim hDeviceHandle As Long
Dim buffer As Long
lpszName = “IFIMGST1”
hDeviceHandle = ImgOpen(lpszName)
:
nRet = ImgGetMemPtrValue(hDeviceHandle, buffer)
:
nRet = ImgStartCapture(hDeviceHandle, 10, IFIMG_DMACAPTURE_START)
:
(キャプチャの完了)
:
nRet = IfSaveBitmapFile(
“BitmapFile.bmp”,
buffer, IFIMG_COLOR_RGB24,640,480)
© 2003, 2016 Interface Corporation. All rights reserved.
369
GPC-5520 Help for Windows
●Delphi(x86)
var
lpszName: String;
hDeviceHandle: THandle;
Buffer: IMGBUFFERINFO;
nRet: Integer;
lpszName := 'IFIMGST1';
hDeviceHandle := ImgOpen(lpszName);
:
:
nRet := ImgSetBuffer(hDeviceHandle, Buffer, IFIMG_COLOR_RGB24);
:
nRet := ImgStartCapture(hDeviceHandle, 10, IFIMG_DMACAPTURE_START);
:
(キャプチャの完了)
:
nRet := IfSaveBitmapFile(
“BitmapFile.bmp”,
Buffer.pBufferAddress, IFIMG_COLOR_RGB24,640,480);
●Delphi(x64)
var
lpszName: String;
hDeviceHandle: THandle;
Buffer: Pointer;
nRet: Integer;
lpszName := 'IFIMGST1';
hDeviceHandle := ImgOpen(lpszName);
:
:
nRet := ImgGetMemPtrValue(hDeviceHandle, Buffer);
:
nRet := ImgStartCapture(hDeviceHandle, 10, IFIMG_DMACAPTURE_START);
:
(キャプチャの完了)
:
nRet := IfSaveBitmapFile(
“BitmapFile.bmp”,
Buffer, IFIMG_COLOR_RGB24,640,480);
© 2003, 2016 Interface Corporation. All rights reserved.
370
GPC-5520 Help for Windows
●Visual C# .NET
IntPtr hDeviceHandle;
IFCIMG_ANY.IMGBUFFERINFO Buffer;
int nRet;
hDeviceHandle = IFCIMG_ANY.ImgOpen(“IFIMGST1”);
:
nRet = IFCIMG_ANY.ImgSetBuffer(hDeviceHandle, ref Buffer,
IFCIMG_ANY.IFIMG_COLOR_RGB24);
:
nRet = IFCIMG_ANY.ImgStartCapture(hDeviceHandle, 10,
IFCIMG_ANY.IFIMG_DMACAPTURE_START);
:
(キャプチャの完了)
:
nRet = IFCSAVEFILE.IfSaveBitmapFile(
“BitmapFile.bmp”,
Buffer.pBufferAddress, IFCIMG_ANY.IFIMG_COLOR_RGB24,640,480);
●Visual Basic .NET
Dim lpszName As String
Dim hDeviceHandle As IntPtr
Dim buffer(921600) As Byte
Dim buffersize As Integer
lpszName = “IFIMGST1”
hDeviceHandle = IFCIMG_ANY.ImgOpen(lpszName)
:
buffersize = 921600
nRet = IFCIMG_ANY.ImgSetBufferVB(hDeviceHandle, buffer(0), buffersize,
IFCIMG_ANY.IFIMG_COLOR_RGB24)
:
nRet = IFCIMG_ANY.ImgStartCapture(hDeviceHandle, 10,
IFCIMG_ANY.IFIMG_DMACAPTURE_START)
:
(キャプチャの完了)
:
nRet = IFCSAVEFILE.IfSaveBitmapFile(
“BitmapFile.bmp”,
buffer(0), IFCIMG_ANY.IFIMG_COLOR_RGB24,640,480)
© 2003, 2016 Interface Corporation. All rights reserved.
371
GPC-5520 Help for Windows
●Delphi 8
var
lpszName: String;
hDeviceHandle: Integer;
Buffer: IFCIMG.IMGBUFFERINFO;
nRet: Integer;
lpszName := 'IFIMGST1';
hDeviceHandle := IFCIMG.ImgOpen(lpszName);
:
:
nRet := IFCIMG.ImgSetBuffer(hDeviceHandle, Buffer, IFCIMG.IFIMG_COLOR_RGB24);
:
nRet := IFCIMG.ImgStartCapture(hDeviceHandle, 10, IFCIMG.IFIMG_DMACAPTURE_START);
:
(キャプチャの完了)
:
nRet := IFCSAVEFILE.IfSaveBitmapFile(
“BitmapFile.bmp”,
Buffer.pBufferAddress, IFCIMG.IFIMG_COLOR_RGB24,640,480);
デバイス名「IFIMGST1」からキャプチャしたデータを 1 フレーム分ビットマップ保存します。
© 2003, 2016 Interface Corporation. All rights reserved.
372
GPC-5520 Help for Windows
45. ImgSetDecoderConfig
【機能】
ビデオデコーダの設定を行います。
ビデオデコーダ内のレジスタにデータをライトします。
【書式】
●C 言語
INT ImgSetDecoderConfig(
HANDLE
hDeviceHandle,
WORD
wOffset,
WORD
wData
);
//
//
//
デバイスハンドル
レジスタオフセット
データ
●Visual Basic
Declare Function ImgSetDecoderConfig Lib "IfImg.dll"( _
ByVal
hDeviceHandle
As Long, _
‘ デバイスハンドル
ByVal
wOffset
As Integer, _
‘ レジスタオフセット
ByVal
wData
As Integer _
‘ データ
)As Long
●Delphi
function ImgSetDecoderConfig (
hDeviceHandle: THandle;
wOffset:
WORD;
wData:
WORD
): Integer; stdcall; external 'IfImg.dll';
●Visual C# .NET(x86、x64 共用)
[DllImport("IfImg.dll")]
public static extern int ImgSetDecoderConfig (
IntPtr
hDeviceHandle,
short
wOffset,
short
wData
);
●Visual C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgSetDecoderConfig (
uint
hDeviceHandle,
short
wOffset,
short
wData
);
//
//
//
デバイスハンドル
レジスタオフセット
データ
//
//
//
デバイスハンドル
レジスタオフセット
データ
//
//
//
デバイスハンドル
レジスタオフセット
データ
© 2003, 2016 Interface Corporation. All rights reserved.
373
GPC-5520 Help for Windows
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgSetDecoderConfig Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As IntPtr,
‘ デバイスハンドル
ByVal
wOffset
As Short,
‘ レジスタオフセット
ByVal
wData
As Short
‘ データ
)As Integer
●Visual Basic .NET(x86 専用)
Declare Function ImgSetDecoderConfig Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As Integer,
‘ デバイスハンドル
ByVal
wOffset
As Short,
‘ レジスタオフセット
ByVal
wData
As Short
‘ データ
)As Integer
●Delphi 8
class function ImgSetDecoderConfig (
hDeviceHandle: Integer;
wOffset:
Word;
wData:
Word
): Integer; static;
//
//
//
デバイスハンドル
レジスタオフセット
データ
【パラメータ】
hDeviceHandle
デバイスハンドルを指定します。
wOffset
ビデオデコーダ内のレジスタのオフセット値を指定します。
オフセットは+00h~+1Fh です。
wData
レジスタへライトする値
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、
『4.5 戻り値一覧』をご参照くだ
【備考】
製品搭載しているビデオデコーダは以下の型式です。
メーカ:沖電気株式会社
品名:MSM7664B
© 2003, 2016 Interface Corporation. All rights reserved.
374
GPC-5520 Help for Windows
【使用例】
●C 言語
HANDLE
int
hDeviceHandle;
nRet;
nRet = ImgSetDecoderConfig(hDeviceHandle, 0x0A, 0x01);
●Visual Basic
Dim hDeviceHandle As Long
Dim nRet As Long
nRet = ImgSetDecoderConfig(hDeviceHandle, &H0A, &H01)
●Delphi
var
hDeviceHandle: THandle;
nRet: Integer;
nRet := ImgSetDecoderConfig(hDeviceHandle, $0A, $01);
●Visual C# .NET
int
nRet;
IntPtr hDeviceHandle;
hDeviceHandle = IFCIMG_ANY.ImgOpen(“IFIMGST1”);
:
:
nRet = IFCIMG_ANY.ImgSetDecoderConfig(hDeviceHandle, 0x0A, 0x01);
●Visual Basic .NET
Dim lpszName As String
Dim hDeviceHandle As IntPtr
Dim nRet As Long
lpszName = “IFIMGST1”
hDeviceHandle = IFCIMG_ANY.ImgOpen(lpszName)
:
:
nRet = IFCIMG_ANY.ImgSetDecoderConfig(hDeviceHandle, &H0A, &H01)
© 2003, 2016 Interface Corporation. All rights reserved.
375
GPC-5520 Help for Windows
●Delphi 8
var
hDeviceHandle: Inetger;
nRet: Integer;
hDeviceHandle := IFCIMG_ANY.ImgOpen(“IFIMGST1”);
:
:
nRet := IFCIMG_ANY.ImgSetDecoderConfig(hDeviceHandle, $0A, $01);
ビデオデコーダのレジスタのオフセット 0Ah 領域に 01h をセットします。
© 2003, 2016 Interface Corporation. All rights reserved.
376
GPC-5520 Help for Windows
46. ImgSetEncoderConfig
【機能】
ビデオエンコーダの設定を行います。
ビデオエンコーダ内のレジスタにデータをライトします。
【書式】
●C 言語
INT ImgSetEncoderConfig (
HANDLE
hDeviceHandle,
WORD
wOffset,
WORD
wData
);
//
//
//
デバイスハンドル
レジスタオフセット
データ
●Visual Basic
Declare Function ImgSetEncoderConfig Lib "IfImg.dll"( _
ByVal
hDeviceHandle
As Long, _
‘ デバイスハンドル
ByVal
wOffset
As Integer, _
‘ レジスタオフセット
ByVal
wData
As Integer _
‘ データ
)As Long
●Delphi
function ImgSetEncoderConfig (
hDeviceHandle: THandle;
wOffset:
WORD;
wData:
WORD
): Integer; stdcall; external 'IfImg.dll';
●Visual C# .NET(x86、x64 共用)
[DllImport("IfImg.dll")]
public static extern int ImgSetEncoderConfig (
IntPtr
hDeviceHandle,
short
wOffset,
short
wData
);
●Visual C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgSetEncoderConfig (
uint
hDeviceHandle,
short
wOffset,
short
wData
);
//
//
//
デバイスハンドル
レジスタオフセット
データ
//
//
//
デバイスハンドル
レジスタオフセット
データ
//
//
//
デバイスハンドル
レジスタオフセット
データ
© 2003, 2016 Interface Corporation. All rights reserved.
377
GPC-5520 Help for Windows
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgSetEncoderConfig Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As IntPtr,
‘ デバイスハンドル
ByVal
wOffset
As Short,
‘ レジスタオフセット
ByVal
wData
As Short
‘ データ
)As Integer
●Visual Basic .NET(x86 専用)
Declare Function ImgSetEncoderConfig Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As Integer,
‘ デバイスハンドル
ByVal
wOffset
As Short,
‘ レジスタオフセット
ByVal
wData
As Short
‘ データ
)As Integer
●Delphi 8
class function ImgSetEncoderConfig (
hDeviceHandle: Integer;
wOffset:
Word;
wData:
Word
): Integer; static;
//
//
//
デバイスハンドル
レジスタオフセット
データ
【パラメータ】
hDeviceHandle
デバイスハンドルを指定します。
wOffset
ビデオエンコーダ内のレジスタのオフセット値を指定します。
オフセットは+00h~+03h です。
wData
レジスタへライトする値
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、
『4.5 戻り値一覧』をご参照くだ
【備考】
製品搭載しているビデオエンコーダは以下の型式です。
メーカ:沖電気株式会社
品名:MSM7654
© 2003, 2016 Interface Corporation. All rights reserved.
378
GPC-5520 Help for Windows
【使用例】
●C 言語
HANDLE
int
hDeviceHandle;
nRet;
nRet = ImgSetEncoderConfig(hDeviceHandle, 0x01, 0x00);
●Visual Basic
Dim hDeviceHandle As Long
Dim nRet As Long
nRet = ImgSetEncoderConfig(hDeviceHandle, &H01, &H00)
●Delphi
var
hDeviceHandle: THandle;
nRet: Integer;
nRet := ImgSetEncoderConfig(hDeviceHandle, $01, $00);
●Visual C# .NET
int
nRet;
IntPtr hDeviceHandle;
hDeviceHandle = IFCIMG_ANY.ImgOpen(“IFIMGST1”);
:
nRet = IFCIMG_ANY.ImgSetEncoderConfig(hDeviceHandle, 0x0A, 0x01);
●Visual Basic .NET
Dim lpszName As String
Dim hDeviceHandle As IntPtr
Dim nRet As Long
lpszName = “IFIMGST1”
hDeviceHandle = IFCIMG_ANY.ImgOpen(lpszName)
nRet = IFCIMG_ANY.ImgSetEncoderConfig(hDeviceHandle, &H0A, &H01)
© 2003, 2016 Interface Corporation. All rights reserved.
379
GPC-5520 Help for Windows
●Delphi 8
var
hDeviceHandle: Inetger;
nRet: Integer;
hDeviceHandle := IFCIMG.ImgOpen(“IFIMGST1”);
nRet := IFCIMG.ImgSetDecoderConfig(hDeviceHandle, $0A, $01);
ビデオエンコーダのレジスタのオフセット 01h 領域に 00h をセットします。
© 2003, 2016 Interface Corporation. All rights reserved.
380
GPC-5520 Help for Windows
47. ImgSetGainControl
【機能】
ビデオデコーダのゲイン調整を行います。コントラスト調整を行う場合は、本関数を使用して
ください。
【書式】
●C 言語
INT ImgSetGainControl (
HANDLE
hDeviceHandle,
INT
nOffset
);
//
//
デバイスハンドル
オフセットゲイン
●Visual Basic
Declare Function ImgSetGainControl Lib "IfImg.dll"( _
ByVal
hDeviceHandle
As Long, _
‘ デバイスハンドル
ByVal
nOffset
As Long_
‘ オフセットゲイン
)As Long
●Delphi
function ImgSetGainControl (
hDeviceHandle: THandle;
nOffset:
Cardinal
): Integer; stdcall; external 'IfImg.dll';
●Visual C# .NET(x86、x64 共用)
[DllImport("IfImg.dll")]
public static extern int ImgSetGainControl (
IntPtr
hDeviceHandle,
int
nOffset
);
●Visual C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgSetGainControl (
uint
hDeviceHandle,
int
nOffset
);
//
//
デバイスハンドル
オフセットゲイン
//
//
デバイスハンドル
オフセットゲイン
//
//
デバイスハンドル
オフセットゲイン
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgSetGainControl Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As IntPtr,
‘ デバイスハンドル
ByVal
nOffset
As Integer
‘ オフセットゲイン
)As Integer
© 2003, 2016 Interface Corporation. All rights reserved.
381
GPC-5520 Help for Windows
●Visual Basic .NET(x86 専用)
Declare Function ImgSetGainControl Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As Integer,
‘ デバイスハンドル
ByVal
nOffset
As Integer
‘ オフセットゲイン
)As Integer
●Delphi 8
class function ImgSetGainControl (
hDeviceHandle: Integer;
nOffset:
Cardinal
): Integer; static;
//
//
デバイスハンドル
オフセットゲイン
【パラメータ】
hDeviceHandle
デバイスハンドルを指定します。
nOffset
-32~+31 のオフセット範囲で指定します。(単位 IRE)
インタフェースモジュールへの電源投入時はデフォルト 40IRE です。
40IRE からオフセット調整となります。
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、
『4.5 戻り値一覧』をご参照くだ
© 2003, 2016 Interface Corporation. All rights reserved.
382
GPC-5520 Help for Windows
【備考】
製品搭載しているビデオエンコーダは以下になっています。
メーカ:沖電気株式会社
品名:MSM7664B
本関数はエンコーダレジスタのオフセット 0x09 番地へアクセスしてコントラスト調整を
行っています。詳細は MSM7664B のデータシートを参照ください。
本関数を実行するとビデオデコーダのゲイン調整がマニュアルモードになります。初期状態
(オートモード)に戻す場合は、ImgSetDecoderConfig 関数でオフセット 0x0A 番地に
0x00
をセットしてください。
メーカ:ラピスセミコンダクタ株式会社
品名:ML86V7666
本関数はエンコーダレジスタのオフセット 0x0C 番地へアクセスしてコントラスト調整を
行っています。詳細は ML86V7666 のデータシートを参照ください。
初期状態に戻す場合は、ImgSetDecoderConfig 関数でオフセット 0x0C 番地に
トしてください。
【使用例】
●C 言語
HANDLE
int
hDeviceHandle;
nRet;
nRet = ImgSetGainControl(DeviceHandle,20);
●Visual Basic
Dim hDeviceHandle As Long
Dim nRet As Long
nRet = ImgSetGainControl(DeviceHandle,20)
●Delphi
var
hDeviceHandle: THandle;
nRet: Integer;
nRet := ImgSetGainControl(DeviceHandle,20);
© 2003, 2016 Interface Corporation. All rights reserved.
383
0xF4 をセッ
GPC-5520 Help for Windows
●Visual C# .NET
int
nRet;
IntPtr hDeviceHandle;
hDeviceHandle = IFCIMG_ANY.ImgOpen(“IFIMGST1”);
:
nRet = IFCIMG_ANY.ImgSetGainControl(hDeviceHandle, 20);
●Visual Basic .NET
Dim lpszName As String
Dim hDeviceHandle As IntPtr
Dim nRet As Long
lpszName = “IFIMGST1”
hDeviceHandle = IFCIMG_ANY.ImgOpen(lpszName)
nRet = IFCIMG_ANY.ImgSetGainControl(hDeviceHandle, 20)
●Delphi 8
var
hDeviceHandle: Inetger;
nRet: Integer;
hDeviceHandle := IFCIMG.ImgOpen(“IFIMGST1”);
nRet := IFCIMG.ImgSetGainControl(hDeviceHandle, 20);
ゲインのオフセットを+20 にします。
© 2003, 2016 Interface Corporation. All rights reserved.
384
GPC-5520 Help for Windows
48. ImgSetBlankingLevel
【機能】
ビデオデコーダのブランキングレベルを調整します。画像の明るさが変動します。
【書式】
●C 言語
INT ImgSetBlankingLevel (
HANDLE
hDeviceHandle,
INT
nOffset
);
//
//
デバイスハンドル
オフセットゲイン
●Visual Basic
Declare Function ImgSetBlankingLevel Lib "IfImg.dll"( _
ByVal
hDeviceHandle
As Long, _
‘ デバイスハンドル
ByVal
nOffset
As Long_
‘ オフセットゲイン
)As Long
●Delphi
function ImgSetBlankingLevel (
hDeviceHandle: THandle;
nOffset:
Cardinal
): Integer; stdcall; external 'IfImg.dll';
●Visual C# .NET(x86、x64 共用)
[DllImport("IfImg.dll")]
public static extern int ImgSetBlankingLevel (
IntPtr
hDeviceHandle,
int
nOffset
);
●Visual C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgSetBlankingLevel (
uint
hDeviceHandle,
int
nOffset
);
//
//
デバイスハンドル
オフセットゲイン
//
//
デバイスハンドル
オフセットゲイン
//
//
デバイスハンドル
オフセットゲイン
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgSetBlankingLevel Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As IntPtr,
‘ デバイスハンドル
ByVal
nOffset
As Integer
‘ オフセットゲイン
)As Integer
© 2003, 2016 Interface Corporation. All rights reserved.
385
GPC-5520 Help for Windows
●Visual Basic .NET(x86 専用)
Declare Function ImgSetBlankingLevel Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As Integer,
‘ デバイスハンドル
ByVal
nOffset
As Integer
‘ オフセットゲイン
)As Integer
●Delphi 8
class function ImgSetBlankingLevel (
hDeviceHandle: Integer;
nOffset:
Cardinal
): Integer; static;
//
//
デバイスハンドル
オフセットゲイン
【パラメータ】
hDeviceHandle
デバイスハンドルを指定します。
nOffset
MSM7664B:-64~+63 のオフセット範囲で指定します。(単位 IRE)
ML86V7666:-7~+7 のオフセット範囲で指定します。(単位 IRE)
インタフェースモジュールへの電源投入時はデフォルト 40IRE です。
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、
『4.5 戻り値一覧』をご参照くだ
© 2003, 2016 Interface Corporation. All rights reserved.
386
GPC-5520 Help for Windows
【備考】
製品搭載しているビデオエンコーダは以下になっています。
メーカ:沖電気株式会社
品名:MSM7664B
本関数はエンコーダレジスタのオフセット 0x0A 番地へアクセスしてブランキングレベル調
整を行っています。詳細は MSM7664B のデータシートを参照ください。
本関数を実行するとビデオデコーダのオフセット調整がマニュアルモードになります。
初期状態(オートモード)に戻す場合は、ImgSetDecoderConfig 関数でオフセット 0x0A 番地に
0x00 をセットしてください。
メーカ:ラピスセミコンダクタ株式会社
品名:ML86V7666
本関数はエンコーダレジスタのオフセット 0x0E 番地へアクセスしてブランキングレベル調
整を行っています。詳細は ML86V7666 のデータシートを参照ください。
初期状態に戻す場合は、ImgSetDecoderConfig 関数でオフセット 0x0E 番地に 0x3F をセット
してください。
【使用例】
●C 言語
HANDLE
int
hDeviceHandle;
nRet;
nRet = ImgSetBlankingLevel(DeviceHandle,20);
●Visual Basic
Dim hDeviceHandle As Long
Dim nRet As Long
nRet = ImgSetBlankingLevel(DeviceHandle,20)
●Delphi
var
hDeviceHandle: THandle;
nRet: Integer;
nRet := ImgSetBlankingLevel(DeviceHandle,20);
© 2003, 2016 Interface Corporation. All rights reserved.
387
GPC-5520 Help for Windows
●Visual C# .NET
int
nRet;
IntPtr hDeviceHandle;
hDeviceHandle = IFCIMG_ANY.ImgOpen(“IFIMGST1”);
:
nRet = IFCIMG_ANY.ImgSetBlankingLevel(hDeviceHandle, 20);
●Visual Basic .NET
Dim lpszName As String
Dim hDeviceHandle As IntPtr
Dim nRet As Long
lpszName = “IFIMGST1”
hDeviceHandle = IFCIMG_ANY.ImgOpen(lpszName)
nRet = IFCIMG_ANY.ImgSetBlankingLevel(hDeviceHandle, 20)
●Delphi 8
var
hDeviceHandle: Inetger;
nRet: Integer;
hDeviceHandle := IFCIMG.ImgOpen(“IFIMGST1”);
nRet := IFCIMG.ImgSetBlankingLevel(hDeviceHandle, 20);
ブランキングレベルのオフセットを+20 にします。
© 2003, 2016 Interface Corporation. All rights reserved.
388
GPC-5520 Help for Windows
49. ImgSetSyncErrorDetection
同期信号の異常検出方法を設定します。
【書式】
●C 言語
INT ImgSetSyncErrorDetection (
HANDLE
hDeviceHandle,
DWORD
Mode
);
//
//
デバイスハンドル
検出モード選択
●Visual Basic
Declare Function ImgSetSyncErrorDetection Lib "IfImg.dll"( _
ByVal
hDeviceHandle
As Long, _
‘ デバイスハンドル
RyVal
Mode
As Long _
‘ 検出モード選択
)As Long
●Delphi
function ImgSetSyncErrorDetection (
hDeviceHandle:
THandle;
Mode:
DWORD
): Integer; stdcall; external 'IfImg.dll';
//
//
デバイスハンドル
検出モード選択
●Visual C# .NET(x86、x64 共用)
[DllImport("IfImg.dll")]
public static extern int ImgSetSyncErrorDetection (
IntPtr
hDeviceHandle,
// デバイスハンドル
uint
Mode
// 検出モード選択
);
●Visual C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgSetSyncErrorDetection (
uint
hDeviceHandle,
// デバイスハンドル
uint
Mode
// 検出モード選択
);
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgSetSyncErrorDetection Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As IntPtr,
‘ デバイスハンドル
ByVal
Mode
As Integer
‘ 検出モード選択
)As Integer
●Visual Basic .NET(x86 専用)
Declare Function ImgSetSyncErrorDetection Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As Integer,
‘ デバイスハンドル
ByVal
Mode
As Integer
‘ 検出モード選択
)As Integer
© 2003, 2016 Interface Corporation. All rights reserved.
389
GPC-5520 Help for Windows
●Delphi 8
class function ImgSetSyncErrorDetection (
hDeviceHandle: Integer;
Mode:
Cardinal
): Integer; static;
//
//
デバイスハンドル
検出モード選択
【パラメータ】
hDeviceHandle
ImgOpen 関数で取得したデバイスハンドルを指定してください。
Mode
異常状態を検出する同期信号を選択します。同期信号は以下の 3 つになります。
VSYNC 信号 : カメラの垂直同期信号
VVALID 信号 : ハードウェア(FPGA)とビデオデコーダ間の垂直同期信号
HVALID 信号 : ハードウェア(FPGA)とビデオデコーダ間の水平同期信号
以下の識別子を指定する事により、各信号に対する異常検出機能の有効/無効を
設定する事ができます。
識別子
値
対象となる異常検出機能
IFIMG_ERR_DETECTION_MODE1
IFIMG_ERR_DETECTION_MODE2
IFIMG_ERR_DETECTION_MODE3
IFIMG_ERR_DETECTION_MODE4
IFIMG_ERR_DETECTION_MODE5
IFIMG_ERR_DETECTION_MODE6
IFIMG_ERR_DETECTION_MODE7
IFIMG_ERR_DETECTION_MODE8
00000001h
00000002h
00000003h
00000004h
00000005h
00000006h
00000007h
00000008h
VSYNC 検出
VVALID 検出
HVALID 検出
有効
有効
有効
有効
無効
無効
無効
無効
有効
有効
無効
無効
有効
有効
無効
無効
有効
無効
有効
無効
有効
無効
有効
無効
ImgOpen 実行後の初期状態は IFIMG_DETECTION_MODE4 となっています。
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ
い。
【注意】
ご使用になっているハードウェアのバージョンによっては、選択できる信号に制限がございま
す。検出できない信号を選択した場合、戻り値として、「IFIMG_ERROR_NOT_SUPPORTED」が返りま
す。
© 2003, 2016 Interface Corporation. All rights reserved.
390
GPC-5520 Help for Windows
【使用例】
●C 言語
HANDLE
int
hDeviceHandle;
nRet;
nRet = ImgSetSyncErrorDetection(DeviceHandle, IFIMG_ERR_DETECTION_MODE1);
●Visual Basic
Dim hDeviceHandle As Long
Dim nRet As Long
nRet = ImgSetSyncErrorDetection(DeviceHandle, IFIMG_ERR_DETECTION_MODE1)
●Delphi
var
hDeviceHandle: THandle;
nRet: Integer;
nRet := ImgSetSyncErrorDetection(DeviceHandle, IFIMG_ERR_DETECTION_MODE1);
●Visual C# .NET
IntPtr hDeviceHandle;
uint
nRet;
nRet = IFCIMG_ANY.ImgSetSyncErrorDetection(DeviceHandle,
IFCIMG_ANY.IFIMG_ERR_DETECTION_MODE1);
●Visual Basic .NET
Dim hDeviceHandle As IntPtr
Dim nRet As Long
nRet = IFCIMG_ANY.ImgSetSyncErrorDetection(DeviceHandle, _
IFCIMG_ANY.IFIMG_ERR_DETECTION_MODE1)
●Delphi 8
var
hDeviceHandle: THandle;
nRet: Integer;
nRet := IFCIMG.ImgSetSyncErrorDetection(DeviceHandle,
IFCIMG.IFIMG_ERR_DETECTION_MODE1);
異常検出対象の同期信号を VSYNC 信号、VVALID 信号、HVALID 信号にします。
© 2003, 2016 Interface Corporation. All rights reserved.
391
GPC-5520 Help for Windows
50. ImgGetCameraConnectionStatus
カメラと製品の接続状態を取得します。
【書式】
●C 言語
INT ImgGetCameraConnectionStatus (
HANDLE
hDeviceHandle,
PDWORD
Status
);
//
//
デバイスハンドル
接続状態
●Visual Basic
Declare Function ImgGetCameraConnectionStatusLib "IfImg.dll"( _
ByVal
hDeviceHandle
As Long, _
‘ デバイスハンドル
RyRef
Status
As Long _
‘ 接続状態
)As Long
●Delphi
function ImgGetCameraConnectionStatus (
hDeviceHandle:
THandle;
var Status:
DWORD
): Integer; stdcall; external 'IfImg.dll';
//
//
デバイスハンドル
接続状態
●Visual C# .NET(x86、x64 共用)
[DllImport("IfImg.dll")]
public static extern int ImgGetCameraConnectionStatus (
IntPtr
hDeviceHandle,
// デバイスハンドル
out uint
Status
// 接続状態
);
●Visual C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgGetCameraConnectionStatus (
uint
hDeviceHandle,
// デバイスハンドル
out uint
Status
// 接続状態
);
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgGetCameraConnectionStatus Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As IntPtr,
‘ デバイスハンドル
ByRef
Status
As Integer
‘ 接続状態
)As Integer
●Visual Basic .NET(x86 専用)
Declare Function ImgGetCameraConnectionStatus Lib "IfImg.DLL"(
ByVal
hDeviceHandle
As Integer,
‘ デバイスハンドル
ByRef
Status
As Integer
‘ 接続状態
)As Integer
© 2003, 2016 Interface Corporation. All rights reserved.
392
GPC-5520 Help for Windows
●Delphi 8
class function ImgGetCameraConnectionStatus (
hDeviceHandle: Integer;
var Status:
Cardinal
): Integer; static;
//
//
デバイスハンドル
接続状態
【パラメータ】
hDeviceHandle
ImgOpen 関数で取得したデバイスハンドルを指定してください。
Status
カメラとの接続状態を取得します。
識別子
IFIMG_CAMERA_NOTSUPPORTED
IFIMG_CAMERA_CONNECTION
IFIMG_CAMERA_UNCONNECTION
値
00000000h
00000001h
00000002h
意味
機能未サポート
接続
未接続
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ
い。
【注意】
ご使用になっているハードウェアのバージョンによっては、本機能は対応しておりません。
未対応のハードウェア上で実行すると、戻り値として「IFIMG_ERROR_NOT_SUPPORTED」が返ります。
【使用例】
●C 言語
HANDLE
int
DWORD
hDeviceHandle;
nRet;
Status
nRet = ImgGetCameraConnectionStatus(DeviceHandle, &Status);
●Visual Basic
Dim hDeviceHandle As Long
Dim nRet As Long
Dim Status As Long
nRet = ImgGetCameraConnectionStatus(DeviceHandle, Status)
© 2003, 2016 Interface Corporation. All rights reserved.
393
GPC-5520 Help for Windows
●Delphi
var
hDeviceHandle: THandle;
nRet: Integer;
Status: DWORD
nRet := ImgGetCameraConnectionStatus (DeviceHandle, Status);
●Visual C# .NET
IntPtr hDeviceHandle;
uint
nRet;
uint
Status;
nRet = IFCIMG_ANY.ImgGetCameraConnectionStatus (DeviceHandle, out Status);
●Visual Basic .NET
Dim hDeviceHandle As IntPtr
Dim nRet As Long
Dim Status As Long
nRet = IFCIMG_ANY.ImgGetCameraConnectionStatus (DeviceHandle, Status)
●Delphi 8
var
hDeviceHandle: THandle;
nRet: Integer;
Status : Cardinal;
nRet := IFCIMG.ImgGetCameraConnectionStatus (DeviceHandle, Status);
カメラとの接続状態を取得します。
© 2003, 2016 Interface Corporation. All rights reserved.
394
GPC-5520 Help for Windows
51. ImgGetOsArchitecture
【機能】
OS のアーキテクチャ情報を知る事ができます。
【書式】
●C 言語
INT ImgGetOsArchitecture (
HANDLE
DeviceHandle,
PDWORD
Architecture
);
//
//
デバイスハンドル
アーキテクチャ情報
●Visual Basic
Declare Function ImgGetOsArchitecture Lib "IfImg.dll"( _
ByVal
DeviceHandle
As Long, _
‘ デバイスハンドル
ByRef
Architecture
As Long _
‘ アーキテクチャ情報
)As Long
●Delphi
function ImgGetOsArchitecture (
DeviceHandle:
THandle; // デバイスハンドル
var Architecture: DWORD
// アーキテクチャ情報
): Integer; stdcall; external 'IfImg.dll';
●VISUAL C# .NET(x86、x64 共用)
[DllImport("IfImg.dll")]
public static extern int ImgGetOsArchitecture (
IntPtr
DeviceHandle,
// デバイスハンドル
out uint
Architecture
// アーキテクチャ情報
);
●VISUAL C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgGetOsArchitecture (
uint
DeviceHandle,
// デバイスハンドル
out uint
Architecture
// アーキテクチャ情報
);
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgGetOsArchitecture Lib "IFImg.DLL"( _
ByVal
DeviceHandle
As IntPtr, _
‘ デバイスハンドル
ByRef
Architecture
As Integer, _
‘ アーキテクチャ情報
)As Integer
●Visual Basic .NET(x86 専用)
Declare Function ImgGetOsArchitecture Lib "IFImg.DLL"( _
ByVal
DeviceHandle
As Integer, _
‘ デバイスハンドル
ByRef
Architecture
As Integer, _
‘ アーキテクチャ情報
)As Integer
© 2003, 2016 Interface Corporation. All rights reserved.
395
GPC-5520 Help for Windows
【パラメータ】
DeviceHandle
ImgOpen関数で取得したデバイスハンドルを指定してください。
Architecture
OS 情報を格納する変数のポインタ(参照渡し)を指定します。
識別子
値
内容
IFIMG_OS_ARCHITECTURE_x64 00000001h
x64 環境
IFIMG_OS_ARCHITECTURE_x86 00000002h
x86 環境
※Wow64 環境で実行した場合は、x64 環境として取得されます。
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、
『4.5 戻り値一覧』をご参照くだ
【使用例】
●C 言語
INT Ret;
HANDLE DeviceHandle;
DWORD Architecture;
:
Ret = ImgGetOsArchitecture(DeviceHandle, &Architecture);
●Visual Basic
Dim DeviceHandle As Long
Dim Ret As Integer
Dim Architecture As Long
:
Ret = ImgGetOsArchitecture(DeviceHandle, Architecture)
●Delphi
var
DeviceHandle: THandle;
Ret: Integer;
Architecture: DWORD;
:
Ret := ImgGetOsArchitecture (DeviceHandle, Architecture);
●VISUAL C# .NET
uint Ret;
IntPtr DeviceHandle;
uint Architecture;
:
Ret = IFCIMG_ANY.ImgGetOsArchitecture(DeviceHandle, out Architecture);
© 2003, 2016 Interface Corporation. All rights reserved.
396
GPC-5520 Help for Windows
●Visual Basic .NET
Dim DeviceHandle As IntPtr
Dim Ret As Integer
Dim Architecture As Integer
:
Ret = IFCIMG_ANY.ImgGetOsArchitecture(DeviceHandle, Architecture)
OS 情報を取得します。
© 2003, 2016 Interface Corporation. All rights reserved.
397
GPC-5520 Help for Windows
52. ImgSetCLCaptureConfig
【機能】
接続するカメラとキャプチャ条件を設定します。
・カメラコンフィグレーションファイルを読み込みます。
・カメラエリアのキャプチャ/画像処理領域を指定する。領域サイズは 640×480 固定。
【書式】
●C 言語
INT ImgSetCLCaptureConfig(
HANDLE
DeviceHandle,
LPCSTR
FilePath,
PIFIMGCLCAPCFG
CaptureConfig
);
//
//
//
デバイスハンドル
ファイルパス名
キャプチャ条件設定
●Visual Basic
Declare Function ImgSetCLCaptureConfig Lib "IfImg.dll"( _
ByVal
DeviceHandle
As Long, _
‘ デバイスハンドル
ByVal
FilePath
As String, _
‘ ファイルパス名
ByRef
CaptureConfig
As IFIMGCLCAPCFG _ ‘ キャプチャ条件設定
)As Long
●Delphi
function ImgSetCLCaptureConfig (
DeviceHandle:
THandle;
FilePath:
String;
var CaptureConfig: IFIMGCLCAPCFG
): Integer; stdcall; external IfImg.dll';
//
//
//
デバイスハンドル
ファイルパス名
キャプチャ条件設定
●VISUAL C# .NET(x86、x64 共用)
[DllImport("IfImg.dll")]
public static extern int ImgSetCLCaptureConfig(
IntPtr
DeviceHandle,
// デバイスハンドル
string
FilePath,
// ファイルパス名
ref IFIMGCLCAPCFG CaptureConfig
// キャプチャ条件設定
);
●VISUAL C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgSetCLCaptureConfig(
uint
DeviceHandle,
// デバイスハンドル
string
FilePath,
// ファイルパス名
ref IFIMGCLCAPCFG CaptureConfig
// キャプチャ条件設定
);
© 2003, 2016 Interface Corporation. All rights reserved.
398
GPC-5520 Help for Windows
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgSetCLCaptureConfig Lib "IfImg.dll"( _
ByVal
DeviceHandle
As IntPtr, _
‘ デバイスハンドル
ByVal
FilePath
As String, _
‘ ファイルパス名
ByRef
CaptureConfig
As IFIMGCLCAPCFG _ ‘ キャプチャ条件設定
)As Integer
●Visual Basic .NET(x86 専用)
Declare Function ImgSetCLCaptureConfig Lib "IfImg.dll"( _
ByVal
DeviceHandle
As Integer, _
‘ デバイスハンドル
ByVal
FilePath
As String, _
‘ ファイルパス名
ByRef
CaptureConfig
As IFIMGCLCAPCFG _ ‘ キャプチャ条件設定
)As Integer
●Delphi 8
class function ImgSetCLCaptureConfig (
DeviceHandle:
Integer;
FilePath:
string;
var CaptureConfig: IFIMGCLCAPCFG
): Integer; static;
//
//
//
デバイスハンドル
ファイルパス名
キャプチャ条件設定
【パラメータ】
DeviceHandle
ImgOpen関数で取得したデバイスハンドルを指定してください。
PathName
カメラコンフィグレーションファイルのパスを指定します。
パスは絶対パスを指定します。ファイル拡張子は「*.cfg」となります。
CaptureConfig
キャプチャ条件を指定します。IFIMGCLCAPCFG 構造体変数のポインタ(参照渡し)を指定し
ます。
【使用例】
●C 言語
INT Ret;
HANDLE DeviceHandle;
IFIMGCLCAPCFG CaptureConfig;
CaptureConfig.XStart = 0;
CaptureConfig.YStart = 0;
CaptureConfig.SyncMode = 0;
CaptureConfig.LVALInterVal= 0;
:
Ret = ImgSetCLCaptureConfig(DeviceHandle, “c:\\Teli_CSCV125CC3.cfg”, &CaptureConfig);
© 2003, 2016 Interface Corporation. All rights reserved.
399
GPC-5520 Help for Windows
●Visual Basic
Dim DeviceHandle As Long
Dim Ret As Integer
Dim CaptureConfig As IFIMGCLCAPCFG
Dim PathName As String
PathName = "c:\\Teli_CSCV125CC3.cfg"
CaptureConfig.XStart = 0
CaptureConfig.YStart = 0
CaptureConfig.SyncMode = 0
CaptureConfig.LVALInterVal= 0
Ret = ImgSetCLCaptureConfig(DeviceHandle, PathName, CaptureConfig)
●Delphi
var
DeviceHandle: THandle;
Ret: Integer;
PathName: String;
CaptureConfig: IFIMGCLCAPCFG;
PathName:= 'c:\\Teli_CSCV125CC3.cfg ';
CaptureConfig.XStart := 0;
CaptureConfig.YStart := 0;
CaptureConfig.SyncMode := 0;
CaptureConfig.LVALInterVal := 0;
Ret := ImgSetCLCaptureConfig(DeviceHandle, PathName, CaptureConfig);
●VISUAL C# .NET
int Ret;
IntPtr DeviceHandle;
IFCIMG_ANY.IFIMGCLCAPCFG CaptureConfig;
CaptureConfig.XStart = 0;
CaptureConfig.YStart = 0;
CaptureConfig.SyncMode = 0;
CaptureConfig.LVALInterVal= 0;
:
Ret = IFCIMG_ANY.ImgSetCLCaptureConfig(DeviceHandle,
“c:\\Teli_CSCV125CC3.cfg”, &CaptureConfig);
© 2003, 2016 Interface Corporation. All rights reserved.
400
GPC-5520 Help for Windows
●Visual Basic .NET
Dim DeviceHandle As IntPtr
Dim Ret As Integer
Dim CaptureConfig As IFCIMG_ANY.IFIMGCLCAPCFG
Dim PathName As String
PathName = "c:\\Teli_CSCV125CC3.cfg"
CaptureConfig.XStart = 0
CaptureConfig.YStart = 0
CaptureConfig.SyncMode = 0
CaptureConfig.LVALInterVal= 0
Ret = IFCIMG_ANY.ImgSetCLCaptureConfig(DeviceHandle, PathName, CaptureConfig)
●Delphi 8
var
DeviceHandle: Integer;
Ret: Integer;
PathName: String;
CaptureConfig: IFCIMG_ANY.IFIMGCLCAPCFG;
PathName:= 'c:\\Teli_CSCV125CC3.cfg ';
CaptureConfig.XStart := 0;
CaptureConfig.YStart := 0;
CaptureConfig.SyncMode := 0;
CaptureConfig.LVALInterVal := 0;
Ret := IFCIMG_ANY.ImgSetCLCaptureConfig(DeviceHandle, PathName, CaptureConfig);
カメラ情報とキャプチャ条件を設定します。
© 2003, 2016 Interface Corporation. All rights reserved.
401
GPC-5520 Help for Windows
53. ImgSetCCMode
【機能】
カメラコントロール信号(CC1~4)の動作モードを設定する。
【書式】
●C 言語
INT ImgSetCCMode(
HANDLE
DeviceHandle,
DWORD
CcSignal,
DWORD
Mode,
DWORD
Pulse
);
//
//
//
//
デバイスハンドル
CC 信号
出力モード
出力パルス幅
●Visual Basic
Declare Function ImgSetCCMode Lib "IfImg.dll"( _
ByVal
DeviceHandle
As Long, _
‘
ByVal
CcSignal,
As Long, _
‘
ByVal
Mode,
As Long, _
‘
ByVal
Pulse
As Long
‘
)As Long
デバイスハンドル
CC 信号
出力モード
出力パルス幅
●Delphi
function ImgSetCCMode (
DeviceHandle:
CcSignal:
Mode:
Pulse:
THandle;
DWORD;
DWORD;
DWORD
): Integer; stdcall; external IfImg.dll';
●VISUAL C# .NET(x86、x64 共用)
[DllImport("IfImg.dll")]
public static extern int ImgSetCCMode(
IntPtr
DeviceHandle,
uint
CcSignal,
uint
Mode,
uint
Pulse
);
●VISUAL C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgSetCCMode(
uint
DeviceHandle,
uint
CcSignal,
uint
Mode,
uint
Pulse
);
//
//
//
//
デバイスハンドル
CC 信号
出力モード
出力パルス幅
//
//
//
//
デバイスハンドル
CC 信号
出力モード
出力パルス幅
//
//
//
//
デバイスハンドル
CC 信号
出力モード
出力パルス幅
© 2003, 2016 Interface Corporation. All rights reserved.
402
GPC-5520 Help for Windows
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgSetCCMode Lib "IfImg.dll"( _
ByVal
DeviceHandle
As IntPtr, _
‘
ByVal
CcSignal,
As Integer, _
‘
ByVal
Mode,
As Integer, _
‘
ByVal
Pulse
As Integer
‘
)As Long
●Visual Basic .NET(x86 専用)
Declare Function ImgSetCCMode Lib "IfImg.dll"( _
ByVal
DeviceHandle
As Integer, _
‘
ByVal
CcSignal,
As Integer, _
‘
ByVal
Mode,
As Integer, _
‘
ByVal
Pulse
As Integer
‘
)As Long
●Delphi 8
class function ImgSetCCMode (
DeviceHandle:
Integer;
CcSignal:
Cardinal;
Mode:
Cardinal;
Pulse:
Cardinal
): Integer; static;
//
//
//
//
デバイスハンドル
CC 信号
出力モード
出力パルス幅
デバイスハンドル
CC 信号
出力モード
出力パルス幅
デバイスハンドル
CC 信号
出力モード
出力パルス幅
【パラメータ】
DeviceHandle
ImgOpen関数で取得したデバイスハンドルを指定してください。
CcSignal
設定する CC 信号を選択します。
識別子
値
IFIMGCL_CC1
00000001h
IFIMGCL_CC2
00000002h
IFIMGCL_CC3
00000004h
IFIMGCL_CC4
00000008h
内容
CC1 信号
CC2 信号
CC3 信号
CC4 信号
© 2003, 2016 Interface Corporation. All rights reserved.
403
GPC-5520 Help for Windows
Mode
カメラコントロール信号の出力条件を設定します。
各 CC 信号のデフォルト設定は IFIMG_CC_MODE_SOFT である。
識別子
値
内容
IFIMGCL_CC_MODE_SOFT
00000000h ImgCLOutPutPluse 関数で 1 パルス出力し
ます。
IFIMGCL_CC_MODE_DI
00000001h 汎用入力スルーモード
CC1 は DIN1、CC2 は DIN2、CC3 は DIN3、
CC4 は DIN4 に対応します。
IFIMGCL_CC_MODE_EDGE
00000002h 外部入力トリガ出力
汎用入力値は 0→1 に変化した時をトリ
ガとします。
CC1 は DIN1、CC2 は DIN2、CC3 は DIN3、
CC4 は DIN4 に対応します。
IFIMGCL_CC_MODE_TIMER1
00000003h インターバルタイマ 1 同期
IFIMGCL_CC_MODE_ENC_CYCLE
00000005h 差動入力方式エンコーダカウンタ同期
IFIMGCL_CC_MODE_SENC1_CYCLE 00000006h
シングルエンド入力方式エンコーダカウ
ンタ 1 同期
IFIMGCL_CC_MODE_SENC2_CYCLE 00000007h
シングルエンド入力方式エンコーダカウ
ンタ 2 同期
IFIMGCL_CC_MODE_ENC_CNTUP
00000008h
差動入力方式エンコーダカウンタのカウ
ントアップ
IFIMGCL_CC_MODE_SENC1_CNTUP 00000009h
シングルエンド入力方式エンコーダカウ
ンタ 1 のカウントアップ
IFIMGCL_CC_MODE_SENC2_CNTUP 0000000Ah
シングルエンド入力方式エンコーダカウ
ンタ 1 のカウントアップ
また、下記識別子を OR 演算することで、出力論理を変更します。
指定しない場合は、正論理です。
識別子
値
内容
IFIMGCL_ACTIVE_LOW
00000100h
負論理
Pulse
パルス幅を設定します。5μs 単位で設定可能です。
設定値:1~1023(5~5115μs)
© 2003, 2016 Interface Corporation. All rights reserved.
404
GPC-5520 Help for Windows
【使用例】
●C 言語
INT Ret;
HANDLE DeviceHandle;
Ret = ImgSetCCMode(DeviceHandle, IFIMGCL_CC1, IFIMGCL_CC_MODE_TIMER1, 1);
●Visual Basic
Dim DeviceHandle As Long
Ret = ImgSetCCMode(DeviceHandle, IFIMGCL_CC1, IFIMGCL_CC_MODE_TIMER1, 1)
●Delphi
var
DeviceHandle: THandle;
Ret: Integer;
Ret := ImgSetCCMode(DeviceHandle, IFIMGCL_CC1, IFIMGCL_CC_MODE_TIMER1, 1);
●VISUAL C# .NET
int Ret;
IntPtr DeviceHandle;
Ret = IFCIMG_ANY.ImgSetCCMode(DeviceHandle, IFCIMG_ANY.IFIMGCL_CC1,
IFCIMG_ANY.IFIMGCL_CC_MODE_TIMER1, 1);
●Visual Basic.NET
Dim DeviceHandle As IntPtr
Ret = IFCIMG_ANY.ImgSetCCMode(DeviceHandle, IFCIMG_ANY.IFIMGCL_CC1, _
IFCIMG_ANY.IFIMGCL_CC_MODE_TIMER1, 1)
●Delphi 8
var
DeviceHandle: Integer;
Ret: Integer;
Ret := IFCIMG_ANY.ImgSetCCMode(DeviceHandle, IFCIMG_ANY.IFIMGCL_CC1,
IFCIMG_ANY.IFIMGCL_CC_MODE_TIMER1, 1);
CC1 信号をインターバルタイマ割り込み周期で出力させます。
© 2003, 2016 Interface Corporation. All rights reserved.
405
GPC-5520 Help for Windows
54. ImgOutputCCPluse
【機能】
カメラコントロール信号を 1 パルス出力します。
【書式】
●C 言語
INT ImgOutputCCPluse(
HANDLE
DeviceHandle,
DWORD
CcSignal
);
//
//
デバイスハンドル
CC 信号
●Visual Basic
Declare Function ImgOutputCCPluse Lib "IfImg.dll"( _
ByVal
DeviceHandle
As Long, _
‘ デバイスハンドル
ByVal
CcSignal,
As Long _
‘ CC 信号
)As Long
●Delphi
function ImgOutputCCPluse (
DeviceHandle:
THandle;
CcSignal:
DWORD
): Integer; stdcall; external IfImg.dll';
●VISUAL C# .NET(x86、x64 共用)
[DllImport("IfImg.dll")]
public static extern int ImgOutputCCPluse(
IntPtr
DeviceHandle,
//
uint
CcSignal
//
);
//
//
●VISUAL C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgOutputCCPluse(
uint
DeviceHandle,
//
uint
CcSignal
//
);
デバイスハンドル
CC 信号
デバイスハンドル
CC 信号
デバイスハンドル
CC 信号
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgOutputCCPluse Lib "IfImg.dll"( _
ByVal
DeviceHandle
As IntPtr, _
‘ デバイスハンドル
ByVal
CcSignal,
As Integer _
‘ CC 信号
)As Integer
●Visual Basic .NET(x86 専用)
Declare Function ImgOutputCCPluse Lib "IfImg.dll"( _
ByVal
DeviceHandle
As Integer, _
‘ デバイスハンドル
ByVal
CcSignal,
As Integer _
‘ CC 信号
)As Integer
© 2003, 2016 Interface Corporation. All rights reserved.
406
GPC-5520 Help for Windows
●Delphi 8
class function ImgOutputCCPluse (
DeviceHandle:
Integer;
CcSignal:
Cardinal
): Integer; static;
//
//
デバイスハンドル
CC 信号
【パラメータ】
DeviceHandle
ImgOpen関数で取得したデバイスハンドルを指定してください。
CcSignal
出力する CC 信号を選択します。
識別子
値
IFIMGCL_CC1
00000001h
IFIMGCL_CC2
00000002h
IFIMGCL_CC3
00000004h
IFIMGCL_CC4
00000008h
内容
CC1 信号
CC2 信号
CC3 信号
CC4 信号
【使用例】
●C 言語
INT Ret;
HANDLE DeviceHandle;
Ret = ImgOutputCCPluse(DeviceHandle, IFIMGCL_CC1);
●Visual Basic
Dim DeviceHandle As Long
Ret = ImgOutputCCPluse(DeviceHandle, IFIMGCL_CC1)
●Delphi
var
DeviceHandle: THandle;
Ret: Integer;
Ret := ImgOutputCCPluse (DeviceHandle, IFIMGCL_CC1);
●Visual C# .NET
uint Ret;
IntPtr DeviceHandle;
Ret = IFCIMG_ANY.ImgOutputCCPluse(DeviceHandle, IFCIMG_ANY.IFIMGCL_CC1);
© 2003, 2016 Interface Corporation. All rights reserved.
407
GPC-5520 Help for Windows
●Visual Basic.NET
Dim DeviceHandle As IntPtr
Ret = IFCIMG_ANY.ImgOutputCCPluse(DeviceHandle, IFCIMG_ANY.IFIMGCL_CC1)
●Delphi 8
var
DeviceHandle: IntPtr;
Ret: Integer;
Ret := IFCIMG_ANY.ImgOutputCCPluse (DeviceHandle, IFCIMG_ANY.IFIMGCL_CC1);
CC 信号 1 を 1 パルス出力します。
© 2003, 2016 Interface Corporation. All rights reserved.
408
GPC-5520 Help for Windows
55. ImgSerialSend
シリアル制御方式で、カメラへデータを送信します。
【書式】
●C 言語
INT ImgSerialSend (
HANDLE
DeviceHandle,
PVOID
BuffPtr,
PDWORD
BuffSize,
DWORD
TimeOut
);
//
//
//
//
デバイスハンドル
送信データ
送信データのサイズ
タイムアウト時間
●Visual Basic
Declare Function ImgSerialSendLib "IfImg.dll"( _
ByVal
DeviceHandle
As Long, _
‘
ByRef
BuffPtr
As Any, _
‘
ByRef
BuffSize
As Long, _
‘
ByVal
TimeOut
As Long _
‘
)As Long
デバイスハンドル
送信データ
送信データのサイズ
タイムアウト時間
●Delphi
function ImgSerialSend (
DeviceHandle:
THandle; // デバイスハンドル
BuffPtr:
Pointer; // 送信データ
var BuffSize:
DWORD;
// 送信データのサイズ
TimeOut:
DWORD
// タイムアウト時間
): Integer; stdcall; external 'IfImg.dll';
●VISUAL C# .NET(x86、x64 共用)
[DllImport("IfImg.dll")]
public static extern int ImgSerialSend (
IntPtr
DeviceHandle,
//
byte[]
BuffPtr,
//
out uint
BuffSize,
//
uint
TimeOut
//
);
[DllImport("IfImg.dll")]
public static extern int ImgSerialSend (
IntPtr
DeviceHandle,
//
short[]
BuffPtr,
//
out uint
BuffSize,
//
uint
TimeOut
//
);
デバイスハンドル
送信データ
送信データのサイズ
タイムアウト
デバイスハンドル
送信データ
送信データのサイズ
タイムアウト
© 2003, 2016 Interface Corporation. All rights reserved.
409
GPC-5520 Help for Windows
[DllImport("IfImg.dll")]
public static extern int ImgSerialSend (
IntPtr
DeviceHandle,
//
uint[]
BuffPtr,
//
out uint
BuffSize,
//
uint
TimeOut
//
);
[DllImport("IfImg.dll")]
public static extern int ImgSerialSend (
IntPtr
DeviceHandle,
//
string
BuffPtr,
//
out uint
BuffSize,
//
uint
TimeOut
//
);
[DllImport("IfImg.dll")]
public static extern int ImgSerialSend (
IntPtr
DeviceHandle,
//
IntPtr
BuffPtr,
//
out uint
BuffSize,
//
uint
TimeOut
//
);
●VISUAL C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgSerialSend (
uint
DeviceHandle,
//
byte[]
BuffPtr,
//
out uint
BuffSize,
//
uint
TimeOut
//
);
[DllImport("IfImg.dll")]
public static extern int ImgSerialSend (
uint
DeviceHandle,
//
short[]
BuffPtr,
//
out uint
BuffSize,
//
uint
TimeOut
//
);
[DllImport("IfImg.dll")]
public static extern int ImgSerialSend (
uint
DeviceHandle,
//
uint[]
BuffPtr,
//
out uint
BuffSize,
//
uint
TimeOut
//
);
デバイスハンドル
送信データ
送信データのサイズ
タイムアウト
デバイスハンドル
送信データ
送信データのサイズ
タイムアウト
デバイスハンドル
送信データ
送信データのサイズ
タイムアウト
デバイスハンドル
送信データ
送信データのサイズ
タイムアウト
デバイスハンドル
送信データ
送信データのサイズ
タイムアウト
デバイスハンドル
送信データ
送信データのサイズ
タイムアウト
© 2003, 2016 Interface Corporation. All rights reserved.
410
GPC-5520 Help for Windows
[DllImport("IfImg.dll")]
public static extern int ImgSerialSend (
uint
DeviceHandle,
//
string
BuffPtr,
//
out uint
BuffSize,
//
uint
TimeOut
//
);
[DllImport("IfImg.dll")]
public static extern int ImgSerialSend (
uint
DeviceHandle,
//
IntPtr
BuffPtr,
//
out uint
BuffSize,
//
uint
TimeOut
//
);
デバイスハンドル
送信データ
送信データのサイズ
タイムアウト
デバイスハンドル
送信データ
送信データのサイズ
タイムアウト
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgSerialSend Lib "IfImg.DLL"(
ByVal
DeviceHandle
As IntPtr, _
ByVal
BuffPtr( )
As Byte, _
ByRef
BuffSize
As Integer, _
ByVal
TimeOut
As Integer _
)As Integer
_
‘
‘
‘
‘
デバイスハンドル
送信データ
送信データのサイズ
タイムアウト
Declare Function ImgSerialSend Lib "IfImg.DLL"(
ByVal
DeviceHandle
As Integer, _
ByVal
BuffPtr( )
As Short, _
ByRef
BuffSize
As Integer, _
ByVal
TimeOut
As Integer _
)As Integer
_
‘
‘
‘
‘
デバイスハンドル
送信データ
送信データのサイズ
タイムアウト
Declare Function ImgSerialSend Lib "IfImg.DLL"(
ByVal
DeviceHandle
As IntPtr, _
ByVal
BuffPtr( )
As Integer, _
ByRef
BuffSize
As Integer, _
ByVal
TimeOut
As Integer _
)As Integer
_
‘
‘
‘
‘
デバイスハンドル
送信データ
送信データのサイズ
タイムアウト
Declare Function ImgSerialSend Lib "IfImg.DLL"(
ByVal
DeviceHandle
As IntPtr, _
ByVal
BuffPtr
As String, _
ByRef
BuffSize
As Integer, _
ByVal
TimeOut
As Integer _
)As Integer
_
‘
‘
‘
‘
デバイスハンドル
送信データ
送信データのサイズ
タイムアウト
© 2003, 2016 Interface Corporation. All rights reserved.
411
GPC-5520 Help for Windows
Declare Function ImgSerialSend Lib "IfImg.DLL"(
ByVal
DeviceHandle
As IntPtr, _
ByVal
BuffPtr
As IntPtr, _
ByRef
BuffSize
As Integer, _
ByVal
TimeOut
As Integer _
)As Integer
_
‘
‘
‘
‘
デバイスハンドル
送信データ
送信データのサイズ
タイムアウト
_
‘
‘
‘
‘
デバイスハンドル
送信データ
送信データのサイズ
タイムアウト
Declare Function ImgSerialSend Lib "IfImg.DLL"(
ByVal
DeviceHandle
As Integer, _
ByVal
BuffPtr( )
As Short, _
ByRef
BuffSize
As Integer, _
ByVal
TimeOut
As Integer _
)As Integer
_
‘
‘
‘
‘
デバイスハンドル
送信データ
送信データのサイズ
タイムアウト
Declare Function ImgSerialSend Lib "IfImg.DLL"(
ByVal
DeviceHandle
As Integer, _
ByVal
BuffPtr( )
As Integer, _
ByRef
BuffSize
As Integer, _
ByVal
TimeOut
As Integer _
)As Integer
_
‘
‘
‘
‘
デバイスハンドル
送信データ
送信データのサイズ
タイムアウト
Declare Function ImgSerialSend Lib "IfImg.DLL"(
ByVal
DeviceHandle
As Integer, _
ByVal
BuffPtr
As String, _
ByRef
BuffSize
As Integer, _
ByVal
TimeOut
As Integer _
)As Integer
_
‘
‘
‘
‘
デバイスハンドル
送信データ
送信データのサイズ
タイムアウト
Declare Function ImgSerialSend Lib "IfImg.DLL"(
ByVal
DeviceHandle
As Integer, _
ByVal
BuffPtr
As IntPtr, _
ByRef
BuffSize
As Integer, _
ByVal
TimeOut
As Integer _
)As Integer
_
‘
‘
‘
‘
デバイスハンドル
送信データ
送信データのサイズ
タイムアウト
●Visual Basic .NET(x86 専用)
Declare Function ImgSerialSend Lib "IfImg.DLL"(
ByVal
DeviceHandle
As Integer, _
ByVal
BuffPtr( )
As Byte, _
ByRef
BuffSize
As Integer, _
ByVal
TimeOut
As Integer _
)As Integer
© 2003, 2016 Interface Corporation. All rights reserved.
412
GPC-5520 Help for Windows
●Delphi 8
class function
ImgSerialSend (
DeviceHandle:
Integer;
BuffPtr:
array of Bytel;
var BuffSize:
Cardinal;
TimeOut:
Cardinal
): Integer; static;
ImgSerialSend (
DeviceHandle:
Integer;
BuffPtr:
array of Word;
var BuffSize:
Cardinal;
TimeOut:
Cardinal
): Integer; static;
//
//
//
//
デバイスハンドル
送信データ
送信データのサイズ
タイムアウト
//
//
//
//
デバイスハンドル
送信データ
送信データのサイズ
タイムアウト
class function
class function
ImgSerialSend (
DeviceHandle:
Integer;
BuffPtr;
array of Cardinal;
var BuffSize:
Cardinal;
TimeOut:
Cardinal
): Integer; static;
ImgSerialSend (
Integer;
IntPtr;
Cardinal;
Cardinal
): Integer; static;
//
//
//
//
デバイスハンドル
送信データ
送信データのサイズ
タイムアウト
//
//
//
//
デバイスハンドル
送信データ
送信データのサイズ
タイムアウト
class function
DeviceHandle:
BuffPtr;
var BuffSize:
TimeOut:
【パラメータ】
DeviceHandle
ImgOpen関数で取得したデバイスハンドルを指定してください。
BuffPtr
送信データを格納しているバッファのポインタ(参照渡し)を指定します。
BuffSize
送信データバッファのサイズを格納している変数のポインタ(参照渡し)を指定します。
関数実行後、この変数には実際に送信したデータのサイズが格納されます。
TimeOut
タイムアウト時間を ms 単位で指定します。
送信用 FIFO がフルになっている状態が、指定した時間を超えた場合、関数はタイムアウ
トエラーを返します。
© 2003, 2016 Interface Corporation. All rights reserved.
413
GPC-5520 Help for Windows
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、
『4.5 戻り値一覧』をご参照くださ
い。
【使用例】
●C 言語
INT Ret;
HANDLE DeviceHandle;
DWORD SendSize;
BYTE
SendData[11];
SendSize = 11;
// ”Interface”文字列(ASCII)をセット
SendData[0] = 0x02; // STX
SendData[1] = 0x49; // I
SendData[2] = 0x6E; // n
SendData[3] = 0x74; // t
SendData[4] = 0x65; // e
SendData[5] = 0x72; // r
SendData[6] = 0x66; // f
SendData[7] = 0x61; // a
SendData[8] = 0x63; // c
SendData[9] = 0x65; // e
SendData[10] = 0x03; // ETX
Ret = ImgSerialSend(DeviceHandle, SendData , &SendSize, 1000);
© 2003, 2016 Interface Corporation. All rights reserved.
414
GPC-5520 Help for Windows
●Visual Basic
Dim DeviceHandle As Long
Dim Ret As Integer
Dim SendSize As Long
Dim SendData(11) As Byte
:
SendSize = 11
' ”Interface”文字列(ASCII)をセット
SendData(0) = &H02 ' STX
SendData(1) = &H49 ' I
SendData(2) = &H6E ' n
SendData(3) = &H74 ' t
SendData(4) = &H65 ' e
SendData(5) = &H72 ' r
SendData(6) = &H66 ' f
SendData(7) = &H61 ' a
SendData(8) = &H63 ' c
SendData(9) = &H65 ' e
SendData(10) = &H03 ' ETX
Ret = ImgSerialSend(DeviceHandle, SendData(0), SendSize, 1000)
© 2003, 2016 Interface Corporation. All rights reserved.
415
GPC-5520 Help for Windows
●Delphi
var
DeviceHandle: THandle;
Ret: Integer;
SendSize: DWORD;
SendData: Array[0..10] of byte;
SendSize := 11;
// ”Interface”文字列(ASCII)をセット
SendData[0] := $02; // STX
SendData[1] := $49; // I
SendData[2] := $6E; // n
SendData[3] := $74; // t
SendData[4] := $65; // e
SendData[5] := $72; // r
SendData[6] := $66; // f
SendData[7] := $61; // a
SendData[8] := $63; // c
SendData[9] := $65; // e
SendData[10] := $03; // ETX
Ret := ImgSerialSend(DeviceHandle, SendData, SendSize, 1000);
●VISUAL C# .NET
uint ret;
IntPtr DeviceHandle;
uint SendSize;
byte SendData[11];
SendSize = 11;
// ”Interface”文字列(ASCII)をセット
SendData[0] = 0x02; // STX
SendData[1] = 0x49; // I
SendData[2] = 0x6E; // n
SendData[3] = 0x74; // t
SendData[4] = 0x65; // e
SendData[5] = 0x72; // r
SendData[6] = 0x66; // f
SendData[7] = 0x61; // a
SendData[8] = 0x63; // c
SendData[9] = 0x65; // e
SendData[10] = 0x03; // ETX
ret = IFCIMG_ANY.ImgSerialSend(DeviceHandle, SendData , out SendSize, 1000);
© 2003, 2016 Interface Corporation. All rights reserved.
416
GPC-5520 Help for Windows
●Visual Basic .NET
Dim DeviceHandle As IntPtr
Dim ret As Integer
Dim SendSize As Integer
Dim SendData(11) As Byte
:
SendSize = 11
' ”Interface”文字列(ASCII)をセット
SendData(0) = &H02 ' STX
SendData(1) = &H49 ' I
SendData(2) = &H6E ' n
SendData(3) = &H74 ' t
SendData(4) = &H65 ' e
SendData(5) = &H72 ' r
SendData(6) = &H66 ' f
SendData(7) = &H61 ' a
SendData(8) = &H63 ' c
SendData(9) = &H65 ' e
SendData(10) = &H03 ' ETX
Ret = IFCIMG_ANY.ImgSerialSend(DeviceHandle, SendData(0), SendSize, 1000)
●Delphi 8
var
DeviceHandle: Integer;
ret: Integer;
SendSize: Integer;
SendData: Array[0..10] of byte;
SendSize := 11;
// ”Interface”文字列(ASCII)をセット
SendData[0] := $02; // STX
SendData[1] := $49; // I
SendData[2] := $6E; // n
SendData[3] := $74; // t
SendData[4] := $65; // e
SendData[5] := $72; // r
SendData[6] := $66; // f
SendData[7] := $61; // a
SendData[8] := $63; // c
SendData[9] := $65; // e
SendData[10] := $03; // ETX
ret := IFCIMG_ANY.ImgSerialSend(DeviceHandle, SendData, SendSize, 1000);
© 2003, 2016 Interface Corporation. All rights reserved.
417
GPC-5520 Help for Windows
STX,ETX コード付きの文字列(Interface)を送信します。
送信データのフォーマットはご使用のカメラによって異なりますので、カメラのマニュアルを参
照してください。
© 2003, 2016 Interface Corporation. All rights reserved.
418
GPC-5520 Help for Windows
56. ImgSerialReceive
【機能】
シリアル通信方式でカメラからのデータを受信します。
【書式】
●C 言語
INT ImgSerialReceive (
HANDLE
DeviceHandle,
PVOID
BuffPtr,
PDWORD
BuffSize,
DWORD
TimeOut
);
//
//
//
//
デバイスハンドル
受信データ
受信データのサイズ
タイムアウト時間
●Visual Basic
Declare Function ImgSerialReceive Lib "IfImg.dll"( _
ByVal
DeviceHandle
As Long, _
‘ デバイスハンドル
ByRef
BuffPtr
As Any, _
‘ 受信データ
ByRef
BuffSize
As Long, _
‘ 受信データのサイズ
ByVal
TimeOut
As Long _
‘ タイムアウト時間
)As Long
●Delphi
function ImgSerialReceive (
DeviceHandle:
Thandle;
// デバイスハンドル
BuffPtr
Pointer;
// 受信データ
var BuffSize:
DWORD;
// 受信データのサイズ
TimeOut:
DWORD
// タイムアウト時間
): Integer; stdcall; external 'IfImg.dll';
●VISUAL C# .NET(x86、x64 共用)
[DllImport("IfImg.dll")]
public static extern int ImgSerialReceive
IntPtr
DeviceHandle,
//
byte[]
BuffPtr,
//
out uint
BuffSize,
//
uint
TimeOut
//
);
[DllImport("IfImg.dll")]
public static extern int ImgSerialReceive
IntPtr
DeviceHandle,
//
short[]
BuffPtr,
//
out uint
BuffSize,
//
uint
TimeOut
//
);
(
デバイスハンドル
受信データ
受信データのサイズ
タイムアウト
(
デバイスハンドル
受信データ
受信データのサイズ
タイムアウト
© 2003, 2016 Interface Corporation. All rights reserved.
419
GPC-5520 Help for Windows
[DllImport("IfCml.dll")]
public static extern int ImgSerialReceive
IntPtr
DeviceHandle,
//
uint[]
BuffPtr,
//
out uint
BuffSize,
//
uint
TimeOut
//
);
(
デバイスハンドル
受信データ
受信データのサイズ
タイムアウト
[DllImport("IfCml.dll")]
public static extern int ImgSerialReceive
IntPtr
DeviceHandle,
//
IntPtr
BuffPtr,
//
out uint
BuffSize,
//
uint
TimeOut
//
);
(
デバイスハンドル
受信データ
受信データのサイズ
タイムアウト
●VISUAL C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgSerialReceive
uint
DeviceHandle,
//
byte[]
BuffPtr,
//
out uint
BuffSize,
//
uint
TimeOut
//
);
(
デバイスハンドル
受信データ
受信データのサイズ
タイムアウト
[DllImport("IfImg.dll")]
public static extern int ImgSerialReceive
uint
DeviceHandle,
//
short[]
BuffPtr,
//
out uint
BuffSize,
//
uint
TimeOut
//
);
(
デバイスハンドル
受信データ
受信データのサイズ
タイムアウト
[DllImport("IfImg.dll")]
public static extern int ImgSerialReceive
uint
DeviceHandle,
//
uint[]
BuffPtr,
//
out uint
BuffSize,
//
uint
TimeOut
//
);
(
デバイスハンドル
受信データ
受信データのサイズ
タイムアウト
[DllImport("IfImg.dll")]
public static extern int ImgSerialReceive
uint
DeviceHandle,
//
IntPtr
BuffPtr,
//
out uint
BuffSize,
//
uint
TimeOut
//
);
(
デバイスハンドル
受信データ
受信データのサイズ
タイムアウト
© 2003, 2016 Interface Corporation. All rights reserved.
420
GPC-5520 Help for Windows
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgSerialReceive Lib "IfImg.DLL"( _
ByVal
DeviceHandle
As IntPtr, _
‘ デバイスハンドル
ByVal
BuffPtr( )
As Byte, _
‘ 受信データ
ByRef
BuffSize
As Integer, _
‘ 受信データのサイズ
ByVal
TimeOut
As Integer _
‘ タイムアウト
)As Integer
Declare Function ImgSerialReceive Lib "IfImg.DLL"( _
ByVal
DeviceHandle
As IntPtr, _
‘ デバイスハンドル
ByVal
BuffPtr( )
As Short, _
‘ 受信データ
ByRef
BuffSize
As Integer, _
‘ 受信データのサイズ
ByVal
TimeOut
As Integer _
‘ タイムアウト
)As Integer
Declare Function ImgSerialReceive Lib "IfImg.DLL"( _
ByVal
DeviceHandle
As IntPtr, _
‘ デバイスハンドル
ByVal
BuffPtr( )
As Integer, _
‘ 受信データ
ByRef
BuffSize
As Integer, _
‘ 受信データのサイズ
ByVal
TimeOut
As Integer _
‘ タイムアウト
)As Integer
Declare Function ImgSerialReceive Lib "IfImg.DLL"( _
ByVal
DeviceHandle
As IntPtr, _
‘ デバイスハンドル
ByVal
BuffPtr
As IntPtr, _
‘ 受信データ
ByRef
BuffSize
As Integer, _
‘ 受信データのサイズ
ByVal
TimeOut
As Integer _
‘ タイムアウト
)As Integer
●Visual Basic .NET(x86 専用)
Declare Function ImgSerialReceive Lib "IfImg.DLL"( _
ByVal
DeviceHandle
As Integer, _
‘ デバイスハンドル
ByVal
BuffPtr( )
As Byte, _
‘ 受信データ
ByRef
BuffSize
As Integer, _
‘ 受信データのサイズ
ByVal
TimeOut
As Integer _
‘ タイムアウト
)As Integer
Declare Function ImgSerialReceive Lib "IfImg.DLL"( _
ByVal
DeviceHandle
As Integer, _
‘ デバイスハンドル
ByVal
BuffPtr( )
As Short, _
‘ 受信データ
ByRef
BuffSize
As Integer, _
‘ 受信データのサイズ
ByVal
TimeOut
As Integer _
‘ タイムアウト
)As Integer
© 2003, 2016 Interface Corporation. All rights reserved.
421
GPC-5520 Help for Windows
Declare Function ImgSerialReceive Lib "IfImg.DLL"( _
ByVal
DeviceHandle
As Integer, _
‘ デバイスハンドル
ByVal
BuffPtr( )
As Integer, _
‘ 受信データ
ByRef
BuffSize
As Integer, _
‘ 受信データのサイズ
ByVal
TimeOut
As Integer _
‘ タイムアウト
)As Integer
Declare Function ImgSerialReceive Lib "IfImg.DLL"( _
ByVal
DeviceHandle
As Integer, _
‘ デバイスハンドル
ByVal
BuffPtr
As IntPtr, _
‘ 受信データ
ByRef
BuffSize
As Integer, _
‘ 受信データのサイズ
ByVal
TimeOut
As Integer _
‘ タイムアウト
)As Integer
●Delphi 8
class function
ImgSerialReceive (
DeviceHandle:
Integer;
BuffPtr:
array of byte;
var BuffSize:
Cardinal;
TimeOut:
Cardinal
): Integer; static;
ImgSerialReceive (
Integer;
array of Word;
Cardinal;
Cardinal
): Integer; static;
//
//
//
//
デバイスハンドル
受信データ
受信データのサイズ
タイムアウト
//
//
//
//
デバイスハンドル
受信データ
受信データのサイズ
タイムアウト
class function
DeviceHandle:
BuffPtr;
var BuffSize:
TimeOut:
class function
ImgSerialReceive (
Integer;
array of Cardinal;
Cardinal;
Cardinal
): Integer; static;
DeviceHandle:
BuffPtr
var BuffSize:
TimeOut:
ImgSerialReceive (
Integer;
IntPtr;
Cardinal;
Cardinal
): Integer; static;
//
//
//
//
デバイスハンドル
受信データ
受信データのサイズ
タイムアウト
//
//
//
//
デバイスハンドル
受信データ
受信データのサイズ
タイムアウト
class function
DeviceHandle:
BuffPtr
var BuffSize:
TimeOut:
【パラメータ】
DeviceHandle
ImgOpen関数で取得したデバイスハンドルを指定してください。
© 2003, 2016 Interface Corporation. All rights reserved.
422
GPC-5520 Help for Windows
BuffPtr
受信データを格納しているバッファポインタ(参照渡し)を指定します。
BuffSize
受信データバッファのサイズが格納された変数のポインタ(参照渡し)を指定します。
TimeOut
タイムアウト時間を ms 単位で指定します。
受信用 FIFO が空になっている状態が、指定した時間を超えた場合、関数はタイムアウト
エラーを返します。
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、
『4.5 戻り値一覧』をご参照くださ
い。
【使用例】
●C 言語
INT Ret;
HANDLE DeviceHandle;
BYTE Buf[5];
DWORD RecvSize;
RecvSize = 5;
:
Ret = ImgSerialReceive(DeviceHandle, Buf, &RecvSize, 1000);
●Visual Basic
Dim DeviceHandle As Long
Dim Ret As Integer
Dim Buf(0 to 4) As Byte
Dim RecvSize As Long
RecvSize = 5
:
Ret = ImgSerialReceive(DeviceHandle, Buf(0), RecvSize, 1000)
© 2003, 2016 Interface Corporation. All rights reserved.
423
GPC-5520 Help for Windows
●Delphi
var
DeviceHandle: THandle;
Buf: Array[0..4] of Char;
Ret: Integer;
RecvSize: DWORD;
RecvSize := 5;
:
Ret := ImgSerialReceive(DeviceHandle, Buf , RecvSize, 1000);
●VISUAL C# .NET
uint ret;
IntPtr DeviceHandle;
byte Buf[5];
uint RecvSize;
RecvSize = 5;
ret = IFCIMG_ANY.CmlSerialReceive(DeviceHandle, Buf, out RecvSize, 1000);
●Visual Basic .NET
Dim DeviceHandle As IntPtr
Dim ret As Integer
Dim Buf(0 to 4) As Byte
Dim RecvSize As Integer
RecvSize = 5;
ret = IFCIMG_ANY.CmlSerialReceive(DeviceHandle, Buf(0), RecvSize, 1000)
●Delphi 8
var
DeviceHandle: Integer;
Buf: Array[0..4] of Byte;
ret: Integer;
RecvSize: Integer;
RecvSize := 5;
ret := IFCIMG_ANY.CmlSerialReceive(DeviceHandle, Buf , RecvSize, 1000);
カメラへシリアル通信方法により、5 バイト分データを受信します。
© 2003, 2016 Interface Corporation. All rights reserved.
424
GPC-5520 Help for Windows
57. ImgGetSerialStatus
【機能】
デバイスの送信用 FIFO と受信用 FIFO の状態を取得します。
【書式】
●C 言語
INT ImgGetSerialStatus(
HANDLE
DeviceHandle,
PDWORD
Status,
PDWORD
DataSize
);
//
//
//
デバイスハンドル
シリアルステータス
受信サイズ
●Visual Basic
Declare Function ImgGetSerialStatus Lib "IfImg.dll"( _
ByVal
DeviceHandle
As Long, _
‘ デバイスハンドル
ByRef
Status
As Long, _
‘ シリアルステータス
ByRef
DataSize
As Long _
‘ 受信サイズ
)As Long
●Delphi
function ImgGetSerialStatus (
DeviceHandle:
Thandle;
// デバイスハンドル
var Status:
DWORD;
// シリアルステータス
var DataSize:
DWORD
// 受信サイズ
): Integer; stdcall; external 'IfImg.dll';
●VISUAL C# .NET(x86、x64 共用)
[DllImport("IfImg.dll")]
public static extern int ImgGetSerialStatus(
IntPtr
DeviceHandle,
// デバイスハンドル
out uint
Status,
// シリアルステータス
out uint
DataSize
// 受信サイズ
);
●VISUAL C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgGetSerialStatus(
uint
DeviceHandle,
// デバイスハンドル
out uint
Status,
// シリアルステータス
out uint
DataSize
// 受信サイズ
);
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgGetSerialStatus Lib "IfImg.dll"( _
ByVal
DeviceHandle
As IntPtr, _
‘ デバイスハンドル
ByRef
Status
As Integer, _
‘ シリアルステータス
ByRef
DataSize
As Integer _
‘ 受信サイズ
)As Integer
© 2003, 2016 Interface Corporation. All rights reserved.
425
GPC-5520 Help for Windows
●Visual Basic .NET(x86 専用)
Declare Function ImgGetSerialStatus Lib "IfImg.dll"( _
ByVal
DeviceHandle
As Integer, _
‘ デバイスハンドル
ByRef
Status
As Integer, _
‘ シリアルステータス
ByRef
DataSize
As Integer _
‘ 受信サイズ
)As Integer
●Delphi 8
class function ImgGetSerialStatus
DeviceHandle:
Integer;
var Status:
Cardinal;
var DataSize:
Cardinal
): Integer; static;
(
//
//
//
デバイスハンドル
シリアルステータス
受信サイズ
【パラメータ】
DeviceHandle
ImgOpen関数で取得したデバイスハンドルを指定してください。
Status
ステータスを格納する変数のポインタ(参照渡し)を指定します。
ビット
bit31~bit6
bit5
bit4
bit3
bit2
bit1
bit0
内容
予約
送信状態
1:送信完了
0:送信中
送信用 FIFO の状態
1:フルになっている。
0:フルになっていない。
予約
受信用 FIFO 状態
1:オーバーフローした。
0:オーバーフローしていない。
受信状態
1:受信完了/受信待機中
0:受信中
受信用 FIFO 状態
1:フルになっている
0:フルになっていない
説明
予約です。
送信完了時に ImgSerialSend 関数でデータを送
信する事ができます。
送信用 FIFO がフルになっており、ImgSerialSend
関数でデータを送信する事ができません。
予約です。
受信用ハードウェア FIFO がオーバーフローして
おり、受信データを取りこぼしています。
受信中の場合、受信用ハードウェア FIFO にデー
タが入っている事を意味します。
ImgSerialReceive 関数でデータを取得する事が
できます。
受信用ハードウェア FIFO がフルになっており、
受信データを取りこぼす可能性があります。
DataSize
受信 FIFO に格納されている受信データの容量が格納されます。(0~4096)
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、
『4.5 戻り値一覧』をご参照くださ
い。
© 2003, 2016 Interface Corporation. All rights reserved.
426
GPC-5520 Help for Windows
【使用例】
●C 言語
INT Ret;
HANDLE DeviceHandle;
DWORD Status;
DWORD DataSize;
:
Ret = ImgGetSerialStatus(DeviceHandle, &Status, &DataSize);
●Visual Basic
Dim DeviceHandle As Long
Dim Ret As Integer
Dim Status As Long
Dim DataSize As Long
:
Ret = ImgGetSerialStatus(DeviceHandle, Status, DataSize)
●Delphi
var
DeviceHandle: THandle;
Ret: Integer;
Status: DWORD;
DataSize: DWORD;
:
Ret := ImgGetSerialStatus(DeviceHandle, Status, DataSize);
●Visual C# .NET
int Ret;
IntPtr DeviceHandle;
uint Status;
uint DataSize;
:
Ret = IFCIMG_ANY.ImgGetSerialStatus(DeviceHandle, out Status, out DataSize);
© 2003, 2016 Interface Corporation. All rights reserved.
427
GPC-5520 Help for Windows
●Visual Basic.NET
Dim DeviceHandle As IntPtr
Dim Ret As Integer
Dim Status As Intger
Dim DataSize As Integer
:
Ret = IFCIMG_ANY.ImgGetSerialStatus(DeviceHandle, Status, DataSize)
●Delphi 8
var
DeviceHandle: Integer;
Ret: Integer;
Status: Cardinal;
DataSize: Cardinal;
:
Ret := IFCIMG_ANY.ImgGetSerialStatus(DeviceHandle, Status, DataSize);
シリアル通信状態を取得します。
© 2003, 2016 Interface Corporation. All rights reserved.
428
GPC-5520 Help for Windows
58. ImgSerialClear
【機能】
デバイスの送信用 FIFO と受信用 FIFO 内のデータをクリアします。
【書式】
●C 言語
INT ImgSerialClear (
HANDLE
DeviceHandle,
DWORD
Fifo
);
// デバイスハンドル
// FIFO
●Visual Basic
Declare Function ImgSerialClear Lib "IfImg.dll"( _
ByVal
DeviceHandle
As Long, _
‘ デバイスハンドル
ByVal
Fifo
As Long _
‘ FIFO
)As Long
●Delphi
function ImgSerialClear(
DeviceHandle:
Thandle;
// デバイスハンドル
Fifo:
DWORD
// FIFO
): Integer; stdcall; external 'IfImg.dll';
●VISUAL C# .NET(x86、x64 共用)
[DllImport("IfImg.dll")]
public static extern int ImgSerialClear (
IntPtr
DeviceHandle,
// デバイスハンドル
uint
Fifo
// FIFO
);
●VISUAL C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgSerialClear (
uint
DeviceHandle,
// デバイスハンドル
uint
Fifo
// FIFO
);
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgSerialClear Lib "IfImg.dll"( _
ByVal
DeviceHandle
As IntPtr, _
‘ デバイスハンドル
ByVal
Fifo
As Integer _
‘ FIFO
)As Integer
●Visual Basic .NET(x86 専用)
Declare Function ImgSerialClear Lib "IfImg.dll"( _
ByVal
DeviceHandle
As Integer, _
‘ デバイスハンドル
ByVal
Fifo
As Integer _
‘ FIFO
)As Integer
© 2003, 2016 Interface Corporation. All rights reserved.
429
GPC-5520 Help for Windows
●Delphi 8
class function ImgSerialClear(
DeviceHandle:
Integer;
Fifo:
Caerdinal
): Integer; static;
// デバイスハンドル
// FIFO
【パラメータ】
DeviceHandle
ImgOpen関数で取得したデバイスハンドルを指定してください。
Fifo
クリアする FIFO を選択します。同時指定可能です。
識別子
値
内容
IFIMGCL_SEND_FIFO
00000001h
送信用 FIFO
IFIMGCL_RECEIVE_FIFO 00000002h
受信用 FIFO
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、
『4.5 戻り値一覧』をご参照くださ
い。
【使用例】
●C 言語
INT Ret;
HANDLE DeviceHandle;
:
Ret = ImgSerialClear(DeviceHandle, IFIMGCL_SEND_FIFO);
●Visual Basic
Dim DeviceHandle As Long
Dim Ret As Integer
:
Ret = ImgSerialClear(DeviceHandle, IFIMGCL_SEND_FIFO)
●Delphi
var
DeviceHandle: THandle;
Ret: Integer;
:
Ret := ImgSerialClear(DeviceHandle, IFIMGCL_SEND_FIFO);
© 2003, 2016 Interface Corporation. All rights reserved.
430
GPC-5520 Help for Windows
●Visual C# .NET
int Ret;
IntPtr DeviceHandle;
:
Ret = IFCIMG_ANY.ImgSerialClear(DeviceHandle, IFCIMG_ANY.IFIMGCL_SEND_FIFO);
●Visual Basic.NET
Dim DeviceHandle As IntPtr
Dim Ret As Integer
:
Ret = IFCIMG_ANY.ImgSerialClear(DeviceHandle, IFCIMG_ANY.IFIMGCL_SEND_FIFO)
●Delphi 8
var
DeviceHandle: Integer;
Ret: Integer;
:
Ret := IFCIMG_ANY.ImgSerialClear(DeviceHandle, IFCIMG_ANY.IFIMGCL_SEND_FIFO);
送信 FIFO の中身をクリアします。
© 2003, 2016 Interface Corporation. All rights reserved.
431
GPC-5520 Help for Windows
59. ImgOutputPower
【機能】
カメラへの給電を行います。カメラが PoCL 規格のみ対応しています。
【書式】
●C 言語
INT ImgOutputPower(
HANDLE
DeviceHandle,
DWORD
Power
);
// デバイスハンドル
// パワーON/OFF
●Visual Basic
Declare Function ImgOutputPower Lib "IfImg.dll"( _
ByVal
DeviceHandle
As Long, _
‘ デバイスハンドル
ByVal
Power
As Long _
‘ パワーON/OFF
)As Long
●Delphi
function ImgOutputPower(
DeviceHandle:
THandle; // デバイスハンドル
Power:
DWORD
// パワーON/OFF
): Integer; stdcall; external 'IfImg.dll';
●VISUAL C# .NET(x86、x64 共用)
[DllImport("IfImg.dll")]
public static extern int ImgOutputPower(
IntPtr
DeviceHandle,
// デバイスハンドル
uint
Power
// パワーON/OFF
);
●VISUAL C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgOutputPower(
uint
DeviceHandle,
// デバイスハンドル
uint
Power
// パワーON/OFF
);
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgOutputPower Lib "IfImg.dll"( _
ByVal
DeviceHandle
As IntPtr, _
‘ デバイスハンドル
ByVal
Power
As Intger _
‘ パワーON/OFF
)As Integer
●Visual Basic .NET(x86 専用)
Declare Function ImgOutputPower Lib "IfImg.dll"( _
ByVal
DeviceHandle
As Integer _
‘ デバイスハンドル
ByVal
Power
As Intger _
‘ パワーON/OFF
)As Integer
© 2003, 2016 Interface Corporation. All rights reserved.
432
GPC-5520 Help for Windows
●Delphi 8
class function ImgOutputPower(
DeviceHandle:
Integer;
Power:
Cardinal
): Integer; static;
// デバイスハンドル
// パワーON/OFF
【パラメータ】
DeviceHandle
ImgOpen関数で取得したデバイスハンドルを指定してください。
Power
カメラへの電源 ON/OFF を指定します。
識別子
値
内容
IFIMGCL_PWR_ON
00000001h
カメラへ給電する
IFIMGCL_PWR_OFF 00000000h
カメラへ給電しない
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、
『4.5 戻り値一覧』をご参照くださ
い。
【備考】
・PoCL 対応のカメラに電源を供給した場合、カメラによっては電源が安定するまでに時間がか
かる場合があります。
【使用例】
●C 言語
INT Ret;
HANDLE DeviceHandle;
:
Ret = ImgOutputPower(DeviceHandle, IFCML_PWR_ON);
●Visual Basic
Dim DeviceHandle As Long
Dim Ret As Integer
:
Ret = ImgOutputPower(DeviceHandle, IFCML_PWR_ON)
●Delphi
var
DeviceHandle: THandle;
Ret: Integer;
:
Ret := ImgOutputPower(DeviceHandle, IFCML_PWR_ON);
© 2003, 2016 Interface Corporation. All rights reserved.
433
GPC-5520 Help for Windows
●Visual C# .NET
int Ret;
IntPtr DeviceHandle;
:
Ret = IFCIMG_ANY.ImgOutputPower(DeviceHandle, IFCIMG_ANY.IFCML_PWR_ON);
●Visual Basic.NET
Dim DeviceHandle As Long
Dim Ret As Integer
:
Ret = IFCIMG_ANY.ImgOutputPower(DeviceHandle, IFCIMG_ANY.IFCML_PWR_ON)
●Delphi 8
var
DeviceHandle: THandle;
Ret: Integer;
:
Ret := IFCIMG_ANY.ImgOutputPower(DeviceHandle, IFCIMG_ANY.IFCML_PWR_ON);
カメラへ電源を供給します。
© 2003, 2016 Interface Corporation. All rights reserved.
434
GPC-5520 Help for Windows
60. ImgSetEncodeCntMode
【機能】
エンコーダカウンタのカウント動作を設定します。
【書式】
●C 言語
INT ImgSetEncodeCntMode (
HANDLE
DeviceHandle,
DWORD
SelectEncCounter,
PIFIMGCLENCCFG
EncoderCntConfig
);
//
//
//
デバイスハンドル
CC 信号
出力モード
●Visual Basic
Declare Function ImgSetEncodeCntMode Lib "IfImg.dll"( _
ByVal
DeviceHandle,
As Long, _
‘ デバイスハンドル
ByVal
SelectEncCounter, As Long, _
‘ CC 信号
ByRef
EncoderCntConfig
As IFIMGCLENCCFG
‘ 出力モード
)As Long
●Delphi
function ImgSetEncodeCntMode (
DeviceHandle:
THandle;
SelectEncCounter:
DWORD;
var EncoderCntConfig: IFIMGCLENCCFG
): Integer; stdcall; external IfImg.dll';
●VISUAL C# .NET(x86、x64 共用)
[DllImport("IfImg.dll")]
public static extern int ImgSetEncodeCntMode (
IntPtr
DeviceHandle,
//
uint
SelectEncCounter,
//
ref IFIMGCLENCCFG EncoderCntConfig
//
);
//
//
//
●VISUAL C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgSetEncodeCntMode (
uint
DeviceHandle,
//
uint
SelectEncCounter,
//
ref IFIMGCLENCCFG EncoderCntConfig
//
);
デバイスハンドル
CC 信号
出力モード
デバイスハンドル
CC 信号
出力モード
デバイスハンドル
CC 信号
出力モード
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgSetEncodeCntMode Lib "IfImg.dll"( _
ByVal
DeviceHandle,
As IntPtr, _
‘ デバイスハンドル
ByVal
SelectEncCounter, As Integer, _
‘ CC 信号
ByRef
EncoderCntConfig
As IFIMGCLENCCFG
‘ 出力モード
)As Integer
© 2003, 2016 Interface Corporation. All rights reserved.
435
GPC-5520 Help for Windows
●Visual Basic .NET(x86 専用)
Declare Function ImgSetEncodeCntMode Lib "IfImg.dll"( _
ByVal
DeviceHandle,
As Integer, _
‘ デバイスハンドル
ByVal
SelectEncCounter, As Integer, _
‘ CC 信号
ByRef
EncoderCntConfig
As IFIMGCLENCCFG
‘ 出力モード
)As Integer
●Delphi 8
class function ImgSetEncodeCntMode (
DeviceHandle:
Integer;
SelectEncCounter:
Cardinal;
var EncoderCntConfig: IFIMGCLENCCFG
): Integer; static;
//
//
//
デバイスハンドル
CC 信号
出力モード
【パラメータ】
DeviceHandle
ImgOpen 関数から得られるデバイスハンドル
SelectEncCounter
エンコーダカウンタ選択
識別子
IFIMGCL_ENCCNT_DIFFRENTIAL
IFIMGCL_ENCCNT_SINGLEENDED1
IFIMGCL_ENCCNT_SINGLEENDED2
値
内容
00000001h 差動入力方式エンコーダカウンタの設定
00000002h シングルエンド入力方式 1 エンコーダカウ
ンタ
00000003h シングルエンド入力方式 2 エンコーダカウ
ンタ
EncoderCntConfig
エンコーダカウント条件を指定します。IFIMGCLENCCFG 構造体変数のポインタ(参照渡し)
を指定します。
【使用例】
●C 言語
INT Ret;
HANDLE DeviceHandle;
IFIMGCLENCCFG EncoderCntConfig;
EncoderCntConfig.Direction = IFIMGCL_DIRECTION_NORMAL;
EncoderCntConfig.Edge = IFIMGCL_SINGLE_EDGE;
EncoderCntConfig.PulseMode = IFIMGCL_PHASE_SHIFTED_MODE;
EncoderCntConfig.StartMode = IFIMGCL_CNT_START_NONE;
EncoderCntConfig.StartCounter = 0;
EncoderCntConfig.FilterBaceClock = IFIMGCL_CLOCK_100_NANO;
EncoderCntConfig.FilterCount = 1;
:
Ret = ImgSetEncodeCntMode(DeviceHandle, IFIMGCL_ENCCNT_DIFFRENTIAL,
&EncoderCntConfig);
© 2003, 2016 Interface Corporation. All rights reserved.
436
GPC-5520 Help for Windows
●Visual Basic
Dim DeviceHandle As Long
Dim Ret As Integer
Dim EncoderCntConfig As IFIMGCLENCCFG;
EncoderCntConfig.Direction = IFIMGCL_DIRECTION_NORMAL
EncoderCntConfig.Edge = IFIMGCL_SINGLE_EDGE
EncoderCntConfig.PulseMode = IFIMGCL_PHASE_SHIFTED_MODE
EncoderCntConfig.StartMode = IFIMGCL_CNT_START_NONE
EncoderCntConfig.StartCounter = 0
EncoderCntConfig.FilterBaceClock = IFIMGCL_CLOCK_100_NANO
EncoderCntConfig.FilterCount = 1
:
Ret = ImgSetEncodeCntMode(DeviceHandle, IFIMGCL_ENCCNT_DIFFRENTIAL,
EncoderCntConfig)
●Delphi
var
DeviceHandle: THandle;
Ret: Integer;
EncoderCntConfig: IFIMGCLENCCFG;
EncoderCntConfig.Direction := IFIMGCL_DIRECTION_NORMAL;
EncoderCntConfig.Edge := IFIMGCL_SINGLE_EDGE;
EncoderCntConfig.PulseMode := IFIMGCL_PHASE_SHIFTED_MODE;
EncoderCntConfig.StartMode := IFIMGCL_CNT_START_NONE;
EncoderCntConfig.StartCounter := 0;
EncoderCntConfig.FilterBaceClock := IFIMGCL_CLOCK_100_NANO;
EncoderCntConfig.FilterCount := 1;
:
Ret := ImgSetEncodeCntMode(DeviceHandle, IFIMGCL_ENCCNT_DIFFRENTIAL,
&EncoderCntConfig);
© 2003, 2016 Interface Corporation. All rights reserved.
437
GPC-5520 Help for Windows
●Visual C# .NET
int Ret;
IntPtr DeviceHandle;
IFCIMG_ANY.IFIMGCLENCCFG EncoderCntConfig;
EncoderCntConfig.Direction = IFCIMG_ANY.IFIMGCL_DIRECTION_NORMAL;
EncoderCntConfig.Edge = IFCIMG_ANY.IFIMGCL_SINGLE_EDGE;
EncoderCntConfig.PulseMode = IFCIMG_ANY.IFIMGCL_PHASE_SHIFTED_MODE;
EncoderCntConfig.StartMode = IFCIMG_ANY.IFIMGCL_CNT_START_NONE;
EncoderCntConfig.StartCounter = 0;
EncoderCntConfig.FilterBaceClock = IFCIMG_ANY.IFIMGCL_CLOCK_100_NANO;
EncoderCntConfig.FilterCount = 1;
:
Ret = IFCIMG_ANY.ImgSetEncodeCntMode(DeviceHandle,
IFCIMG_ANY.IFIMGCL_ENCCNT_DIFFRENTIAL, ref EncoderCntConfig);
●Visual Basic .NET
Dim DeviceHandle As IntPtr
Dim Ret As Integer
Dim EncoderCntConfig As IFCIMG_ANY.IFIMGCLENCCFG;
EncoderCntConfig.Direction = IFCIMG_ANY.IFIMGCL_DIRECTION_NORMAL
EncoderCntConfig.Edge = IFCIMG_ANY.IFIMGCL_SINGLE_EDGE
EncoderCntConfig.PulseMode = IFCIMG_ANY.IFIMGCL_PHASE_SHIFTED_MODE
EncoderCntConfig.StartMode = IFCIMG_ANY.IFIMGCL_CNT_START_NONE
EncoderCntConfig.StartCounter = 0
EncoderCntConfig.FilterBaceClock = IFCIMG_ANY.IFIMGCL_CLOCK_100_NANO
EncoderCntConfig.FilterCount = 1
:
Ret = IFCIMG_ANY.ImgSetEncodeCntMode(DeviceHandle, _
IFCIMG_ANY.IFIMGCL_ENCCNT_DIFFRENTIAL, EncoderCntConfig)
© 2003, 2016 Interface Corporation. All rights reserved.
438
GPC-5520 Help for Windows
●Delphi 8
var
DeviceHandle: Integer;
Ret: Integer;
EncoderCntConfig: IFCIMG_ANY.IFIMGCLENCCFG;
EncoderCntConfig.Direction := IFCIMG_ANY.IFIMGCL_DIRECTION_NORMAL;
EncoderCntConfig.Edge := IFCIMG_ANY.IFIMGCL_SINGLE_EDGE;
EncoderCntConfig.PulseMode := IFCIMG_ANY.IFIMGCL_PHASE_SHIFTED_MODE;
EncoderCntConfig.StartMode := IFCIMG_ANY.IFIMGCL_CNT_START_NONE;
EncoderCntConfig.StartCounter := 0;
EncoderCntConfig.FilterBaceClock := IFCIMG_ANY.IFIMGCL_CLOCK_100_NANO;
EncoderCntConfig.FilterCount := 1;
:
Ret := IFCIMG_ANY.ImgSetEncodeCntMode(DeviceHandle,
IFCIMG_ANY.IFIMGCL_ENCCNT_DIFFRENTIAL, EncoderCntConfig);
差動入力エンコーダカウンタを通常方向、1 逓倍、位相差カウント、スタートカウント 0、スタ
ートモードなし、デジタルフィルタの基準クロックを 100ns でフィルタカウントを 1 に設定しま
す。
© 2003, 2016 Interface Corporation. All rights reserved.
439
GPC-5520 Help for Windows
61. ImgSetCounterCycle
【機能】
各種カウンタのカウンタ周期を設定します。本関数を実行するとカウンタはリセットされま
す。
【書式】
●C 言語
INT ImgSetCounterCycle (
HANDLE
DeviceHandle,
DWORD
CounterSelect,
DWORD
CntCycle
);
//
//
//
デバイスハンドル
カウンタ選択
カウンタ周期
●Visual Basic
Declare Function ImgSetCounterCycle Lib "IfImg.dll"( _
ByVal
DeviceHandle
As Long, _
‘ デバイスハンドル
ByVal
CounterSelect, As Long, _
‘ カウンタ選択
ByVal
CntCycle
As Long _
‘ カウンタ周期
)As Long
●Delphi
function ImgSetCounterCycle (
DeviceHandle:
THandle;
CounterSelect:
DWORD;
CntCycle:
DWORD
): Integer; stdcall; external IfImg.dll';
//
//
//
デバイスハンドル
カウンタ選択
カウンタ周期
●VISUAL C# .NET(x86、x64 共用)
[DllImport("IfImg.dll")]
public static extern int ImgSetCounterCycle (
IntPtr
DeviceHandle,
// デバイスハンドル
uint
CounterSelect,
// カウンタ選択
uint
CntCycle
// カウンタ周期
);
●VISUAL C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgSetCounterCycle (
uint
DeviceHandle,
// デバイスハンドル
uint
CounterSelect,
// カウンタ選択
uint
CntCycle
// カウンタ周期
);
© 2003, 2016 Interface Corporation. All rights reserved.
440
GPC-5520 Help for Windows
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgSetCounterCycle Lib "IfImg.dll"( _
ByVal
DeviceHandle
As IntPtr, _
‘ デバイスハンドル
ByVal
CounterSelect, As Integer, _ ‘ カウンタ選択
ByVal
CntCycle
As Integer _
‘ カウンタ周期
)As Integer
●Visual Basic .NET(x86 専用)
Declare Function ImgSetCounterCycle Lib "IfImg.dll"( _
ByVal
DeviceHandle
As Integer, _ ‘ デバイスハンドル
ByVal
CounterSelect, As Integer, _ ‘ カウンタ選択
ByVal
CntCycle
As Integer _
‘ カウンタ周期
)As Integer
●Delphi 8
class function ImgSetCounterCycle (
DeviceHandle:
Integer;
CounterSelect:
Cardinal;
CntCycle:
Cardinal
): Integer; static;
//
//
//
デバイスハンドル
カウンタ選択
カウンタ周期
【パラメータ】
DeviceHandle
ImgOpen 関数から得られるデバイスハンドル
CounterSelct
周期設定するカウンタを選択します。
識別子
値
IFIMGCL_INTERVALTIMER1
00000001h
内容
インターバルタイマ 1
カウント単位は 1μs となります。
IFIMGCL_ENCCNT_DIFFRENTIAL 00000003h 差動入力方式エンコーダカウンタ
IFIMGCL_ENCCNT_SINGLEENDED1 00000004h シングルエンド入力方式エンコーダカウンタ 1
IFIMGCL_ENCCNT_SINGLEENDED2 00000005h シングルエンド入力方式エンコーダカウンタ 2
CntCycle
周期を設定します。0 ~ 16777215(FFFFFFh)
CntCycle 引数に 0 を指定することでタイマカウントを停止することが出来ます。
【使用例】
●C 言語
INT Ret;
HANDLE DeviceHandle;
:
Ret = ImgSetCounterCycle (DeviceHandle, IFIMGCL_INTERVALTIMER1, 1000);
© 2003, 2016 Interface Corporation. All rights reserved.
441
GPC-5520 Help for Windows
●Visual Basic
Dim DeviceHandle As Long
Dim Ret As Integer
Ret = ImgSetCounterCycle (DeviceHandle, IFIMGCL_INTERVALTIMER1, 1000);
●Delphi
var
DeviceHandle: THandle;
Ret: Integer;
Ret := ImgSetCounterCycle (DeviceHandle, IFIMGCL_INTERVALTIMER1, 1000);
●Visual C# .NET
int Ret;
IntPtr DeviceHandle;
:
Ret = IFCIMG_ANY.ImgSetCounterCycle (DeviceHandle,
IFCIMG_ANY.IFIMGCL_INTERVALTIMER1, 1000);
●Visual Basic .NET
Dim DeviceHandle As IntPtr
Dim Ret As Integer
Ret = IFCIMG_ANY.ImgSetCounterCycle (DeviceHandle, _
IFCIMG_ANY.IFIMGCL_INTERVALTIMER1, 1000);
●Delphi 8
var
DeviceHandle:Integer;
Ret: Integer;
Ret := IFCIMG_ANY.ImgSetCounterCycle (DeviceHandle,
IFCIMG_ANY.IFIMGCL_INTERVALTIMER1, 1000);
インターバルタイマのカウント周期を 1000μs に設定します。
© 2003, 2016 Interface Corporation. All rights reserved.
442
GPC-5520 Help for Windows
62. ImgGetCounterValue
【機能】
各種カウンタのカウンタ値を取得します。
【書式】
●C 言語
INT ImgGetCounterValue (
HANDLE
DeviceHandle,
DWORD
CounterSelect,
PDWORD
CounterValue
);
//
//
//
デバイスハンドル
カウンタ選択
カウンタ値
●Visual Basic
Declare Function ImgGetCounterValue Lib "IfImg.dll"( _
ByVal
DeviceHandle,
As Long, _
‘ デバイスハンドル
ByVal
CounterSelect, As Long, _
‘ カウンタ選択
ByRef
CounterValue
As Long
‘ カウンタ値
)As Long
●Delphi
function ImgGetCounterValue (
DeviceHandle:
THandle;
CounterSelect:
DWORD;
var CounterValue: DWORD
): Integer; stdcall; external IfImg.dll';
//
//
//
デバイスハンドル
カウンタ選択
カウンタ値
●VISUAL C# .NET(x86、x64 共用)
[DllImport("IfImg.dll")]
public static extern int ImgGetCounterValue (
IntPtr
DeviceHandle,
// デバイスハンドル
uint
CounterSelect,
// カウンタ選択
out uint
CounterValue
// カウンタ値
);
●VISUAL C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgGetCounterValue (
uint
DeviceHandle,
// デバイスハンドル
uint
CounterSelect,
// カウンタ選択
out uint
CounterValue
// カウンタ値
);
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgGetCounterValue Lib "IfImg.dll"( _
ByVal
DeviceHandle,
As IntPtr, _
‘ デバイスハンドル
ByVal
CounterSelect, As Integer, _
‘ カウンタ選択
ByRef
CounterValue
As Integer
‘ カウンタ値
)As Long
© 2003, 2016 Interface Corporation. All rights reserved.
443
GPC-5520 Help for Windows
●Visual Basic .NET(x86 専用)
Declare Function ImgGetCounterValue Lib "IfImg.dll"( _
ByVal
DeviceHandle,
As Integer, _
‘ デバイスハンドル
ByVal
CounterSelect, As Integer, _
‘ カウンタ選択
ByRef
CounterValue
As Integer
‘ カウンタ値
)As Long
●Delphi 8
class function ImgGetCounterValue (
DeviceHandle:
Integer;
CounterSelect:
Cardinal;
CounterValue:
Cardinal
): Integer; static;
//
//
//
デバイスハンドル
カウンタ選択
カウンタ値
【パラメータ】
DeviceHandle
ImgOpen 関数から得られるデバイスハンドル
CounterSelct
周期設定するカウンタを選択します。
識別子
値
IFIMGCL_INTERVALTIMER1
00000001h
内容
インターバルタイマ 1
カウント単位は 1μs となります。
IFIMGCL_ENCCNT_DIFFRENTIAL 00000003h 差動入力方式エンコーダカウンタ
IFIMGCL_ENCCNT_SINGLEENDED1 00000004h シングルエンド入力方式エンコーダカウンタ 1
IFIMGCL_ENCCNT_SINGLEENDED2 00000005h シングルエンド入力方式エンコーダカウンタ 2
CounterValue
カウンタ値を取得する変数のポインタを指定します。
【使用例】
●C 言語
INT Ret;
HANDLE DeviceHandle;
DWORD CountValue;
Ret = ImgGetCounterValue(DeviceHandle, IFIMGCL_INTERVALTIMER1, &CountValue);
●Visual Basic
Dim DeviceHandle As Long
Dim Ret As Integer
Dim CountValue As Long
Ret = ImgGetCounterValue(DeviceHandle, IFIMGCL_INTERVALTIMER1, CountValue)
© 2003, 2016 Interface Corporation. All rights reserved.
444
GPC-5520 Help for Windows
●Delphi
var
DeviceHandle: THandle;
Ret: Integer;
CountValue: DWORD;
Ret := ImgGetCounterValue (DeviceHandle, IFIMGCL_INTERVALTIMER1, CountValue);
●Visual C# .NET
int Ret;
IntPtr DeviceHandle;
uint CountValue;
Ret = IFCIMG_ANY.ImgGetCounterValue(DeviceHandle,
IFCIMG_ANY.IFIMGCL_INTERVALTIMER1, out CountValue);
●Visual Basic .NET
Dim DeviceHandle As IntPtr
Dim Ret As Integer
Dim CountValue As Integer
Ret = IFCIMG_ANY.ImgGetCounterValue(DeviceHandle,
IFCIMG_ANY.IFIMGCL_INTERVALTIMER1, CountValue)
●Delphi 8
var
DeviceHandle: Integer;
Ret: Integer;
CountValue: Cardinal;
Ret := IFCIMG_ANY.ImgGetCounterValue (DeviceHandle,
IFCIMG_ANY.IFIMGCL_INTERVALTIMER1, CountValue);
インターバルタイマカウンタを取得します。
© 2003, 2016 Interface Corporation. All rights reserved.
445
GPC-5520 Help for Windows
63. ImgSetImposeImage
【機能】
スーパーインポーズ画像の設定、スーパーインポーズの有効無効、演算方法の設定を行う事が
できます。
詳細は以下の通りです。
・RGB24bit,解像度(640×480)の画像データをスーパーインポーズ画像データとしてセットしま
す。指定したインポーズ画像番号のボードメモリ領域に画像データを書き込みます。
・スーパーインポーズ処理の有効/無効を切替えます。
・スーパーインポーズ画像番号と演算処理の選択を行います。
【書式】
●C 言語
INT ImgSetImposeImage (
HANDLE
DeviceHandle,
DWORD
SetMode,
DWORD
ImposeNum,
DWORD
ImposeOperation,
VOID*
ImposeData,
DWORD
ImposeDataSize
);
//
//
//
//
//
//
デバイスハンドル
インポーズ操作指定
インポーズ画像番号
インポーズ演算
インポーズ画像ポインタ
画像サイズ
●Visual Basic
Declare Function ImgSetImposeImage Lib "ifspr.dll"( _
ByVal
DeviceHandle
As Long, _
‘ デバイスハンドル
ByVal
SetMode
As Long, _
‘ インポーズ操作指定
ByVal
ImposeNum
As Long, _
‘ インポーズ画像番号
ByVal
ImposeOperation
As Long, _
‘ インポーズ演算
ByRef
ImposeData
As Any, _
‘ インポーズ画像ポインタ
ByVal
ImposeDataSize
As Long
‘ 画像サイズ
)As Long
●Delphi
function ImgSetImposeImage (
DeviceHandle:
Thandle;
// デバイスハンドル
SetMode:
DWORD;
// インポーズ操作指定
ImposeNum:
DWORD;
// インポーズ画像番号
ImposeOperation:
DWORD;
// インポーズ演算
ImposeData:
Pointer;
// インポーズ画像ポインタ
ImposeDataSize:
DWORD;
// 画像サイズ
): Integer; stdcall; external 'IfImg.dll';
© 2003, 2016 Interface Corporation. All rights reserved.
446
GPC-5520 Help for Windows
●VISUAL C# .NET(x86、x64 共用)
[DllImport("IfImg.dll")]
public static extern int ImgSetImposeImage (
IntPtr
DeviceHandle,
// デバイスハンドル
uint
SetMode,
// インポーズ操作指定
uint
ImposeNum,
// インポーズ画像番号
uint
ImposeOperation,
// インポーズ演算
IntPtr
ImposeData,
// インポーズ画像ポインタ
uint
ImposeDataSize
// 画像サイズ
);
[DllImport("IfImg.dll")]
public static extern int ImgSetImposeImage (
IntPtr
DeviceHandle,
// デバイスハンドル
uint
SetMode,
// インポーズ操作指定
uint
ImposeNum,
// インポーズ画像番号
uint
ImposeOperation,
// インポーズ演算
byte[]
ImposeData,
// インポーズ画像ポインタ
uint
ImposeDataSize
// 画像サイズ
);
●VISUAL C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgSetImposeImage (
uint
DeviceHandle,
// デバイスハンドル
uint
SetMode,
// インポーズ操作指定
uint
ImposeNum,
// インポーズ画像番号
uint
ImposeOperation,
// インポーズ演算
IntPtr
ImposeData,
// インポーズ画像ポインタ
uint
ImposeDataSize
// 画像サイズ
);
[DllImport("IfImg.dll")]
public static extern int ImgSetImposeImage (
uint
DeviceHandle,
// デバイスハンドル
uint
SetMode,
// インポーズ操作指定
uint
ImposeNum,
// インポーズ画像番号
uint
ImposeOperation,
// インポーズ演算
byte[]
ImposeData,
// インポーズ画像ポインタ
uint
ImposeDataSize
// 画像サイズ
);
© 2003, 2016 Interface Corporation. All rights reserved.
447
GPC-5520 Help for Windows
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgSetImposeImage Lib "IfImg.dll"( _
ByVal
DeviceHandle,
As IntPtr, _ ‘ デバイスハンドル
ByVal
SetMode
As Integer, _ ‘ インポーズ操作指定
ByVal
ImposeNum
As Integer, _ ‘ インポーズ画像番号
ByVal
ImposeOperation As Integer, _ ‘ インポーズ演算
ByVal
ImposeData
As IntPtr, _ ‘ インポーズ画像ポインタ
ByVal
ImposeDataSize
As Integer
‘ 画像サイズ
)As Long
Declare Function ImgSetImposeImage Lib "IfImg.dll"( _
ByVal
DeviceHandle,
As IntPtr, _ ‘ デバイスハンドル
ByVal
SetMode
As Integer, _ ‘ インポーズ操作指定
ByVal
ImposeNum
As Integer, _ ‘ インポーズ画像番号
ByVal
ImposeOperation As Integer, _ ‘ インポーズ演算
ByVal
ImposeData( )
As Byte, _
‘ インポーズ画像ポインタ
ByVal
ImposeDataSize
As Integer
‘ 画像サイズ
)As Long
●Visual Basic .NET(x86 専用)
Declare Function ImgSetImposeImage Lib "IfImg.dll"( _
ByVal
DeviceHandle,
As Integer, _ ‘ デバイスハンドル
ByVal
SetMode
As Integer, _ ‘ インポーズ操作指定
ByVal
ImposeNum
As Integer, _ ‘ インポーズ画像番号
ByVal
ImposeOperation As Integer, _ ‘ インポーズ演算
ByVal
ImposeData
As IntPtr, _ ‘ インポーズ画像ポインタ
ByVal
ImposeDataSize
As Integer
‘ 画像サイズ
)As Long
Declare Function ImgSetImposeImage Lib "IfImg.dll"( _
ByVal
DeviceHandle,
As Integer, _ ‘ デバイスハンドル
ByVal
SetMode
As Integer, _ ‘ インポーズ操作指定
ByVal
ImposeNum
As Integer, _ ‘ インポーズ画像番号
ByVal
ImposeOperation As Integer, _ ‘ インポーズ演算
ByVal
ImposeData( )
As Byte, _
‘ インポーズ画像ポインタ
ByVal
ImposeDataSize
As Integer
‘ 画像サイズ
)As Long
© 2003, 2016 Interface Corporation. All rights reserved.
448
GPC-5520 Help for Windows
【パラメータ】
DeviceHandle
ImgOpen 関数から得られるデバイスハンドル
SetMode
スーパーインポーズの画像セットまたは、画像の選択を行います。
識別子
値
内容
IFIMG_SET_IMPOSE
00000000h
スーパーインポーズ画像番号のボード
メモリ領域に画像データを書き込みま
す。(※)
IFIMG_SELECT_IMPOSE
00000001h
セットしたスーパーインポーズ画像を
選択します。
IFIMG_NON_IMPOSE
00000002h
スーパーインポーズは行いません。
IFIMG_CHECK_SETINPOSE
00000003h
スーパーインポーズ画像データの書き
込み状態を確認します。
関数の戻り値が 0 の場合は、転送停止ま
たは転送完了状態。
IFIMG_ERROR_NOW_IMPOSEDATA_WRITE(C0
00101D)の場合、データ転送中です。
※ 画像データの書き込み処理は非同期である為、本関数から返っても、書き込みが完了
しているとは限りません。
完了を知る場合は、以下の方法があります。
①割り込み機能を利用
②IFIMG_CHECK_SETINPOSE の指定による状態監視
ImposeNum
スーパーインポーズ画像をセットする番号、またはスーパーインポーズする画像を選択し
ます。1~8 の範囲で選択してください。※SetMode の値により、意味が変わります。
スーパーインポーズの画像セットまたは、画像の選択を行います。
識別子
内容
IFIMG_SET_IMPOSE
スーパーインポーズ画像をセットする番号を指定して
ください。
IFIMG_SELECT_IMPOSE
画面に表示する画像の番号を指定してください。
IFIMG_NON_IMPOSE
設定無効
© 2003, 2016 Interface Corporation. All rights reserved.
449
GPC-5520 Help for Windows
ImposeOperation
ス ー パ ー イ ン ポ ー ズ 画 像 の 演 算 方 法 を 指 定 し ま す 。 SetMode の 設 定 値 を
IFSPR_SELECT_IMPOSE にした場合のみ有効になります。IFSPR_SELECT_IMPOSE 以外の設定
では 0 を入力してください。
識別子
値
内容
IFIMG_IMPOSE_REPLACE
00000001h
スーパーインポーズ画像の上書きを行い
ます。
IFIMG_IMPOSE_ADD
00000002h
スーパーインポーズ画像の加算を行いま
す。
IFIMG_IMPOSE_SUB
00000003h
スーパーインポーズ画像の減算を行いま
す。
IFIMG_IMPOSE_XOR
00000004h
スーパーインポーズ画像の XOR を行いま
す。
IFIMG_IMPOSE_PERMEATION_3_1
00000009h
インポーズ画像を透過させます。
カメラ画像とインポーズ画像が 3:1 の比
率で透過します。
IFIMG_IMPOSE_PERMEATION
0000000Ah
インポーズ画像を透過させます。
カメラ画像とインポーズ画像が 1:1 の比
率で透過します。
IFIMG_IMPOSE_PERMEATION_1_3
0000000Bh
インポーズ画像を透過させます。
カメラ画像とインポーズ画像が 1:3 の比
率で透過します。
ImposeData
スーパーインポーズ画像データの先頭ポインタを指定してください。
スーパーインポーズ画像はビットマップ形式の RGB24bit データとなります。
ImposeDataSize
スーパーインポーズ画像データのサイズを指定します。921600 を指定してください。
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、
『4.5 戻り値一覧』をご参照くだ
© 2003, 2016 Interface Corporation. All rights reserved.
450
GPC-5520 Help for Windows
【使用例】
●C 言語
HANDLE hDevice;
INT nRet;
PBYTE ImageData;
DWORD ImageDataSize;
ImageData = (PBYTE)malloc(640*480*3);
ImageDataSize = 640*480*3;
// ImageData のメモリ領域にインポーズ画像を作成する。
hDevice = ImgOpen(“IFIMGST2”);
:
:
nRet = ImgSetImposeImage(hDevice,IFSPR_SET_IMPOSE,1,0,ImageData,ImageDataSize);
nRet = ImgSetImposeImage(hDevice,IFSPR_SELECT_IMPOSE,1,IFSPR_IMPOSE_REPLACE,NULL,0);
●Visual Basic
Dim hDevice As Long
Dim nRet As Long
Dim ImageData (921600) As Byte
Dim ImageDataSize As Long
‘ ImageData のメモリ領域にインポーズ画像を作成する。
ImageDataSize = 640*480*3;
hDevice = ImgOpen(“IFIMGST2”)
nRet = ImgSetImposeImage(hDevice,IFSPR_SET_IMPOSE,1,0,ImageData(0),ImageDataSize)
nRet = ImgSetImposeImage(hDevice,IFSPR_SELECT_IMPOSE,1,IFSPR_IMPOSE_REPLACE,0,0)
© 2003, 2016 Interface Corporation. All rights reserved.
451
GPC-5520 Help for Windows
●Delphi
var
hDevice: THandle;
nRet: Cardinal;
ImageData: Pointer;
ImageDataSize: DWORD;
beginlpszName := 'IFIMGST2';
ImageDataSize := 640*480*3;
ImageData := AllocMem(ImageDataSize);
// ImageData のメモリ領域にインポーズ画像を作成する。
hDevice := ImgOpen(lpszName);// RGB32bit の出力画像を作成
nRet := ImgSetImposeImage(hDevice,IFSPR_SET_IMPOSE,1,0,ImageData,ImageDataSize);
nRet:= ImgSetImposeImage(hDevice,IFSPR_SELECT_IMPOSE,1,IFSPR_IMPOSE_REPLACE,NULL,0);
●Visual C# .NET
IntPtr
hDeviceHandle;
int
nRet;
byte
ImageData[921600];
uint
ImageDataSize;
// ImageData のメモリ領域にインポーズ画像を作成する。
hDeviceHandle = IFCIMG_ANY.ImgOpen("IFIMGSPR1");
nRet = IFCIMG_ANY.ImgSetImposeImage(hDeviceHandle,IFCIMG_ANY.IFSPR_SET_IMPOSE,
1, 0, ImageData, ImageDataSize);
nRet = IFCIMG_ANY.ImgSetImposeImage(hDeviceHandle,IFCIMG_ANY.IFSPR_SELECT_IMPOSE,
1, IFCIMG_ANY.IFSPR_IMPOSE_REPLACE, NULL, 0);
© 2003, 2016 Interface Corporation. All rights reserved.
452
GPC-5520 Help for Windows
●Visual Basic .NET
Dim lpszName As String
Dim hDeviceHandle As IntPtr
Dim nRet As Integer
Dim ImageData(921600) As byte
Dim ImageDataSize As byte
// ImageData のメモリ領域にインポーズ画像を作成する。
lpszName = “IFIMGSPR1”
hDeviceHandle = IFCIMG_ANY.ImgOpen(lpszName)
nRet = IFCIMG_ANY.ImgSetImposeImage(hDeviceHandle, IFCIMG_ANY.IFSPR_SET_IMPOSE, _
1, 0, ImageData(0), ImageDataSize)
nRet = IFCIMG_ANY.ImgSetImposeImage(hDeviceHandle,IFCIMG_ANY.IFSPR_SELECT_IMPOSE,
1, IFCIMG_ANY.IFSPR_IMPOSE_REPLACE, 0, 0);
© 2003, 2016 Interface Corporation. All rights reserved.
453
GPC-5520 Help for Windows
64. ImgSetImposeDateTime
【機能】
スーパーインポーズする日時と時刻設定を行います。
設定時刻から自動的にカウントした時刻がインポーズ表示されます。
【書式】
●C 言語
INT ImgSetImposeDateTime (
HANDLE
DeviceHandle,
PIFIMGDATE
Date,
PIFIMGTIME
Time
);
// デバイスハンドル
// 日付
// 時刻
●Visual Basic
Declare Function ImgSetImposeDateTime Lib "ifspr.dll"( _
ByVal
DeviceHandle
As Long, _
‘ デバイスハンドル
ByRef
Date
As IFIMGDATE, _
‘ 日付
ByRef
Time
As IFIMGTIME
‘ 時刻
)As Long
●Delphi
function ImgSetImposeDateTime (
DeviceHandle:
Thandle;
// デバイスハンドル
Date:
IFIMGDATE;
// 日時
Time:
IFIMGTIME;
// 時刻
): Integer; stdcall; external 'IfImg.dll';
●VISUAL C# .NET(x86、x64 共用)
[DllImport("IfImg.dll")]
public static extern int ImgSetImposeDateTime (
IntPtr
DeviceHandle,
// デバイスハンドル
ref IFIMGDATE Date,
// 日付
ref IFIMGtIME Time
// 時刻
);
●VISUAL C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgSetImposeDateTime (
uint
DeviceHandle,
// デバイスハンドル
ref IFIMGDATE Date,
// 日付
ref IFIMGtIME Time
// 時刻
);
© 2003, 2016 Interface Corporation. All rights reserved.
454
GPC-5520 Help for Windows
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgSetImposeDateTime Lib "IfImg.dll"( _
ByVal
DeviceHandle,
As IntPtr, _
‘ デバイスハンドル
ByRef
Date
As IFIMGDATE, _ ‘ 日付
ByRef
Time
As IFIMGTIME
‘ 時刻
)As Integer
●Visual Basic .NET(x86 専用)
Declare Function ImgSetImposeDateTime Lib "IfImg.dll"( _
ByVal
DeviceHandle,
As Integer, _
‘ デバイスハンドル
ByRef
Date
As IFIMGDATE, _ ‘ 日付
ByRef
Time
As IFIMGTIME
‘ 時刻
)As Integer
【パラメータ】
DeviceHandle
ImgOpen 関数から得られるデバイスハンドル
Date
日時を設定します。IFIMGDATE 構造体で指定します。
Time
時刻を設定します。IFIMGTIME 構造体で指定します。
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、
『4.5 戻り値一覧』をご参照くだ
© 2003, 2016 Interface Corporation. All rights reserved.
455
GPC-5520 Help for Windows
【使用例】
●C 言語
HANDLE hDevice;
INT nRet;
IFIMGTIME Time;
IFIMGDATE Date;
hDevice = ImgOpen(“IFIMGST2”);
Date.mday = 15;
Date.mon = 2;
Date.year = 2014;
Time.sec = 58;
Time.min = 26;
Time.hour = 14;
nRet = ImgSetImposeDateTime(hDevice, &Date, &Time);
●Visual Basic
Dim hDevice As Long
Dim nRet As Long
Dim Time As IFIMGTIME
Dim Date As IFIMGDATE
hDevice = ImgOpen(“IFIMGST2”)
Date.mday = 15
Date.mon = 2
Date.year = 2014
Time.sec = 58
Time.min = 26
Time.hour = 14
nRet = ImgSetImposeDateTime(hDevice, Date, Time)
© 2003, 2016 Interface Corporation. All rights reserved.
456
GPC-5520 Help for Windows
●Delphi
var
hDevice: THandle;
nRet: Cardinal;
Time: IFIMGTIME;
Date: IFIMGDATE;
beginlpszName := 'IFIMGST2';
hDevice := ImgOpen(lpszName);
Date.mday := 15;
Date.mon := 2;
Date.year := 2014;
Time.sec := 58;
Time.min := 26;
Time.hour := 14;
nRet := ImgSetImposeTime(hDevice, Date, Time);
●Visual C#
IntPtr
int
IFIMGTIME
IFIMGDATE
.NET
hDeviceHandle;
nRet;
Time;
Date;
hDeviceHandle = IFCIMG_ANY.ImgOpen("IFIMGST2");
Date.mday = 15;
Date.mon = 2;
Date.year = 2014;
Time.sec = 58;
Time.min = 26;
Time.hour = 14;
nRet = IFCIMG_ANY. ImgSetImposeDateTime (hDevice, Date,Time);
© 2003, 2016 Interface Corporation. All rights reserved.
457
GPC-5520 Help for Windows
●Visual Basic .NET
Dim lpszName As String
Dim hDeviceHandle As IntPtr
Dim nRet As Integer
Dim Time As IFIMGTIME
Dim Date As IFIMGDATE
lpszName = “IFIMGST1”
hDeviceHandle = IFCIMG_ANY.ImgOpen(lpszName)
Date.mday = 15
Date.mon = 2
Date.year = 2014
Time.sec = 58
Time.min = 26
Time.hour = 14
nRet = IFCIMG_ANY.ImgSetImposeDateTime(hDeviceHandle, Date, Time)
© 2003, 2016 Interface Corporation. All rights reserved.
458
GPC-5520 Help for Windows
65. ImgSetImposeDateTimeInfo
【機能】
スーパーインポーズする日付/時間の設定を行います。
日付/時間の表示座標、色、大きさを指定します。
【書式】
●C 言語
INT ImgSetImposeDateTimeInfo (
HANDLE
DeviceHandle,
PIFIMGDATEINFO DateInfo,
PIFIMGTIMEINFO TimeInfo,
DWORD
SetMode
PDWORD
ColorTable,
DWORD
FontSize
);
//
//
//
//
//
//
デバイスハンドル
日付
時間
設定選択
表示色
フォントのサイズ
●Visual Basic
Declare Function ImgSetImposeDateTimeInfo Lib "IfImg.dll"( _
ByVal
DeviceHandle
As Long, _
‘ デバイスハンドル
ByRef
DateInfo
As IFIMGDATEINFO, _ ‘ 日付
ByRef
TimeInfo
As IFIMGTIMEINFO, _ ‘ 時間
ByVal
SetMode
As Long, _
‘ 設定選択
ByRef
ColorTable
As Long, _
‘ 表示色
ByVal
FontSize
As Long
‘ フォントサイズ
)As Long
●Delphi
function ImgSetImposeDateTimeInfo (
DeviceHandle:
Thandle;
//
var DateInfo:
IFIMGDATEINFO; //
var TimeInfo:
IFIMGTIMEINFO; //
SetMode:
DWORD;
//
var ColorTable:
DWORD;
//
FontSize:
DWORD;
//
): Integer; stdcall; external 'IfImg.dll';
デバイスハンドル
日付
時間
設定選択
表示色
フォントサイズ
●VISUAL C# .NET(x86、x64 共用)
[DllImport("IfImg.dll")]
public static extern int ImgSetImposeDateTimeInfo (
IntPtr
DeviceHandle,
// デバイスハンドル
ref IFIMGDATEINFO DateInfo,
// 日付
ref IFIMGTIMEINFO TimeInfo,
// 時間
uint
SetMode,
// 設定選択
uint[]
ColorTable,
// 表示色
uint
FontSize
// フォントのサイズ
);
© 2003, 2016 Interface Corporation. All rights reserved.
459
GPC-5520 Help for Windows
●VISUAL C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgSetImposeDateTimeInfo (
uint
DeviceHandle,
// デバイスハンドル
ref IFIMGDATEINFO DateInfo,
// 日付
ref IFIMGTIMEINFO TimeInfo,
// 時間
uint
SetMode,
// 設定選択
uint[]
ColorTable,
// 表示色
uint
FontSize
// フォントのサイズ
);
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgSetImposeDateTimeInfo Lib "IfImg.dll"( _
ByVal
DeviceHandle As IntPtr, _
‘ デバイスハンドル
ByRef
DateInfo
As IFIMGDATEINFO, _ ‘ 日付
ByRef
TimeInfo
As IFIMGTIMEINFO, _ ‘ 時間
ByVal
SetMode
As Integer, _
‘ 設定選択
ByRef
ColorTable
As Integer, _
‘ 表示色
ByVal
FontSize
As Integer
‘ フォントサイズ
)As Integer
●Visual Basic .NET(x86 専用)
Declare Function ImgSetImposeDateTimeInfo Lib "IfImg.dll"( _
ByVal
DeviceHandle
As Integer, _
‘ デバイスハンドル
ByRef
DateInfo
As IFIMGDATEINFO, _ ‘ 日付
ByRef
TimeInfo
As IFIMGTIMEINFO, _ ‘ 時間
ByVal
SetMode
As Integer, _
‘ 設定選択
ByRef
ColorTable
As Integer, _
‘ 表示色
ByVal
FontSize
As Integer
‘ フォントサイズ
)As Integer
【パラメータ】
DeviceHandle
ImgOpen 関数から得られるデバイスハンドル
Date
日付と表示座標を設定します。IFIMGDATEINFO 構造体で指定します。
Time
時間と表示座標を設定します。IFIMGDATEINFO 構造体で指定します。
© 2003, 2016 Interface Corporation. All rights reserved.
460
GPC-5520 Help for Windows
SetMode
表示方法を選択します。OR 指定可能です。
識別子
値
IFIMG_IMPOSE_NONE_DATETIME
000000000h
IFIMG_IMPOSE_SET_DATE
000000001h
IFIMG_IMPOSE_SET_TIME
000000002h
IFIMG_IMPOSE_STRING_OUTLINE
000010000h
内容
日付/時間を表示しません。
日付を表示します。
時間を表示します。
文字を縁取りさせます。
ColorTable
色を指定します。REB24bit のトゥルーカラーで指定してください。
SetMode に IFIMG_IMPOSE_STRING_OUTLINE を指定した場合、縁取り用の色も指定します。
文字と縁取りの色する場合、2 要素の配列を用意して、第1要素には文字、第 2 要素に縁
取りの色を指定します。
例)文字を赤、縁取りを黒にする場合 (C 言語)
ColorTabe[0] = 0xFF0000;
ColorTabe[1] = 0x000000;
FontSize
文字の大きさを 1、2、4 の何れかで指定します。
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、
『4.5 戻り値一覧』をご参照くだ
© 2003, 2016 Interface Corporation. All rights reserved.
461
GPC-5520 Help for Windows
【使用例】
●C 言語
HANDLE hDevice;
INT nRet;
IFIMGDATEINFO DateInfo;
IFIMGTIMEINFO TimeInfo;
DWORD SetMode;
DWORD ColorTable[2];
hDevice = ImgOpen(“IFIMGST2”);
DateInfo.Date.mday = 15;
DateInfo.Date.mon = 2;
DateInfo.Date.year = 2014;
DateInfo.Xcoordinates = 100;
DateInfo.Ycoordinates = 100;
TimeInfo.Time.sec = 58;
TimeInfo.Time.min = 26;
TimeInfo.Time.hour = 14;
TimeInfo.Xcoordinates = 100;
TimeInfo.Ycoordinates = 320;
SetMode = IFIMG_IMPOSE_SET_DATE|IFIMG_IMPOSE_SET_TIME|IFIMG_IMPOSE_STRING_OUTLINE;
ColorTable[0] = 0xFF0000;
ColorTable[1] = 0x000000;
nRet = ImgSetImposeDateTimeInfo(hDevice, DateInfo, TimeInfo, SetMode, ColorTable、1);
© 2003, 2016 Interface Corporation. All rights reserved.
462
GPC-5520 Help for Windows
●Visual Basic
Dim hDevice As Long
Dim nRet As Long
Dim DateInfo As IFIMGDATEINFO
Dim TimeInfo As IFIMGTIMEINFO
Dim ColorTable(2) As Long
Dim SetMode As Long
hDevice = ImgOpen(“IFIMGST2”)
DateInfo.Date.mday = 15
DateInfo.Date.mon = 2
DateInfo.Date.year = 2014
DateInfo.Xcoordinates = 100
DateInfo.Ycoordinates = 100
TimeInfo.Time.sec = 58
TimeInfo.Time.min = 26
TimeInfo.Time.hour = 14
TimeInfo.Xcoordinates = 100
TimeInfo.Ycoordinates = 320
SetMode
=
IFIMG_IMPOSE_SET_DATE
OrIFIMG_IMPOSE_STRING_OUTLINE
Or
IFIMG_IMPOSE_SET_TIME
ColorTable(0) = &HFF0000
ColorTable(1) = &H000000
nRet = ImgSetImposeDateTimeInfo(hDevice,DateInfo,TimeInfo,SetMode,ColorTable(0)、1)
© 2003, 2016 Interface Corporation. All rights reserved.
463
GPC-5520 Help for Windows
●Delphi
var
hDevice: THandle;
nRet: Cardinal;
DateInfo: IFIMGDATEINFO;
TimeInfo: IFIMGTIMEINFO;
ColorTable: array[0..1] of DWORD;
beginlpszName := 'IFIMGST1';
hDevice := ImgOpen(lpszName);
DateInfo.Date.mday :=
DateInfo.Date.mon :=
DateInfo.Date.year :=
DateInfo.Xcoordinates
DateInfo.Ycoordinates
15;
2;
2014;
:= 100;
:= 100;
TimeInfo.Time.sec := 58;
TimeInfo.Time.min := 26;
TimeInfo.Time.hour := 14;
TimeInfo.Xcoordinates := 100;
TimeInfo.Ycoordinates := 320;
SetMode := IFIMG_IMPOSE_SET_DATE|IFIMG_IMPOSE_SET_TIME|IFIMG_IMPOSE_STRING_OUTLINE;
ColorTable[0] := $FF0000;
ColorTable[1] := $000000;
nRet := ImgSetImposeDateTimeInfo(hDevice, DateInfo, TimeInfo, SetMode, ColorTable、
1);
© 2003, 2016 Interface Corporation. All rights reserved.
464
GPC-5520 Help for Windows
●Visual C# .NET
IntPtr
hDeviceHandle;
int
nRet;
IFIMGDATEINFO DateInfo;
IFIMGTIMEINFO TimeInfo;
DWORD SetMode;
DWORD ColorTable[2];
hDeviceHandle = IFCIMG_ANY.ImgOpen("IFIMGST2");
DateInfo.Date.mday = 15;
DateInfo.Date.mon = 2;
DateInfo.Date.year = 2014;
DateInfo.Xcoordinates = 100;
DateInfo.Ycoordinates = 100;
TimeInfo.Time.sec = 58;
TimeInfo.Time.min = 26;
TimeInfo.Time.hour = 14;
TimeInfo.Xcoordinates = 100;
TimeInfo.Ycoordinates = 320;
SetMode = IFIMG_IMPOSE_SET_DATE|IFIMG_IMPOSE_SET_TIME|IFIMG_IMPOSE_STRING_OUTLINE;
ColorTable[0] = 0xFF0000;
ColorTable[1] = 0x000000;
nRet = IFCIMG_ANY.ImgSetImposeDateTimeInfo(hDevice, DateInfo, TimeInfo, SetMode,
ColorTable、1);
© 2003, 2016 Interface Corporation. All rights reserved.
465
GPC-5520 Help for Windows
●Visual Basic .NET
Dim lpszName As String
Dim hDeviceHandle As IntPtr
Dim nRet As Integer
Dim DateInfo As IFIMGDATEINFO
Dim TimeInfo As IFIMGTIMEINFO
Dim ColorTable(2) As Long
Dim SetMode As Long
lpszName = “IFIMGST2”
hDeviceHandle = IFCIMG_ANY.ImgOpen(lpszName)
DateInfo.Date.mday = 15
DateInfo.Date.mon = 2
DateInfo.Date.year = 2014
DateInfo.Xcoordinates = 100
DateInfo.Ycoordinates = 100
TimeInfo.Time.sec = 58
TimeInfo.Time.min = 26
TimeInfo.Time.hour = 14
TimeInfo.Xcoordinates = 100
TimeInfo.Ycoordinates = 320
SetMode = IFCIMG_ANY.IFIMG_IMPOSE_SET_DATE Or _
IFCIMG_ANY.IFIMG_IMPOSE_SET_TIME Or _
IFCIMG_ANY.IFIMG_IMPOSE_STRING_OUTLINE
ColorTable(0) = &HFF0000
ColorTable(1) = &H000000
nRet = IFCIMG_ANY.ImgSetImposeDateTimeInfo(hDevice,DateInfo,TimeInfo,SetMode,_
ColorTable(0)、1)
© 2003, 2016 Interface Corporation. All rights reserved.
466
GPC-5520 Help for Windows
4.4
構造体説明
● IMGDEVICEINFO 構造体
ImgGetDeviceInfo関数で指定するデバイス情報構造体です。
●C 言語
typedef struct {
WORD
wType;
WORD
wRsw;
} IMGDEVICEINFO, *PIMGDEVICEINFO;
●Visual C# .NET
[StructLayout(LayoutKind.Sequential)]
public struct IMGDEVICEINFO {
public short
wType;
public short
wRsw;
}
●Visual Basic .NET
<StructLayout(LayoutKind.Sequential)> _
Structure IMGDEVICEINFO
Dim
wType
As Short
Dim
wRsw
As Short
End Structure
●Delphi 8
type
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
IMGDEVICEINFO = record
wType:
Word;
wRsw:
Word;
end;
メンバ
wType
説明
指定されたデバイスハンドルのインタフェースモジュール型式
wRsw
指定されたデバイスハンドルのインタフェースモジュールの RSW1,RSW2 の
設定値
ビット
内容
bit15~bit8
予約
bit7~bit4
RSW2 の値
bit3~bit0
RSW1 の値
© 2003, 2016 Interface Corporation. All rights reserved.
467
GPC-5520 Help for Windows
● IMGBUFFERINFO 構造体
ImgSetBuffer関数で指定するバッファ情報構造体です。
●C 言語
typedef struct {
PVOID
pBufferAddress;
DWORD
dwBufferSize;
} IMGBUFFERINFO, *PIMGBUFFERINFO;
●Visual C# .NET
[StructLayout(LayoutKind.Sequential)]
public struct IMGBUFFERINFO {
public IntPtr pBufferAddress;
public uint
dwBufferSize;
}
●Delphi 8
type
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
IMGBUFFERINFO = record
pBufferAddress: IntPtr;
dwBufferSize:
Cardinal;
end;
メンバ
pBufferAddress
dwBufferSize
説明
指定バッファ領域へのポインタアドレス
■x86 環境使用時
PC のメインメモリ(ユーザアプリケーション上のバッファ)を
使用する場合はそのバッファのポインタ(参照)渡しを指定します。
■x64 環境使用時
ドライバ内で確保した物理メモリを使用する場合は、
-1 を指定します。
メモリのサイズ
© 2003, 2016 Interface Corporation. All rights reserved.
468
GPC-5520 Help for Windows
● IMGCAPSTATUS 構造体
ImgGetCaptureStatus関数で指定するキャプチャ状態構造体です。
●C 言語
typedef struct {
DWORD
DWORD
DWORD
dwCapture;
dwFrameCnt;
dwTrigger;
} IMGCAPSTATUS, *PIMGCAPSTATUS;
●Visual C# .NET
[StructLayout(LayoutKind.Sequential)]
public struct IMGCAPSTATUS {
public uint
dwCapture;
public uint
dwFrameCnt;
public uint
dwTrigger;
}
●Visual Basic .NET
<StructLayout(LayoutKind.Sequential)> _
Structure IMGCAPSTATUS
Dim
dwCapture
As Integer
Dim
dwFrameCnt
As Integer
Dim
dwTrigger
As Integer
End Structure
●Delphi 8
type
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
IMGCAPSTATUS = record
dwCapture:
Cardinal;
dwFrameCnt:
Cardinal;
dwTrigger:
Cardinal;
end;
© 2003, 2016 Interface Corporation. All rights reserved.
469
GPC-5520 Help for Windows
メンバ
dwCapture
説明
キャプチャ状態
ビット
bit31~bit11
bit10~bit8
bit7~bit4
bit3
bit2
bit1
bit0
内容
予約
使用しているチャンネルを取得します。
多チャンネル製品シリーズ専用です。
1 チャンネル入力製品は 0 です。
bit10
bit9
bit8
CN1/VIN1
0
0
1
CN4/VIN2
1
0
0
CN5/VIN3
1
0
1
CN6/VIN4
1
1
0
CN7/VIN5
1
1
1
予約
同期信号状態
※2
入力用 FIFO の状態
※1
入力用 FIFO の状態
※1
キャプチャ状態
0:正常
1:異常が発生した
0:Full でない
1:Full 状態
0:空でない
1:空状態
0:停止中
1:キャプチャ中
※ 1
入力用 FIFO が Full または空が有効の場合、映像機器からのフレー
ムデータの取りこぼしが起きている可能性があります。入力用 FIFO
が Full の場合、PCI バス上でのデータ転送が遅れている可能性が
あります。入力用 FIFO が空の場合、キャプチャを開始していない。
または映像機器からデータが取り込まれていない可能性がありま
す。
※ 2
このフラグが立った場合、キャプチャ動作中にノイズ、ビデオケー
ブルの抜き差しなどの外的要因の為にカメラの映像信号と同期が
取れなくなった事を知らせます。
デバイスはキャプチャ動作を停止して、カメラとの同期を取ってキ
ャプチャ再開します。再開が始まった際にこのフラグは 0 になりま
す。
この機能はお使いになっている製品のハードウェアのバージョン
よっては対応しておりません。ご注意ください。
© 2003, 2016 Interface Corporation. All rights reserved.
470
GPC-5520 Help for Windows
dwFrameCnt
キャプチャが完了したフレーム数です。
(1~FFFFFFFFh)
※FFFFFFFFh までカウント後、1 に戻ります。
複数フレーム分のバッファ領域を確保している場合、描画処理等でこのフ
レーム数の値を活用してください。
dwTrigger
トリガの発生状態
ビット
内容
bit31~bit3
予約
bit2
面積 AND 重心トリガ
bit1
重心トリガ
bit0
面積トリガ
© 2003, 2016 Interface Corporation. All rights reserved.
471
0:トリガ未発生
1:トリガ発生
0:トリガ未発生
1:トリガ発生
0:トリガ未発生
1:トリガ発生
GPC-5520 Help for Windows
● IMGCAPSTATUSEX 構造体
ImgGetCaptureStatusEx関数で指定するキャプチャ状態構造体です。
●C 言語
typedef struct {
DWORD
DWORD
DWORD
DWORD
dwCapture;
dwFrameCntDMA;
dwFrameCntSDRAM;
dwTrigger;
} IMGCAPSTATUSEX, *PIMGCAPSTATUSEX;
●Visual C# .NET
[StructLayout(LayoutKind.Sequential)]
public struct IMGCAPSTATUSEX {
public uint
dwCapture;
public uint
dwFrameCntDMA;
public uint
dwFrameCntSDRAM;
public uint
dwTrigger;
}
●Visual Basic .NET
<StructLayout(LayoutKind.Sequential)> _
Structure IMGCAPSTATUSEX
Dim
dwCapture
As Integer
Dim
dwFrameCntDMA
As Integer
Dim
dwFrameCntSDRAM
As Integer
Dim
dwTrigger
As Integer
End Structure
●Delphi 8
type
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
IMGCAPSTATUSEX = record
dwCapture:
Cardinal;
dwFrameCntDMA:
Cardinal;
dwFrameCntSDRAM:
Cardinal;
dwTrigger:
Cardinal;
end;
© 2003, 2016 Interface Corporation. All rights reserved.
472
GPC-5520 Help for Windows
メンバ
dwCapture
説明
キャプチャ状態
ビット
bit31~bit11
bit10~bit8
内容
予約
使用しているチャンネルを取得します。
CN1/VIN1
CN4/VIN2
CN5/VIN3
CN6/VIN4
CN7/VIN5
bit7~bit6
bit5
bit4
bit3
bit2
bit1
bit0
bit10
0
1
1
1
1
bit9
0
0
0
1
1
bit8
1
0
1
0
1
予約
同期信号状態※1
0:正常
1:異常が発生した
SDRAM データの DMA 転送 0:停止中
状態
1:転送中
SDRAM によるキャプチャ 0:停止中
状態
1:キャプチャ中
入力用 FIFO の状態
0:Full でない
※2
1:Full 状態
入力用 FIFO の状態
0:空でない
1:空状態
キャプチャ状態
0:停止中
1:キャプチャ中
※ 1
このフラグが立った場合、キャプチャ動作中にノイズ、ビデオケー
ブルの抜き差しなどの外的要因の為にカメラの映像信号と同期が
取れなくなった事を知らせます。
デバイスはキャプチャ動作を停止して、カメラとの同期を取ってキ
ャプチャ再開します。再開が始まった際にこのフラグは 0 になりま
す。
この機能はお使いになっている製品のハードウェアのバージョン
よっては対応しておりません。
※ 2
入力用 FIFO が Full または空が有効の場合、映像機器からのフレー
ムデータの取りこぼしが起きている可能性があります。入力用 FIFO
が Full の場合、PCI バス上でのデータ転送が遅れている可能性が
あります。入力用 FIFO が空の場合、キャプチャを開始していない。
または映像機器からデータが取り込まれていない可能性がありま
す。
© 2003, 2016 Interface Corporation. All rights reserved.
473
GPC-5520 Help for Windows
dwFrameCntDMA
「DMA 転送によるキャプチャが完了したフレーム数」または、
「SDRAM データの DMA 転送が完了したフレーム数」
(1~FFFFFFFFh)
※FFFFFFFFh までカウント後、1 に戻ります。
複数フレーム分のバッファ領域を確保している場合、描画処理等でこのフ
レーム数の値を活用してください。
dwFrameCntSDRAM
SDRAM キャプチャが完了したフレーム数です。
(1~FFFFFFFFh)
※FFFFFFFFh までカウント後、1 に戻ります。
複数フレーム分のバッファ領域を確保している場合、描画処理等でこのフ
レーム数の値を活用してください。
dwTrigger
トリガの発生状態
ビット
内容
bit31~bit5
予約
bit4
パターン一致トリガ
bit3
予約
bit2
面積 AND 重心トリガ
bit1
重心トリガ
bit0
面積トリガ
© 2003, 2016 Interface Corporation. All rights reserved.
474
0:トリガ未発生
1:トリガ発生
0:トリガ未発生
1:トリガ発生
0:トリガ未発生
1:トリガ発生
0:トリガ未発生
1:トリガ発生
GPC-5520 Help for Windows
● IMGBINCONFIG 構造体
ImgSetBinarizationConfig関数で指定する 2 値化設定構造体です。
●C 言語
typedef struct {
DWORD
dwColorIngredient;
DWORD
dwMaxthreshold;
DWORD
dwMinthreshold;
DWORD
dwBinarizationMode;
} IMGBINCONFIG, *PIMGBINCONFIG;
●Visual C# .NET
[StructLayout(LayoutKind.Sequential)]
public struct IMGBINCONFIG {
public uint
dwColorIngredient;
public uint
dwMaxthreshold;
public uint
dwMinthreshold;
public uint
dwBinarizationMode;
}
●Visual Basic .NET
<StructLayout(LayoutKind.Sequential)> _
Structure IMGBINCONFIG
Dim
dwColorIngredient
As Integer
Dim
dwMaxthreshold
As Integer
Dim
dwMinthreshold
As Integer
Dim
dwBinarizationMode
As Integer
End Structure
●Delphi 8
type
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
IMGBINCONFIG = record
dwColorIngredient:
Cardinal;
dwMaxthreshold:
Cardinal;
dwMinthreshold:
Cardinal;
dwBinarizationMode:
Cardinal;
end;
© 2003, 2016 Interface Corporation. All rights reserved.
475
GPC-5520 Help for Windows
メンバ
dwColorIngredient
説明
2 値化処理を行う色成分の指定
映像機器から取り込んだデータに対しての色成分の指定です。
識別子
値
意味
IFIMG_INGREDIENT_RED
00000001h
赤成分
IFIMG_INGREDIENT_GREEN 00000002h
緑成分
IFIMG_INGREDIENT_BLUE
00000003h
青成分
IFIMG_INGREDIENT_GRAY
00000004h グレイスケール(輝度
成分)
dwMaxthreshold
上限しきい値(0~255)
dwMinthreshold
下限しきい値(0~255)
dwBinarizationMode
2 値化条件の反転指定
識別子
IFIMG_BINMODE_NORMAL
値
00000001h
IFIMG_BINMODE_REVERSAL
00000002h
© 2003, 2016 Interface Corporation. All rights reserved.
476
意味
通常(上限値と下限値の
間が FF、それ以外が 0)
反転(上限値と下限値の
間が 0、それ以外が FF)
GPC-5520 Help for Windows
● IMGTRGCONFIG 構造体
ImgSetTriggerConfig関数で指定するトリガ発生条件設定構造体です。
●C 言語
typedef struct {
DWORD
dwTriggerEnabled;
DWORD
dwAreaMax;
DWORD
dwAreaMin;
DWORD
dwStartPointX;
DWORD
dwStartPointY;
DWORD
dwXLength;
DWORD
dwYLength;
DWORD
dwTriggerRangeMode;
} IMGTRGCONFIG, *PIMGTRGCONFIG;
●Visual C# .NET
[StructLayout(LayoutKind.Sequential)]
public struct IMGBINCONFIG {
public uint
dwTriggerEnabled;
public uint
dwAreaMax;
public uint
dwAreaMin;
public uint
dwStartPointX;
public uint
dwStartPointY;
public uint
dwXLength;
public uint
dwYLength;
public uint
dwTrigerRangeMode;
}
●Visual Basic .NET
<StructLayout(LayoutKind.Sequential)> _
Structure IMGBINCONFIG
Dim
dwTriggerEnabled
As Integer
Dim
dwAreaMax
As Integer
Dim
dwAreaMin
As Integer
Dim
dwStartPointX
As Integer
Dim
dwStartPointY
As Integer
Dim
dwXLength
As Integer
Dim
dwYLength
As Integer
Dim
dwTrigerRangeMode
As Integer
Dim
dwBinarizationMode
As Integer
End Structure
© 2003, 2016 Interface Corporation. All rights reserved.
477
GPC-5520 Help for Windows
●Delphi 8
type
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
IMGTRGCONFIG = record
dwTriggerEnabled:
Cardinal;
dwAreaMax:
Cardinal;
dwAreaMin:
Cardinal;
dwStartPointX:
Cardinal;
dwStartPointY:
Cardinal;
dwXLength:
Cardinal;
dwYLength:
Cardinal;
dwTrigerRangeMode:
Cardinal;
end;
メンバ
dwTriggerEnabled
説明
トリガ発生を有効にするトリガを指定します。
ビット
bit31~bit3
bit2
内容
予約
面積 AND 重心
bit1
重心
bit0
面積
1:有効
0:無効
1:有効
0:無効
1:有効
0:無効
dwAreaMax
面積トリガ上限閾値を指定します。
(0 ~ 307,200)
dwAreaMin
面積トリガ下限閾値を指定します。
(0 ~ 307,200)
dwStartPointX
重心トリガエリアにおける開始点の X 座標(0~639)
dwStartPointY
重心トリガエリアにおける開始点の Y 座標(0~479)
dwXLength
開始点からの X 方向への長さ
(1
~
640)
dwYLength
開始点からの Y 方向への長さ
(1
~
480)
dwTriggerRangeMode
トリガの発生条件を反転します。
ビット
bit31~bit2
bit1
内容
予約
重心トリガ
bit0
面積トリガ
© 2003, 2016 Interface Corporation. All rights reserved.
478
1:トリガエリア外の場合に発生
0:トリガエリア内の場合に発生
1:トリガエリア外の場合に発生
0:トリガエリア内の場合に発生
GPC-5520 Help for Windows
● IMGCAPCONFIG 構造体
ImgSetCaptureConfig関数で指定するキャプチャ設定構造体です。
●C 言語
typedef struct {
DWORD
dwMode;
DWORD
dwThinFrameCnt;
DWORD
dwTimerCycle;
DWORD
dwChFrameCnt;
DWORD
dwChangePattern[5];
} IMGCAPCONFIG, *PIMGCAPCONFIG;
●Visual C# .NET
[StructLayout(LayoutKind.Sequential)]
public struct IMGCAPCONFIG {
public uint
dwMode;
public uint
dwThinFrameCnt;
public uint
dwTimerCycle;
public uint
dwChFrameCnt;
[MarshalAs(UnmanagedType.ByValArray, SizeConst=5)]
public uint[] dwChangePattern
public void InitializeArray()
{
dwChangePattern = new uint [5];
}
public void SetChnangePattern(uint ulIndex, uint ChNo)
{
dwChangePattern[ulIndex] = ChNo;
}
public uint GetChnangePattern(uint ulIndex)
{
return dwChangePattern[ulIndex];
}
}
© 2003, 2016 Interface Corporation. All rights reserved.
479
GPC-5520 Help for Windows
●Visual Basic .NET
<StructLayout(LayoutKind.Sequential)> _
Structure IMGCAPCONFIG
Dim
dwMode
As Integer
Dim
dwThinFrameCnt
As Integer
Dim
dwTimerCycle
As Integer
Dim
dwChFrameCnt
As Integer
<MarshalAs(UnmanagedType.ByValArray, SizeConst:=5)> _
Dim
dwChangePattern()
As Integer
Public Sub New(ByVal Dummy As Integer)
ReDim dwChangePattern(5)
End Sub
Public Sub SetChnangePattern(ByVal Index As Integer, ByVal ChNo As Integer)
dwChangePattern(Index) = ChNo
End Sub
Public Function GetChnangePattern(ByVal Index As Integer)
GetChnangePattern = dwChangePattern(Index)
End Function
End Structure
●Delphi 8
type
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
IMGCAPCONFIG = record
dwMode;
Cardinal;
dwThinFrameCnt;
Cardinal;
dwTimerCycle;
Cardinal;
dwChFrameCnt;
Cardinal;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 5)]
dwChangePattern:
array[0..4] of Cardinal;
end;
© 2003, 2016 Interface Corporation. All rights reserved.
480
GPC-5520 Help for Windows
メンバ
dwMode
説明
キャプチャモードを指定します。設定可能なモードは下記内のどれか
1 つです。複数設定は不可能です。
識別子
値
意味
IFIMG_CAPTURE_NORMAL
00000001h
通常キャプチャモード
(デフォルト)
IFIMG_CAPTURE_THINOUT
00000002h
指定フレーム間隔モード
(1ch 使用限定)
IFIMG_CAPTURE_TIMER
00000003h
指定時間間隔モード
(1ch 使用限定)
IFIMG_CAPTURE_CH_FRAME
00000004h
フレーム毎切り換え
(多 Ch 使用限定)
IFIMG_CAPTURE_CH_TIMER
00000005h
指定時間切り換え
(多 Ch 使用限定)
dwThinFrameCnt
dwMode を IFIMG_CAPTURE_THINOUT に設定した場合に有効です。
設定値で一回のキャプチャを行います。
デフォルト: 2
設定範囲 : 2 ~ 4,294,967,295
例)dwThinFrameCnt に値 2 を設定した場合、2 フレーム中 1 フレーム
をキャプチャします。つまり、1 フレーム間引きとなります。
dwTimerCycle
設定したタイマ周期で、1 フレーム毎のキャプチャ(dwMode が IFIMG_
CAPTURE_TIMER の場合)、またはチャンネルの切り換え(dwMode が
IFIMG_CAPTURE_CH_TIMER の場合)を行います。
選定範囲(1 ~ 16000)単位(ms)
デフォルト 1000 (1s 周期)
※設定する場合は約 66ms 以上の設定を行ってください。
ImgStartCapture関数を実行した時のフレームでなく、次フレーム
のタイミングで実際にキャプチャするので、最長で約 33msの時間
を要します。また、1 フレームのキャプチャは約 33msかかります。
よって、トータルで約 66ms 以上を設定しないと正常にキャプチャ
できない可能性があります。
dwChFrameCnt
デフォルト:1 単位(フレーム)
使用する各チャンネルのキャプチャフレーム数を設定します。
dwMode が IFIMG_CAPTURE_CHA_FRAME の場合、設定したフレーム数単
位で、チャンネル切り換えを行います。
dwChangePattern
チャンネルの切り換え順番を設定します。チャンネル番号を順番に配
列に設定してください。配列に格納した順番を繰り返して、チャンネ
ル切り替えを行います。デフォルトは CN1 です。使用しない配列は 0
を代入してください。配列要素に代入する際、必ず連続で代入してく
ださい。
© 2003, 2016 Interface Corporation. All rights reserved.
481
GPC-5520 Help for Windows
識別子
IFIMG_CHANNEL_CN1
IFIMG_CHANNEL_CN4
IFIMG_CHANNEL_CN5
IFIMG_CHANNEL_CN6
IFIMG_CHANNEL_CN7
値
00000001
00000004
00000005
00000006
00000007
例 1) CN6…
dwChangePattern[0]
dwChangePattern[1]
dwChangePattern[2]
dwChangePattern[3]
dwChangePattern[4]
=
=
=
=
=
IFIMG_CHANNEL_CN4
0
0
0
0
例 2) CN6,CN5,CN7…
dwChangePattern[0]
dwChangePattern[1]
dwChangePattern[2]
dwChangePattern[3]
dwChangePattern[4]
=
=
=
=
=
IFIMG_CHANNEL_CN4
IFIMG_CHANNEL_CN5
IFIMG_CHANNEL_CN7
0
0
チャンネル番号
CN1/VIN1
CN4/VIN2
CN5/VIN3
CN6/VIN4
CN7/VIN5
例 3) CN1,CN4,CN5,CN6,CN7…
dwChangePattern[0] = IFIMG_CHANNEL_CN1
dwChangePattern[1] = IFIMG_CHANNEL_CN4
dwChangePattern[2] = IFIMG_CHANNEL_CN5
dwChangePattern[3] = IFIMG_CHANNEL_CN6
dwChangePattern[4] = IFIMG_CHANNEL_CN7
●Visual C# .NET
IFCIMG.IMGCAPCONFIG CapCnf;
CapCnf.InitializeArray();
CapCnf.SetChnangePattern(0,IFCIMG.IFIMG_CHANNEL_CN1);
CapCnf.SetChnangePattern(1,IFCIMG.IFIMG_CHANNEL_CN4);
CapCnf.SetChnangePattern(2,IFCIMG.IFIMG_CHANNEL_CN5);
CapCnf.SetChnangePattern(3,IFCIMG.IFIMG_CHANNEL_CN6);
CapCnf.SetChnangePattern(4,IFCIMG.IFIMG_CHANNEL_CN7);
●Visual Basic .NET
Dim CapCnf As IFCIMG.IMGCAPCONFIG = New IFCIMG.IMGCAPCONFIG(0)
CapCnf.SetChnangePattern(0,IFCIMG.IFIMG_CHANNEL_CN1)
CapCnf.SetChnangePattern(1,IFCIMG.IFIMG_CHANNEL_CN4)
CapCnf.SetChnangePattern(2,IFCIMG.IFIMG_CHANNEL_CN5)
CapCnf.SetChnangePattern(3,IFCIMG.IFIMG_CHANNEL_CN6)
CapCnf.SetChnangePattern(4,IFCIMG.IFIMG_CHANNEL_CN7)
© 2003, 2016 Interface Corporation. All rights reserved.
482
GPC-5520 Help for Windows
キャプチャモード対応表
キャプチャモード
IFIMG_CAPTURE_NORMAL
IFIMG_CAPTURE_THINOUT
IFIMG_CAPTURE_TIMER
IFIMG_CAPTURE_CH_FRAME
IFIMG_CAPTURE_CH_TIMER
5520
5521
5522
5523
5530
5531
5532
5533
○
○
○※
-
-
○
○
○
-
-
○
○
○
-
-
○
○
○
-
-
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
※PCI-5520[12]C02 以降に対応しております。
版数、チェンジ番号の確認方法は User’s Manual をご参照ください。
© 2003, 2016 Interface Corporation. All rights reserved.
483
GPC-5520 Help for Windows
● IMGEVENTTABLE 構造体
ImgSetEventMask関数、ImgGetEventMask関数で指定する割り込みマスク設定構造体です。
また ImgSetEvent関数で登録されるコールバック関数の引数です。
●C 言語
typedef struct {
DWORD
dwDI;
DWORD
dwFrame;
DWORD
dwTrigger;
} IMGEVENTTABLE, *PIMGEVENTTABLE;
●Visual C# .NET
[StructLayout(LayoutKind.Sequential)]
public struct IMGEVENTTABLE {
public uint
dwDI;
public uint
dwFrame;
public uint
dwTrigger;
}
●Visual Basic .NET
<StructLayout(LayoutKind.Sequential)> _
Structure IMGEVENTTABLE
Dim
dwDI
As Integer
Dim
dwFrame
As Integer
Dim
dwTrigger
As Integer
End Structure
●Delphi 8
type
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
IMGEVENTTABLE = record
dwDI:
Cardinal;
dwFrame:
Cardinal;
dwTrigger:
Cardinal;
end;
© 2003, 2016 Interface Corporation. All rights reserved.
484
GPC-5520 Help for Windows
メンバ
dwDI
dwFrame
説明
汎用入力割り込み
ビット
bit31~bit8
bit7
内容
予約
IN8 立ち下がり割り込み
bit6
IN7 立ち下がり割り込み
bit5
IN6 立ち下がり割り込み
bit4
IN5 立ち下がり割り込み
bit3
IN4 立ち下がり割り込み
bit2
IN3 立ち下がり割り込み
bit1
IN2 立ち下がり割り込み
bit0
IN1 立ち下がり割り込み
1:有効
0:無効
1:有効
0:無効
1:有効
0:無効
1:有効
0:無効
1:有効
0:無効
1:有効
0:無効
1:有効
0:無効
1:有効
0:無効
キャプチャ状態割り込み
ビット
内容
bit31~bit4
予約
bit3
同期信号異常検知※
1:有効
0:無効
bit2
SDRAM データの DMA 転送
1:有効
0:無効
bit1
SDRAM キャプチャによる 1 フレーム 1:有効
毎転送完了割り込み
0:無効
bit0
1 フレーム毎転送完了割り込み
1:有効
0:無効
※この機能はお使いになっている製品のハードウェアのバージョ
ンよっては対応しておりません。
dwTrigger
トリガ発生割り込みの設定
ビット
内容
bit31~bit17
予約
bit16
スーパーインポーズ画像転送完了
1:有効
0:無効
bit15~bit5
予約
bit4
パターン一致 1:有効
0:無効
bit3
予約
© 2003, 2016 Interface Corporation. All rights reserved.
485
GPC-5520 Help for Windows
bit2
面積 AND 重心
bit1
重心
bit0
面積
© 2003, 2016 Interface Corporation. All rights reserved.
486
1:有効
0:無効
1:有効
0:無効
1:有効
0:無効
GPC-5520 Help for Windows
● IMGEVENTTABLEEX 構造体
ImgSetEventEx関数で登録される、コールバック関数の引数です。
●C 言語
typedef struct {
DWORD
dwDI;
DWORD
dwFrame;
DWORD
dwTrigger;
DWORD
dwFrameCntDMA;
DWORD
dwFrameCntSDRAM;
DWORD
dwXcoordinates;
DWORD
dwYcoordinates;
DWORD
dwPercentage;
} IMGEVENTTABLEEX, *PIMGEVENTTABLEEX;
●Visual C# .NET
[StructLayout(LayoutKind.Sequential)]
public struct IMGEVENTTABLEEX {
public uint
dwDI;
public uint
dwFrame;
public uint
dwTrigger;
public uint
dwFrameCntDMA;
public uint
dwFrameCntSDRAM;
public uint
dwXcoordinates;
public uint
dwYcoordinates;
public uint
dwPercentage;
}
●Visual Basic .NET
<StructLayout(LayoutKind.Sequential)> _
Structure IMGEVENTTABLEEX
Dim
dwDI
As Integer
Dim
dwFrame
As Integer
Dim
dwTrigger
As Integer
Dim
dwFrameCntDMA
As Integer
Dim
dwFrameCntSDRAM
As Integer
Dim
dwXcoordinates
As Integer
Dim
dwYcoordinates
As Integer
Dim
dwPercentage
As Integer
End Structure
© 2003, 2016 Interface Corporation. All rights reserved.
487
GPC-5520 Help for Windows
●Delphi 8
type
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
IMGEVENTTABLEEX = record
dwDI
Cardinal;
dwFrame
Cardinal;
dwTrigger
Cardinal;
dwFrameCntDMA
Cardinal;
dwFrameCntSDRAM Cardinal;
dwXcoordinates
Cardinal;
dwYcoordinates
Cardinal;
dwPercentage
Cardinal;
end;
メンバ
dwDI
dwFrame
説明
汎用入力割り込み
ビット
bit31~bit8
bit7
内容
予約
IN8 立ち下がり割り込み
bit6
IN7 立ち下がり割り込み
bit5
IN6 立ち下がり割り込み
bit4
IN5 立ち下がり割り込み
bit3
IN4 立ち下がり割り込み
bit2
IN3 立ち下がり割り込み
bit1
IN2 立ち下がり割り込み
bit0
IN1 立ち下がり割り込み
キャプチャ状態割り込み
ビット
内容
bit31~bit4
予約
bit3
同期信号異常検知※
bit2
bit1
bit0
1:有効
0:無効
1:有効
0:無効
1:有効
0:無効
1:有効
0:無効
1:有効
0:無効
1:有効
0:無効
1:有効
0:無効
1:有効
0:無効
1:有効
0:無効
SDRAM データの DMA 転送
1:有効
0:無効
SDRAM キャプチャによる 1 フレーム 1:有効
毎転送完了割り込み
0:無効
1 フレーム毎転送完了割り込み
1:有効
0:無効
© 2003, 2016 Interface Corporation. All rights reserved.
488
GPC-5520 Help for Windows
※この機能はお使いになっている製品のハードウェアのバージョン
よっては対応しておりません。
dwTrigger
トリガ発生割り込みの設定
ビット
内容
bit31~bit5
予約
bit4
パターン一致 1:有効
0:無効
bit3
予約
bit2
面積 AND 重心 1:有効
0:無効
bit1
重心
1:有効
0:無効
bit0
面積
1:有効
0:無効
dwFrameCntDMA
「DMA 転送によるキャプチャが完了したフレーム数」または、
「SDRAM データの DMA 転送が完了したフレーム数」
(1~FFFFFFFFh)
※FFFFFFFFh までカウント後、1 に戻ります。
複数フレーム分のバッファ領域を確保している場合、描画処理等でこの
フレーム数の値を活用してください。
dwFrameCntSDRAM
dwXcoordinates
dwPercentage
SDRAM キャプチャが完了したフレーム数です。
(1~FFFFFFFFh)
※FFFFFFFFh までカウント後、1 に戻ります。
解像度が「320×240」または「160×120」の場合、0 が返ります。
複数フレーム分のバッファ領域を確保している場合、描画処理等でこの
フレーム数の値を活用してください。
パターン一致トリガが有効の場合、パターン一致した測定対象物の X 座
標の重心値です。
解像度が「320×240」または「160×120」の場合、0 が返ります。
パターン一致トリガが有効の場合、パターン一致した測定対象物の一致
率です。
解像度が「320×240」または「160×120」の場合、0 が返ります。
© 2003, 2016 Interface Corporation. All rights reserved.
489
GPC-5520 Help for Windows
● IMGEVENTREQ 構造体
ImgSetEvent関数で指定する割り込み設定構造体です。
●C 言語(x86 の場合)
typedef struct {
HWND
hWnd;
UINT
uMessage;
HANDLE
hEvent;
PIMGCALLBACK
pCallBackProc;
DWORD
dwUser;
} IMGEVENTREQ, *PIMGEVENTREQ;
●C 言語(x64 の場合)
typedef struct {
HWND
hWnd;
UINT
uMessage;
HANDLE
hEvent;
PIMGCALLBACK
pCallBackProc;
PVOID
pUser;
} IMGEVENTREQ, *PIMGEVENTREQ;
●Visual C# .NET(x86、x64 共用)
[StructLayout(LayoutKind.Sequential)]
public struct IMGEVENTREQ {
public uint
hWnd;
public uint
uMessage;
public uint
hEvent;
PIMGCALLBACK
pCallBackProc;
public IntPtr pUser;
}
●Visual C# .NET(x86 専用)
[StructLayout(LayoutKind.Sequential)]
public struct IMGEVENTREQ {
public uint
hWnd;
public uint
uMessage;
public uint
hEvent;
PIMGCALLBACK
pCallBackProc;
public uint
dwUser;
}
© 2003, 2016 Interface Corporation. All rights reserved.
490
GPC-5520 Help for Windows
●Visual Basic .NET(x86、x64 共用)
<StructLayout(LayoutKind.Sequential)> _
Structure IMGEVENTREQ
Dim
hWnd
As Integer
Dim
uMessage
As Integer
Dim
hEvent
As Integer
Dim
pCallBackProc
As Integer
Dim
pUser
As IntPtr
End Structure
●Visual Basic .NET(x86 専用)
<StructLayout(LayoutKind.Sequential)> _
Structure IMGEVENTREQ
Dim
hWnd
As Integer
Dim
uMessage
As Integer
Dim
hEvent
As Integer
Dim
pCallBackProc
As Integer
Dim
dwUser
As Integer
End Structure
●Delphi 8
type
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
IMGEVENTREQ = record
hWnd:
Integer;
uMessage:
Cardinal;
hEvent:
Integer;
pCallBackProc:
IMGCALLBACK;
dwUser:
Cardinal;
end;
メンバ
hWnd
説明
メッセージ送出ウィンドウハンドル
ImgSetEventMask関数にて設定した各種割り込み発生時に送出するメッセ
ージのポスト先ウィンドウハンドルを指定してください。
メッセージポストを行わない場合には、C 言語では NULL,Visual Basic、
Delphi では 0 を指定してください。
uMessage
hWnd へ送出するメッセージコード
ImgSetEventMask関数におけるIMGEVENTTABLE構造体にて設定した割り込
み発生時にhWndへ送出するメッセージコードを指定してください。
メッセージポストを行わない場合には、C 言語では WM_NULL,Visual Basic、
Delphi では 0 を指定してください。
メッセージ送出時、LPARAM には以下の情報が格納されます。
ビット
内容
状態
bit31~bit15
予約
bit14
同期信号異常検知割り込み
© 2003, 2016 Interface Corporation. All rights reserved.
491
GPC-5520 Help for Windows
bit13~bit12
bit11
bit10
bit9
bit8
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
hEvent
予約
面積 AND 重心割り込み
重心トリガ割り込み
面積トリガ割り込み
フレーム転送完了割り込み
IN8 立ち下がり割り込み
IN7 立ち下がり割り込み
IN6 立ち下がり割り込み
IN5 立ち下がり割り込み
IN4 立ち下がり割り込み
IN3 立ち下がり割り込み
IN2 立ち下がり割り込み
IN1 立ち下がり割り込み
0:未発生
1:発生
WPARAM には、フレーム転送完了数が格納されます。
1 フレーム毎転送完了割り込みの有効/無効に関係なく格納されます。
イベント発生時にシグナル状態となるイベントオブジェクトのハンドル
を指定してください。
イベントオブジェクトを使用しない場合には、C 言語では NULL、Visual
Basic、Delphi では 0 を指定してください。
pCallBackProc
コールバック関数へのポインタ
ImgSetEventMask関数にて設定した各種割り込み発生時に呼び出されるユ
ーザ・コールバック関数のポインタを指定してください。
ユーザ・コールバック関数の呼び出しを行わない場合には、C 言語では
NULL、Visual Basic、Delphi では 0 を指定してください。
dwUser(pUser)
ユーザデータ
© 2003, 2016 Interface Corporation. All rights reserved.
492
GPC-5520 Help for Windows
● IMGEVENTREQEX 構造体
ImgSetEventEx関数で指定する割り込み設定構造体です。
●C 言語(x86 の場合)
typedef struct {
HWND
hWnd;
UINT
uMessage;
HANDLE
hEvent;
PIMGCALLBACKEX pCallBackProcEx;
DWORD
dwUser;
} IMGEVENTREQEX, *PIMGEVENTREQEX;
●C 言語(x64 の場合)
typedef struct {
HWND
hWnd;
UINT
uMessage;
HANDLE
hEvent;
PIMGCALLBACKEX pCallBackProcEx;
PVOID
pUser;
} IMGEVENTREQEX, *PIMGEVENTREQEX;
●Visual C# .NET(x86、x64 共用)
[StructLayout(LayoutKind.Sequential)]
public struct IMGEVENTREQEX {
public uint
hWnd;
public uint
uMessage;
public uint
hEvent;
PIMGCALLBACKEX pCallBackProcEx;
public IntPtr pUser;
}
●Visual C# .NET(x86 専用)
[StructLayout(LayoutKind.Sequential)]
public struct IMGEVENTREQEX {
public uint
hWnd;
public uint
uMessage;
public uint
hEvent;
PIMGCALLBACKEX pCallBackProcEx;
public uint
dwUser;
}
© 2003, 2016 Interface Corporation. All rights reserved.
493
GPC-5520 Help for Windows
●Visual Basic .NET(x86、x64 共用)
<StructLayout(LayoutKind.Sequential)> _
Structure IMGEVENTREQEX
Dim
hWnd
As Integer
Dim
uMessage
As Integer
Dim
hEvent
As Integer
Dim
pCallBackProcEx
As Integer
Dim
pUser
As IntPtr
End Structure
●Visual Basic .NET(x86 専用)
<StructLayout(LayoutKind.Sequential)> _
Structure IMGEVENTREQEX
Dim
hWnd
As Integer
Dim
uMessage
As Integer
Dim
hEvent
As Integer
Dim
pCallBackProcEx
As Integer
Dim
dwUser
As Integer
End Structure
●Delphi 8
type
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
IMGEVENTREQEX = record
hWnd:
Integer;
uMessage:
Cardinal;
hEvent:
Integer;
pCallBackProcEx:
IMGCALLBACKEX;
dwUser:
Cardinal;
end;
メンバ
hWnd
説明
メッセージ送出ウィンドウハンドル
ImgSetEventMask関数にて設定した各種割り込み発生時に送出するメッセ
ージのポスト先ウィンドウハンドルを指定してください。
メッセージポストを行わない場合には、C 言語では NULL,Visual Basic、
Delphi では 0、Visual C# .NET では NULL,Visual Basic .NET では 0 を
指定してください。
uMessage
hWnd へ送出するメッセージコード
ImgSetEventMask関数におけるIMGEVENTTABLE構造体にて設定した割り込
み発生時にhWndへ送出するメッセージコードを指定してください。
メッセージポストを行わない場合には、C 言語では WM_NULL,Visual Basic、
Delphi では 0、、Visual C# .NET では WM_NULL,Visual Basic .NET では 0
を指定してください。
メッセージ送出時、LPARAM には以下の情報が格納されます。
ビット
内容
状態
© 2003, 2016 Interface Corporation. All rights reserved.
494
GPC-5520 Help for Windows
bit31~bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
予約
同期信号異常検知割り込み
パターン一致割り込み
予約
面積 AND 重心トリガ割り込み
重心トリガ割り込み
面積トリガ割り込み
フレーム転送完了割り込み
IN8 立ち下がり割り込み
IN7 立ち下がり割り込み
IN6 立ち下がり割り込み
IN5 立ち下がり割り込み
IN4 立ち下がり割り込み
IN3 立ち下がり割り込み
IN2 立ち下がり割り込み
IN1 立ち下がり割り込み
0:未発生
1:発生
hEvent
イベント発生時にシグナル状態となるイベントオブジェクトのハンドル
を指定してください。
イベントオブジェクトを使用しない場合には、C 言語では NULL、Visual
Basic、Delphi では 0、VISUAL C# .NET では NULL、Visual Basic .NET で
は 0 を指定してください。
pCallBackProcEx
コールバック関数へのポインタ
ImgSetEventMask関数にて設定した各種割り込み発生時に呼び出されるユ
ーザ・コールバック関数のポインタを指定してください。
ユーザ・コールバック関数の呼び出しを行わない場合には、C 言語では
NULL、Visual Basic、Delphi では 0、VISUAL C# .NET では NULL、Visual
Basic .NET では Nothing を指定してください。
dwUser
ユーザデータ
© 2003, 2016 Interface Corporation. All rights reserved.
495
GPC-5520 Help for Windows
● IMGCLIPCONFIG 構造体
ImgClipData 関数で指定する読み出し範囲設定構造体です。
●C 言語
typedef struct {
DWORD
dwDataFormat;
DWORD
dwXCoordinates;
DWORD
dwYCoordinates;
DWORD
dwXLength;
DWORD
dwYLength;
} IMGCLIPCONFIG, *PIMGCLIPCONFIG;
●Visual C# .NET
[StructLayout(LayoutKind.Sequential)]
public struct IMGCLIPCONFIG {
public uint
dwDataFormat;
public uint
dwXCoordinates;
public uint
dwYCoordinates;
public uint
dwXLength;
public uint
dwYLength;
}
●Visual Basic .NET
<StructLayout(LayoutKind.Sequential)> _
Structure IMGCLIPCONFIG
Dim
dwDataFormat
As Integer
Dim
dwXCoordinates
As Integer
Dim
dwYCoordinates
As Integer
Dim
dwXLength
As Integer
Dim
dwYLength
As Integer
End Structure
●Delphi 8
type
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
IMGCLIPCONFIG = record
dwDataFormat:
Cardinal;
dwXCoordinates:
Cardinal;
dwYCoordinates:
Cardinal;
dwXLength:
Cardinal;
dwYLength:
Cardinal;
}
© 2003, 2016 Interface Corporation. All rights reserved.
496
GPC-5520 Help for Windows
メンバ
dwDataFormat
説明
データフォーマットを指定します。
画像フォーマット識別子
識別子
内容
IFIMG_COLOR_RGB32
RGB32 bit
IFIMG_COLOR_RGB24
RGB24 bit(デフォルト)
IFIMG_COLOR_RGB15
RGB15 bit
IFIMG_COLOR_RGB16
RGB16 bit
IFIMG_COLOR_GRAY8
GRAY8 bit
IFIMG_COLOR_RED8
R 8bit
IFIMG_COLOR_GREEN8
G 8bit
IFIMG_COLOR_BLUE8
B 8bit
IFIMG_COLOR_BIN8
2 値化処理データ 8bit
IFIMG_COLOR_CMP8
比較用データ 8bit
IFIMG_COLOR_GRAY10
GRAY 10bit
IFIMG_COLOR_GRAY12
GRAY 12bit
IFIMG_COLOR_GRAY14
GRAY 14bit
IFIMG_COLOR_GRAY16
GRAY 16bit
解像度識別子(OR 演算による設定)
識別子
内容
NTSC/
PAL
値
1h
2h
3h
Bh
4h
5h
6h
7h
8h
Ah
Eh
Fh
10h
11h
値
CameraLink
IFIMG_RESOLUTION_640_480
IFIMG_RESOLUTION_320_240
IFIMG_RESOLUTION_160_120
IFIMG_RESOLUTION_768_572
IFIMG_RESOLUTION_384_286
IFIMG_RESOLUTION_192_143
640×480
320×240
160×120
未対応
未対応
未対応
未対応
未対応
未対応
768×572
384×286
192×143
画像処理結果識別子(OR 演算による設定)
識別子
内容
IFIMG_MEASUEMENT_HSIT
濃度分布
IFIMG_MEASUEMENT_PRO
射影
0h
80000000h
40000000h
8000000h
4000000h
2000000h
値
200h
400h
画像拡大識別子(OR 演算による設定)
識別子
内容
IFIMG_DIGTALZOOM_2
縦横 2 倍のサイズで拡大
IFIMG_DIGTALZOOM_4
縦横 4 倍のサイズで拡大
値
100000h
200000h
画像データの種類(OR 演算による設定)
識別子
内容
IFIMG_NTSC_RESOLUTION
NTSC
IFIMG_CL_RESOLUTION
CameraLink
値
0h
10000h
© 2003, 2016 Interface Corporation. All rights reserved.
497
GPC-5520 Help for Windows
dwXCoordinates
読み込み開始 X 座標
dwYCoordinates
読み込み開始 Y 座標
dwXLength
X 方向長さ
dwYLength
X 方向長さ
© 2003, 2016 Interface Corporation. All rights reserved.
498
GPC-5520 Help for Windows
● IMGPTNCONFIG 構造体
ImgSetComparisonConfig関数で指定する比較設定構造体です。
●C 言語
typedef struct {
HANDLE
hSDRAMhandle;
DWORD
dwAutoRevision;
DWORD
dwXCoordinates;
DWORD
dwYCoordinates;
DWOWD
dwPercentage;
DWORD
dwTriggerMode;
} IMGPTNCONFIG, *PIMGPTNCONFIG;
●Visual C# .NET(x86、x64 共用)
[StructLayout(LayoutKind.Sequential)]
public struct IMGPTNCONFIG {
public uint
hSDRAMhandle;
public uint
dwAutoRevision;
public uint
dwXCoordinates;
public uint
dwYCoordinates;
public uint
dwPercentage;
public uint
dwTriggerMode;
}
●Visual C# .NET(x86 専用)
[StructLayout(LayoutKind.Sequential)]
public struct IMGPTNCONFIG {
public uint
hSDRAMhandle;
public uint
dwAutoRevision;
public uint
dwXCoordinates;
public uint
dwYCoordinates;
public uint
dwPercentage;
public uint
dwTriggerMode;
}
●Visual Basic .NET(x86、x64 共用)
<StructLayout(LayoutKind.Sequential)> _
Structure IMGPTNCONFIG
Dim
hSDRAMhandle
As Integer
Dim
dwAutoRevision
As Integer
Dim
dwXCoordinates
As Integer
Dim
dwYCoordinates
As Integer
Dim
dwPercentage
As Integer
Dim
dwTriggerMode
As Integer
End Structure
© 2003, 2016 Interface Corporation. All rights reserved.
499
GPC-5520 Help for Windows
●Visual Basic .NET(x86 専用)
<StructLayout(LayoutKind.Sequential)> _
Structure IMGPTNCONFIG
Dim
hSDRAMhandle
As Integer
Dim
dwAutoRevision
As Integer
Dim
dwXCoordinates
As Integer
Dim
dwYCoordinates
As Integer
Dim
dwPercentage
As Integer
Dim
dwTriggerMode
As Integer
End Structure
●Delphi 8
type
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
IMGPTNCONFIG = record
hSDRAMhandle:
Integer;
dwAutoRevision:
Cardinal;
dwXCoordinates:
Cardinal;
dwYCoordinates:
Cardinal;
dwPercentage:
Cardinal;
dwTriggerMode:
Cardinal;
end;
メンバ
hSDRAMhandle
dwAutoRevision
説明
ImgAllocateSDRAM関数で取得したハンドルを指定します。
比較エリア自動補正機能
識別子
内容
IFIMG_AUTO_ENABLE 自動補正有効
IFIMG_AUTO_DISABLE 自動補正無効(デフォルト)
dwXCoordinates
比較開始 X 座標
デフォルト
0
dwYCoordinates
比較開始 Y 座標
デフォルト
0
dwPercentage
比較データとの一致率(0~100%) デフォルト 60%
dwTriggerMode
パターン一致トリガの発生条件
識別子
内容
IFIMG_PTNMATCH_NORMAL
比較データとの一致率が
dwPercentage 以上の場合
トリガ発生 (デフォル
ト)
IFIMG_PTNMATCH_REVERSAL 比較データとの一致率が
dwPercentage より下の場
合トリガ発生
IFIMG_PTNMATCH_NONE
トリガ発生なし
© 2003, 2016 Interface Corporation. All rights reserved.
500
値
1h
2h
値
1h
2h
3h
GPC-5520 Help for Windows
● IMGMEASURE 構造体
ImgGetMeasurementValueEx関数で使用する画像処理結果取得用構造体です。
●C 言語
typedef struct {
DWORD
dwArea;
DWORD
dwXcoordinates;
DWORD
dwYcoordinates;
DWORD
dwFeretX1;
DWORD
dwFeretX2;
DWORD
dwFeretY1;
DWORD
dwFeretY2;
DWORD
dwFeretH;
DWORD
dwFeretV;
float
dAngle;
} IMGMEASURE, *PIMGMEASURE;
●Visual C# .NET
[StructLayout(LayoutKind.Sequential)]
public struct IMGMEASURE {
public uint
dwArea;
public uint
dwXcoordinates;
public uint
dwYcoordinates;
public uint
dwFeretX1;
public uint
dwFeretX2;
public uint
dwFeretY1;
public uint
dwFeretY2;
public uint
dwFeretH;
public uint
dwFeretV;
public doubule
dAngle;
}
●Visual Basic .NET
<StructLayout(LayoutKind.Sequential)> _
Structure IMGMEASURE
Dim
dwArea
As Integer
Dim
dwXcoordinates
As Integer
Dim
dwYcoordinates
As Integer
Dim
dwFeretX1
As Integer
Dim
dwFeretX2
As Integer
Dim
dwFeretY1
As Integer
Dim
dwFeretY2
As Integer
Dim
dwFeretH
As Integer
Dim
dwFeretV
As Integer
Dim
dAngle
As Doubule
End Structure
© 2003, 2016 Interface Corporation. All rights reserved.
501
GPC-5520 Help for Windows
●Delphi 8
type
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
IMGMEASURE = record
dwArea:
Cardinal;
dwXcoorinates:
Cardinal;
dwYcoordinates:
Cardinal;
dwFeretX1:
Cardinal;
dwFeretX2:
Cardinal;
dwFeretY1:
Cardinal;
dwFeretY2:
Cardinal;
dwFeretH:
Cardinal;
dwFeretV:
Cardinal;
dAngle:
Double;
end;
メンバ
dwArea
説明
面積値 (0~307200)
dwXcoordinates
重心 X 座標(0~639)
dwYcoordinates
重心 Y 座標(0~479)
dwFeretX1
外接矩形 X 座標
始点(0~639)
dwFeretX2
外接矩形 X 座標
終点(0~639)
dwFeretY1
外接矩形 Y 座標
始点(0~479)
dwFeretY2
外接矩形 Y 座標
終点(0~479)
dwFeretH
水平方向フェレ径(0~640)
dwFeretV
垂直方向フェレ径(0~480)
dAngle
慣性等価楕円の傾き角(–π/2~+π/2)
© 2003, 2016 Interface Corporation. All rights reserved.
502
GPC-5520 Help for Windows
● IMGLUTINFO 構造体
ImgSetLUT関数で指定する階調変換テーブル構造体です。
●C 言語
typedef struct {
BYTE
rgbBlue[256];
BYTE
rgbGreen[256];
BYTE
rgbRed[256];
} IMGLUTINFO, *PIMGLUTINFO;
●Visual C# .NET
[StructLayout(LayoutKind.Sequential)]
public struct IMGLUTINFO{
[MarshalAs(UnmanagedType.ByValArray, SizeConst=256)]
public byte[] rgbBlue
[MarshalAs(UnmanagedType.ByValArray, SizeConst=256)]
public byte[] rgbGreen
[MarshalAs(UnmanagedType.ByValArray, SizeConst=256)]
public byte[] rgbRed
public void InitializeArray()
{
rgbBlue = new byte [256];
rgbGreen = new byte [256];
rgbRed = new byte [256];
}
public void SetBlue(uint ulIndex, byte bData)
{
rgbBlue[ulIndex] = bData;
}
public void SetGreen(uint ulIndex, byte bData)
{
rgbGreen[ulIndex] = bData;
}
public void SetRed(uint ulIndex, byte bData)
{
rgbRed[ulIndex] = bData;
}
public byte GetBlue(uint uIndex)
{
return rgbBlue[uIndex];
}
public byte GetGreen(uint uIndex)
{
return rgbGreen[uIndex];
}
public byte GetRed(uint uIndex)
{
return rgbRed[uIndex];
© 2003, 2016 Interface Corporation. All rights reserved.
503
GPC-5520 Help for Windows
}
}
●Visual Basic .NET
<StructLayout(LayoutKind.Sequential)> _
Structure IMGLUTINFO
<MarshalAs(UnmanagedType.ByValArray, SizeConst:=256)> _
Dim
rgbBlue()
As Byte
<MarshalAs(UnmanagedType.ByValArray, SizeConst:=256)> _
Dim
rgbGreen()
As Byte
<MarshalAs(UnmanagedType.ByValArray, SizeConst:=256)> _
Dim
rgbRed()
As Byte
Public Sub New(ByVal Dummy As Integer)
ReDim rgbBlue(255)
ReDim rgbGreen(255)
ReDim rgbRed(255)
End Sub
Public Sub SetBlue(ByVal Index As Integer, ByVal data As Byte)
rgbBlue(Index) = data
End Sub
Public Sub SetGreen(ByVal Index As Integer, ByVal data As Byte)
rgbGreen(Index) = data
End Sub
Public Sub SetRed(ByVal Index As Integer, ByVal data As Byte)
rgbRed(Index) = data
End Sub
Public Function GetBlue(ByVal Index As Integer) As Byte
GetBlue = rgbBlue(Index)
End Function
Public Function GetGreen(ByVal Index As integer) As Byte
GetGreen = rgbGreen(Index)
End Function
Public Function GetRed(ByVal Index As integer) As Byte
GetRed = rgbRed(Index)
End Function
End Structure
© 2003, 2016 Interface Corporation. All rights reserved.
504
GPC-5520 Help for Windows
●Delphi 8
type
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
IMGLUTINFO = record
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
rgbBlue:
array[0..255] of BYTE;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
rgGreen:
array[0..255] of BYTE;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
rgbRed:
array[0..255] of BYTE;
end;
メンバ
rgbBlue
説明
青成分の階調変換データ
rgbGreen
緑成分/輝度成分の階調変換データ
モノクロ 8bit の階調変換を行なう場合、rgbGreen のデータが適用
されます。
rgbRed
赤成分の階調変換データ
© 2003, 2016 Interface Corporation. All rights reserved.
505
GPC-5520 Help for Windows
● IMGFILTER 構造体
ImgSetFilter関数で指定するフィルタ係数構造体です。
●C 言語
typedef struct {
INT
a;
INT
b;
INT
c;
INT
d;
INT
e;
INT
f;
INT
g;
INT
h;
INT
I;
} IMGFILTER, *PIMGFILTER;
●Visual C# .NET
[StructLayout(LayoutKind.Sequential)]
public struct IMGFILTER{
public int
a;
public int
b;
public int
c;
public int
d;
public int
e;
public int
f;
public int
g;
public int
h;
public int
i;
}
●Visual Basic .NET
<StructLayout(LayoutKind.Sequential)> _
Structure IMGFILTER
Dim
a
As Integer
Dim
b
As Integer
Dim
c
As Integer
Dim
d
As Integer
Dim
e
As Integer
Dim
f
As Integer
Dim
g
As Integer
Dim
h
As Integer
Dim
i
As Integer
End Structure
© 2003, 2016 Interface Corporation. All rights reserved.
506
GPC-5520 Help for Windows
●Delphi 8
type
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
IMGFILTER = record
a:
Integer;
b:
Integer;
c:
Integer;
d:
Integer;
e:
Integer;
f:
Integer;
g:
Integer;
h:
Integer;
i:
Integer;
end;
メンバ
a~i
説明
各要素のフィルタ係数(-15~-15)
a
b
c
d
e
f
g
h
i
(フィルタ係数設定例)
0
1
0
1
1
1
-1
0
1
-1
-2
-1
-1
0
1
-1
-1
-1
1
-4
1
1
-8
1
-2
0
2
0
0
0
-1
0
1
0
0
0
0
1
0
1
1
1
-1
0
1
1
2
1
-1
0
1
1
1
1
ラプラシアン(4 近傍)
ラプラシアン(8 近傍)
Sobel(X 近傍)
Sobel(Y 近傍)
© 2003, 2016 Interface Corporation. All rights reserved.
507
Prewitt(X 近傍)
Prewitt(Y 近傍)
GPC-5520 Help for Windows
● IMGDILATE_ERODE 構造体
●C 言語
typedef struct {
DWORD
dwStepCnt;
DWORD
dwSelectD_E;
DWORD
dwNeighborhood;
}IMGDILATE_ERODE, *PIMGDILATE_ERODE;
●Visual C# .NET
[StructLayout(LayoutKind.Sequential)]
public struct IMGDILATE_ERODE{
public uint
dwStepCnt;
public uint
dwSelectD_E;
public uint
dwNeighborhood;
}
●Visual Basic .NET
<StructLayout(LayoutKind.Sequential)> _
Structure IMGDILATE_ERODE
Dim
dwStepCnt
As Integer
Dim
dwSelectD_E
As Integer
Dim
dwNeighborhood As Integer
End Structure
●Delphi 8
type
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
IMGDILATE_ERODE = record
dwStepCnt:
Cardinal;
dwSelectD_E:
Cardinal;
dwNeighborhood: Cardinal;
end;
メンバ
dwStepCnt
説明
有効段数を指定します。(1~8 段)
© 2003, 2016 Interface Corporation. All rights reserved.
508
GPC-5520 Help for Windows
dwSelectD_E
各段の処理を選択します。
ビット
内容
bit31~bit8 予約
bit7
8 段目の膨張・収縮選択
bit6
7 段目の膨張・収縮選択
bit5
6 段目の膨張・収縮選択
bit4
5 段目の膨張・収縮選択
bit3
4 段目の膨張・収縮選択
bit2
3 段目の膨張・収縮選択
bit1
2 段目の膨張・収縮選択
bit0
1 段目の膨張・収縮選択
0:収縮
1:膨張
dwNeighborhood
連結数を設定します。
ビット
内容
bit31~bit8 予約
bit7
8 段目の連結数の選択
bit6
7 段目の連結数の選択
bit5
6 段目の連結数の選択
bit4
5 段目の連結数の選択
bit3
4 段目の連結数の選択
bit2
3 段目の連結数の選択
bit1
2 段目の連結数の選択
bit0
1 段目の連結数の選択
0:4 連結
1:8 連結
© 2003, 2016 Interface Corporation. All rights reserved.
509
GPC-5520 Help for Windows
● IFIMGCLCAPCFG 構造体
ImgSetCLCaptureConfig 関数で使用する構造体です。
●C 言語
typedef struct {
DWORD
XStart;
DWORD
YStart;
DWORD
SyncMode;
DWORD
LVALInterVal;
}IFIMGCLCAPCFG *PIFIMGCLCAPCFG;
●Visual C# .NET
[StructLayout(LayoutKind.Sequential)]
public struct IFIMGCLCAPCFG
public uint
XStart;
public uint
YStart;
public uint
SyncMode;
public uint
LVALInterVal;
}
●Visual Basic .NET
<StructLayout(LayoutKind.Sequential)> _
Structure IFIMGCLCAPCFG
Dim
XStart
As Integer
Dim
YStart
As Integer
Dim
SyncMode
As Integer
Dim
LVALInterVal
As Integer
End Structure
●Delphi 8
type
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
IFIMGCLCAPCFG = record
XStart:
Cardinal;
YStart:
Cardinal;
SyncMode:
Cardinal;
LVALInterVal:
Cardinal;
}
メンバ
XStart
説明
取り込み開始位置のX座標
設定範囲:0 ~ XMAX
(XMAX)
使用カメラの水平解像度-640
※水平解像度が640より少ない解像度は利用できません。
© 2003, 2016 Interface Corporation. All rights reserved.
510
GPC-5520 Help for Windows
YStart
取り込み開始位置のY座標
設定範囲:0 ~ YMAX
(YMAX)
使用カメラの垂直解像度-480
※垂直解像度が 480 より少ない解像度は利用できません。
SyncMode
予約機能です。
0値固定です。
LVALInterVal
予約機能です。
0値固定です。
© 2003, 2016 Interface Corporation. All rights reserved.
511
GPC-5520 Help for Windows
● IFIMGCLENCCFG 構造体
ImgSetEncodeCntMode 関数で使用する構造体です。
●C 言語
typedef struct {
DWORD
Direction;
DWORD
Edge;
DWORD
PulseMode;
DWORD
StartMode;
DWORD
StartCounter;
DWORD
FilterBaceClock;
DWORD
FilterCount;
}IFIMGCLENCCFG, *PIFIMGCLENCCFG;
●Visual C# .NET
[StructLayout(LayoutKind.Sequential)]
public struct IFIMGCLENCCFG
public uint
Direction;
public uint
Edge;
public uint
PulseMode;
public uint
StartMode;
public uint
StartCounter;
public uint
FilterBaceClock;
public uint
FilterCount;
}
●Visual Basic .NET
<StructLayout(LayoutKind.Sequential)> _
Structure IFIMGCLENCCFG
Dim
Direction
As Integer
Dim
Edge
As Integer
Dim
PulseMode
As Integer
Dim
StartMode
As Integer
Dim
StartCounter
As Integer
Dim
FilterBaceClock
As Integer
Dim
FilterCount
As Integer
End Structure
© 2003, 2016 Interface Corporation. All rights reserved.
512
GPC-5520 Help for Windows
●Delphi 8
type
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
IFIMGCLENCCFG = record
Direction:
Cardinal;
Edge:
Cardinal;
PulseMode:
Cardinal;
StartMode:
Cardinal;
StartCounter:
Cardinal;
FilterBaceClock:
Cardinal;
FilterCount:
Cardinal;
}
メンバ
Direction
Edge
PulseMode
説明
カウンタ方向を指定します。
識別子
IFIMGCL_DIRECTION_NORMAL
IFIMGCL_DIRECTION_REVERSE
値
00000000h
00000001h
カウント逓倍を指定します。
識別子
IFIMGCL_SINGLE_EDGE
IFIMGCL_DOUBLE_EDGE
IFIMGCL_QUAD_EDGE
値
00000000h
00000001h
00000002h
カウント方式を指定します。
識別子
IFIMGCL_SINGLE_PHASE_MODE
値
00000000h
IFIMGCL_PHASE_SHIFTED_MODE
00000001h
識別子
IFIMGCL_CNT_START_NONE
IFIMGCL_CNT_START_DIN1
値
00000000h
00000001h
IFIMGCL_CNT_START_ZPHASE
00000002h
内容
通常方向
リバース方向
内容
1 逓倍
2 逓倍
4 逓倍
内容
差動入力方式エンコー
ダカウンタ
単相パルスカウントモ
ード
差動入力方式エンコー
ダカウンタ
位相差パルスカウント
モード
StartMode
© 2003, 2016 Interface Corporation. All rights reserved.
513
内容
通常カウントモード
汎用入力 DIN1 が Low→
High へ変化した時
エンコーダカウントモ
ードのみ有効
Z 相へ 1 パルス入力さ
れたらスタートする。
GPC-5520 Help for Windows
StartCounter
FilterBaceClock
FilterCount
エンコーダカウンタ開始後の初回カウンタの周期を設定します。
これを設定すると、エンコーダカウンタは、StartCounter のカウンタ
周期後に、ImgSetCounterCycle で指定した周期でカウントアップしま
す。
エンコーダカウンタのデジタルフィルタ設定
基準クロックを設定します。
識別子
値
内容
IFIMGCL_CLOCK_100_NANO
00000000h 基準クロックを 100ns
に設定する。
IFIMGCL_CLOCK_10_MICRO
00000001h 基準クロックを 10μs
に設定する。
エンコーダカウンタのデジタルフィルタ設定
カウント数を指定します。(1~32767)
© 2003, 2016 Interface Corporation. All rights reserved.
514
GPC-5520 Help for Windows
● IFIMGTIME 構造体
ImgSetImposeDateTime 関数で使用する構造体です。
●C 言語
typedef struct {
INT
sec;
INT
min;
INT
hour;
}IFIMGTIME *PIFIMGTIME;
●Visual C# .NET
[StructLayout(LayoutKind.Sequential)]
public struct IFIMGTIME
public int
sec;
public int
min;
public int
hour;
}
●Visual Basic .NET
<StructLayout(LayoutKind.Sequential)> _
Structure IFIMGTIME
Dim
sec
As Integer
Dim
min
As Integer
Dim
hour
As Integer
End Structure
メンバ
sec
説明
秒
min
分
hour
時
© 2003, 2016 Interface Corporation. All rights reserved.
515
GPC-5520 Help for Windows
● IFIMGDATE 構造体
ImgSetImposeDateTime 関数で使用する構造体です。
●C 言語
typedef struct {
INT
mday;
INT
mon;
INT
year;
}IFIMGDATE *PIFIMGDATE;
●Visual C# .NET
[StructLayout(LayoutKind.Sequential)]
public struct IFIMGDATE
public int
mday;
public int
mon;
public int
year;
}
●Visual Basic .NET
<StructLayout(IFIMGDATE.Sequential)> _
Structure IFIMGDATE
Dim
mday
As Integer
Dim
mon;
As Integer
Dim
year
As Integer
End Structure
メンバ
mday
説明
日
mon
月
year
年
© 2003, 2016 Interface Corporation. All rights reserved.
516
GPC-5520 Help for Windows
● IFIMGTIMEINFO 構造体
ImgSetImposeDateTimeInfo 関数で使用する構造体です。
●C 言語
typedef struct {
IFIMGTIME
Time
INT
Xcoordinates;
INT
Ycoordinates;
}IFIMGTIMEINFO *PIFIMGTIMEINFO;
●Visual C# .NET
[StructLayout(LayoutKind.Sequential)]
public struct IFIMGTIMEINFO
IFIMGTIME
Time;
public int
Xcoordinates;
public int
Ycoordinates;
}
●Visual Basic .NET
<StructLayout(IFIMGTIMEINFO.Sequential)> _
Structure IFIMGTIMEINFO
Dim
Time
As IFIMGTIME
Dim
Xcoordinates
As Integer
Dim
Ycoordinates
As Integer
End Structure
メンバ
Time
説明
時間を指定します。
Xcoordinates
表示位置の X 座標を指定します。
Ycoordinates
表示位置の Y 座標を指定します。
© 2003, 2016 Interface Corporation. All rights reserved.
517
GPC-5520 Help for Windows
● IFIMGDATEINFO 構造体
ImgSetImposeDateTimeInfo 関数で使用する構造体です。
●C 言語
typedef struct {
IFIMGDATE
Date
INT
Xcoordinates;
INT
Ycoordinates;
}IFIMGDATEINFO *PIFIMGDATEINFO;
●Visual C# .NET
[StructLayout(LayoutKind.Sequential)]
public struct IFIMGDATEINFO
IFIMGDATE
Date;
public int
Xcoordinates;
public int
Ycoordinates;
}
●Visual Basic .NET
<StructLayout(IFIMGTIMEINFO.Sequential)> _
Structure IFIMGDATEINFO
Dim
Date
As IFIMGDATE
Dim
Xcoordinates
As Integer
Dim
Ycoordinates
As Integer
End Structure
メンバ
Date
説明
日付を指定します。
Xcoordinates
表示位置の X 座標を指定します。
Ycoordinates
表示位置の Y 座標を指定します。
© 2003, 2016 Interface Corporation. All rights reserved.
518
GPC-5520 Help for Windows
4.5
戻り値一覧
エラー識別子
値
IFIMG_ERROR_SUCCESS
IFIMG_ERROR_NOT_DEVICE
0
C0000001h
(-1073741823)
IFIMG_ERROR_NOT_OPEN
C0000002h
(-1073741822)
IFIMG_ERROR_INVALID_DEVICE_HAND
LE
C0000003h
(-1073741821)
IFIMG_ERROR_ALREADY_OPEN
C0000004h
(-1073741820)
C0000009h
(-1073741815)
IFIMG_ERROR_NOT_SUPPORTED
IFIMG_ERROR_INVALID_PARAMETER
C00000010h
(-1073741808)
IFIMG_ERROR_NOT_ALLOCATE_MEMORY
C0000021h
(-1073741791)
C0001000h
(-1073737728)
IFIMG_ERROR_NOW_CAPTURING
IFIMG_ERROR_NOW_STOP
IFIMG_ERROR_NULL_POINTER
C0001001h
(-1073737727)
C0001002h
(-1073737726)
IFIMG_ERROR_WRITE_FAILED
C0001003h
(-1073737725)
IFIMG_ERROR_READ_FAILED
C0001004h
(-1073737724)
IFIMG_ERROR_NOBUFFER
C0001005h
(-1073737723)
IFIMG_ERROR_INVALID_OFFSET
C0001006h
(-1073737722)
IFIMG_ERROR_SDRAM_NOW_CAPTURING
C0001007h
(-1073737721)
IFIMG_ERROR_SDRAM_NOW_STOP
C0001008h
(-1073737720)
意味
対処方法
正常終了
ドライバを呼び出せま 指定したデバイスが見つかりません
せん。
でした。
指定したデバイス番号が存在するか
どうかを確認してください。
ドライバを OPEN できま デバイスのオープン時、何らかのエラ
せん。
ーが発生しました。
ドライバ内部のメモリ確保に失敗し
たなど。
デバイスハンドルが正 不正なデバイスハンドルで呼び出し
しくありません。
を行おうとしました。
OPEN 関数で返されたデバイスハンド
ルを使用してください。
既に OPEN されているデ 既に OPEN されているデバイスです。
バイスです。
サポートされていない 使用しているインタフェースモジュ
API 関数です。
ールではサポートされていない機能
です。
引数の値が正しくあり 設定可能範囲外または予想外のパラ
ません。
メータが渡されました。
正しい値を指定して下さい。
作業用のメモリの確保 メモリの空き容量を増やしてから実
に失敗しました。
行して下さい。
キャプチャ(DMA 転送) キャプチャ(DMA 転送)中の為、設定
中です。
できません。
一旦停止してから設定して下さい。
キャプチャ(DMA 転送) 停止中です。
NULL ポインタを指定し データ格納先が NULL ポインタとなっ
ました。
ています。
格納先のメモリを確保して下さい。
デコーダまたはエンコ ーダに対する書き込み
に失敗しました。
デコーダまたはエンコ ーダに対する読み込み
に失敗しました。
DMA 転送先バッファを設 ImgSetBuffer 関 数 ( ま た は
ImgSetBufferVB関数)で、バッファ領
定していません。
域を指定してください。
デコーダまたはエンコ ーダに対するオフセッ
トに誤りがあります。
キャプチャ(SDRAM 転送) SDRAM によるキャプチャ中に為、設定
中です。
ができません。
一旦停止してから設定してください。
キャプチャ(SDRAM 転送) 停止中です。
© 2003, 2016 Interface Corporation. All rights reserved.
519
GPC-5520 Help for Windows
IFIMG_ERROR_NOT_SET_COMPDATA
IFIMG_ERROR_SDRAM_NOTSET_CAPDATA
C0001009h
(-1073737719)
C000100ah
(-1073737718)
IFIMG_ERROR_NOT_COMPDATA
C000100bh
(-1073737717)
IFIMG_ERROR_INVALID_SDRAM_HANDLE
C000100ch
(-1073737716)
IFIMG_ERROR_SDRAM_NOT_CAPDATA
C000100dh
(-1073737715)
IFIMG_ERROR_SDRAM_NOMEMORY
C000100eh
(-1073737714)
IFIMG_ERROR_INVALID_FORMAT
C000100fh
(-1073737713)
IFIMG_ERROR_NOW_SDRAM_BM
C0001010h
(-1073737712)
C0001013h
(-1073737709)
IFIMG_ERROR_INVALID_FILEPARAMETER
IFIMG_ERROR_NOTSET_CAMFILE
IFIMG_ERROR_SERIAL_TIMEOUT
C0001014h
(-1073737708)
C0001015h
(-1073737707)
IFIMG_ERROR_SERIAL_FIFO_OVERRUN
C0001016h
(-1073737706)
IFIMG_ERROR_FAILED_CAPTURE
C0001017h
(-1073737705)
IFIMG_ERROR_FAILED_CAPSTOP
C0001018h
(-1073737704)
C000101Bh
(-1073737701)
IFIMG_ERROR_FAILED_DEVIOCTL
IFIMG_ERROR_OTHER_ERR
C000101Ch
(-1073737700)
IFIMG_ERROR_NOW_IMPOSEDATA_WRITE
C000101Dh
(-1073737699)
比較用画像データが書
き込まれていません。
SDRAM キャプチャ用の領
域がセットされてませ
ん。
指定した領域は比較用
画像データの領域では
ありません。
SDRAM ハンドルが正しく
ありません。
ImgWriteComparisonData 関数で比較
用画像データを書き込んでください。
ImgSetSDRAM 関数でキャプチャを行
う SDRAM 領域を指定してください。
指定した領域はキャプ
チャ用データではあり
ません。
確保可能な SDRAM 領域
が見つかりませんでし
た。
カラーフォーマットの
設定が不正です。
現在のカラーフォマッ
トの設定では、実行でき
ません。
SDRAM データの DMA 転送
中です。
カメラコンフィグファ
イルのパラメータが間
違っています。
カメラコンフィグファ
イを設定していません。
カメラとのシリアル通
信でタイムアウトが発
生した。
FIFO がオーバーランし
ています。
確保した領域が比較用データとして
確保していると考えられます。
-
渡したハンドルに対する SDRAM 領域
が存在しません。
必要のない SDRAM 領域を解放して、
SDRAM の空き領域を確保してくださ
い。
DMA 転送によるキャプチャと SDRAM へ
のキャプチャを行う場合、両方のカラ
ーフォーマットの設定を同じにする
必要があります。
(ImgSetBuffer,ImgSetSDRAM)
SDRAM データの DMA 転送中に実行する
ことはできません。
ファイル内に記載しているパラメー
タ値か、書式が不正です。テキスト形
式で開いて確認してください。
ImgSetCLCaptureConfig 関 数 で カ メ
ラファイルを設定してください。
カメラへの送信処理が停止していま
す。カメラからの受信処理が停止して
います。
FIFO がオーバーランしている為、受
信データを取りこぼしている可能性
があります。
キャプチャに敗しまし ドライバ内部でキャプチャ処理に失
た。
敗しています。再オープンするなどし
て、再度初期化してください。
キャプチャの停止に失 停止処理が完了していません。
敗しました。
デバイス I/O コントロ ドライバ処理が失敗しています。
ール処理に失敗しまし
た。
何かしらの原因で動作 にエラーが発生してい
まます。
スーパーインポーズ画 書き込みが完了まで待機してくださ
像書き込み中。
い。
© 2003, 2016 Interface Corporation. All rights reserved.
520
GPC-5520 Help for Windows
4.6
動作仕様
■ キャプチャ開始、停止
キャプチャ動作は、ImgStartCapture関数実行後、次フレームからのタイミングでキャプチャが開始
されます。(カメラからの同期信号のタイミングでキャプチャが開始されます。)
下図の場合、フレーム(-1)のデータは、キャプチャされず、フレーム①のデータから実際にキャプチ
ャされます。
ImgSetEventMask関数で設定する「フレーム転送完了割り込み」とは、図の青い矢印(↓)を表しま
す。割り込み発生する時間タイミングは約 33ms毎です。つまり、1 秒間に約 30 フレーム分のデータ
をキャプチャします。
ImgStopCapture関数にて、1 フレーム単位での停止を実行した場合、その時のフレーム転送が完了し
た時点で停止します。(図の場合、フレーム④の転送が完了した時点で停止します)
約 33ms
約 33ms
約 33ms
約 33ms
フレーム
フレーム
フレーム
フレーム
フレーム
(-1)
①
②
③
④
約 33ms
フレーム
フレーム
フレーム
(-1)
①
②
A
フレーム転送完了割り込み発生
ImgStartCaputure 関数 実行
約 33ms
ImgStopCaputure 関数実行
© 2003, 2016 Interface Corporation. All rights reserved.
521
ImgStartCaputure 関数
GPC-5520 Help for Windows
■ キャプチャデータの転送(バスマスタ)
画像入力インタフェースモジュールはユーザが指定したバッファ領域に対してバスマスタ転送方
式でキャプチャデータを直接転送します。
ImgStartCapture 関 数 に て フ レ ー ム 転 送 数 を 指 定 す る 事 が 可 能 で す 。 指 定 数 が 0 の 場 合 は 、
ImgStopCapture関数を実行するまで転送します。
ユーザが指定したバッファ領域のサイズが、フレーム転送数分のサイズより小さい場合、リングバッ
ファ形式によりバッファ領域の先頭から上書き転送されます。
※キャプチャ実行中における注意事項
ImgStartCapture関数を呼び出し、キャプチャ(バスマスタ転送)を実行している最
中は、絶対に指定バッファ領域を解放しないでください。
ImgStopCapture関数でキャプチャ停止を行い、ImgGetCaptureStatus関数で、キャプ
チャが停止いていることを確認した後、バッファ領域を解放してください。
■ キャプチャデータの転送(SDRAM)
画像入力インタフェースモジュールは、ImgAllocateSDRAM関数で確保し、ImgSetSDRAM関数にて指
定したSDRAM領域に対してキャプチャデータを転送します。
ImgStartCapture 関 数 に て フ レ ー ム 転 送 数 を 指 定 す る 事 が 可 能 で す 。 指 定 数 が 0 の 場 合 は 、
ImgStopCapture関数を実行するまで転送します。
ユーザが指定した SDRAM 領域のサイズが、フレーム転送数分のサイズより小さい場合、リングバッフ
ァ形式により SDRAM 領域の先頭から上書き転送されます。
© 2003, 2016 Interface Corporation. All rights reserved.
522
GPC-5520 Help for Windows
■ SDRAM 使用時における注意(PCI/CTP/CPZ-55x1,55x3 使用時)
PCI/CTP/CPZ-55x1,55x3 のキャプチャ操作にあたり、外部から入力したデータの流れは以下のよ
うになっています。
PCI I/F
入力チャンネル
A
カラーフォーマット
FIFO
2 値化処理
DMAC
D
B
SDRAM
C
重心・面積算出
※PCI/CTP/CPZ-55x1 には 2 値化処理は含まれません。
経路
A
B
C
D
内容
制御関数
入力データを DMA 転送によりメインメモリへ転送しま ImgSetBuffer
ImgStartCapture
す。
(DMA 転送によるキャプチャ)
入力データを SDRAM へ転送します。
ImgAllocateSDRAM
ImgSetSDRAM
(SDRAM へのキャプチャ)
ImgStartCapture
SDRAM 領域内のデータを取得します。
ImgReadCaptureData
SDRAM 領域内のデータを DMA 転送によりメインメモリへ ImgSetBuffer
転送します。
ImgBmCapture
(SDRAM データの DMA 転送)
※1 A,B は同時に制御可能。
※2 D は単独で実行する必要があります。A,B,C の何れとも同時に制御出来ません。
※3 B,C は同時に制御できません。
© 2003, 2016 Interface Corporation. All rights reserved.
523
PCI Bus
GPC-5520 Help for Windows
■ 画像データのフォーマットについて
ImgSetBuffer関数(または ImgSetBufferVB関数)にて設定したメモリ領域へ転送される画像データ
のフォーマットを説明します。
カラーフォーマットの設定により、データ形式が異なります。
デフォルト設定値は RGB24 bit です。
RGB32bit 形式で動作させた場合、バスマスタ転送中の PCI バス占有率が大きくなるため、動作が不
安定になる可能性がありますので、RGB24bit 形式を推奨します。
Format
Pixcel Data
bit23~bit16
bit15~bit8
※1
bit31~bit24
RGB32
予約
R
G
B
RGB24
B1
R0
G0
B0
G2
B2
R1
G1
R3
G3
B3
R2
GRAY8
Y3
Y2
Y1
Y0
RED8
R3
R2
R1
R0
GREEN8
G3
G2
G1
G0
BLUE8
B3
B2
B1
B0
2 値化
BIN3
BIN2
BIN1
BIN0
Format
RGB16
※2
bit31
~
bit27
R1
bit26
~
bit21
G1
Format
bit31
RGB15
※1
※2
※3
bit7~bit0
※3
0
bit30
~
bit26
R1
bit25
~
bit21
G1
Pixcel Data
bit20
bit15
~
~
bit16
bit11
B1
R0
Pixcel Data
bit20
bit15
~
bit16
B1
0
bit10
~
bit5
G0
bit14
~
bit10
R0
bit4
~
bit0
B0
bit9
~
bit5
G0
bit4
~
bit0
B0
R:赤成分データ G;緑成分データ B:青成分データ Y:輝度データ
R1/R0, G1/G0, B1/B0 は、RGB32 のデータに対して上位 5bit(bit7~bit3)のデータ
です。
R1/R0, G1/G0, B1/B0 は、RGB32 のデータに対して、R 成分と B 成分は上位 5bit
(bit7~bit3)のデータです。G 成分は上位 6bit(bit7~bit2)のデータです。
© 2003, 2016 Interface Corporation. All rights reserved.
524
GPC-5520 Help for Windows
■ 解像度について
解像度を指定するにあたり、キャプチャデータの構造が異なります。
NTSC 対応画像入力製品と PAL 対応画像入力製品では、取り扱い解像度が異なります。
●最大解像度
NTSC の最大解像度は 640×480 となります。
・水平ラインデータは、640pixel です。
・垂直ラインデータは、
①画像データの奇数フィールド(240 ライン)
②画像データの偶数フィールド(240 ライン)
の順番になります。
垂直ラインデータ
水平ラインデータ
ライン 1(奇)
1
2
648
639
640
ライン 3(奇)
ライン 5(奇)
…
…
ライン 476(偶)
ライン 478(偶)
ライン 480(偶)
PAL の最大解像度は 768×572 となります。
・水平ラインデータは、768pixel です。
・垂直ラインデータは、
①画像データの奇数フィールド(286 ライン)
②画像データの偶数フィールド(286 ライン)
の順番になります。
垂直ラインデータ
ライン 1(奇)
水平ラインデータ
1
2
766
767
768
ライン 3(奇)
ライン 5(奇)
…
…
ライン 568(偶)
ライン 570(偶)
ライン 572(偶)
例えば、NTSC 製品で「RGB32」(解像度:640×480)のデータは以下のようになっています。
© 2003, 2016 Interface Corporation. All rights reserved.
525
GPC-5520 Help for Windows
640 (pixel)
1
奇数フィールドデータ
240
241
480 (pixel)
偶数フィールドデータ
480
1 (pixel) = 4 byte
奇数フィールドデータと偶数フィールドデータを交互に配置することで、フレームデータとなります。
ライン
1
2
3
4
5
6
7
8
…
479
480
フィールド
奇数フィールドデータ
偶数フィールドデータ
奇数フィールドデータ
偶数フィールドデータ
奇数フィールドデータ
偶数フィールドデータ
奇数フィールドデータ
偶数フィールドデータ
…
奇数フィールドデータ
偶数フィールドデータ
バッファ内のデータ位置
1 番目
241 番目
2 番目
242 番目
3 番目
243 番目
4 番目
244 番目
…
240 番目
480 番目
© 2003, 2016 Interface Corporation. All rights reserved.
526
GPC-5520 Help for Windows
●1/2 解像度
NTSC の 1/2 解像度は 320×240 となります。
・水平ラインデータは、解像度 640×480 の 1 フレームデータを 1pixel おきに間引いたデータです。
・垂直ラインデータは、解像度 640×480 の 1 フレームデータを 1 ラインおきに間引いたデータです。
(奇数フィールドラインデータをメインメモリへ転送します。)
垂直ラインデータ
ライン 1
水平ラインデータ
1
3
635
637
639
ライン 3
ライン 5
…
…
ライン 475
ライン 477
ライン 479
PAL の 1/2 解像度は 384×286 となります。
・水平ラインデータは、解像度 768×572 の 1 フレームデータを 1pixel おきに間引いたデータです。
・垂直ラインデータは、解像度 768×572 の 1 フレームデータを 1 ラインおきに間引いたデータです。
(奇数フィールドラインデータをメインメモリへ転送します。)
垂直ラインデータ
ライン 1
水平ラインデータ
1
3
763
765
767
ライン 3
ライン 5
…
…
ライン 567
ライン 569
ライン 571
© 2003, 2016 Interface Corporation. All rights reserved.
527
GPC-5520 Help for Windows
●1/4 解像度
NTSC の 1/4 解像度は 160×120 となります。
・水平ラインデータは、解像度 320×240 の 1 フレームデータをさらに 1pixel おきに間引いたデータ
です。
・垂直ラインデータは、解像度 320×240 の 1 フレームデータをさらに 1 ラインおきに間引いたデー
タです。
垂直ラインデータ
ライン 1
水平ラインデータ
1
5
629
633
637
ライン 5
ライン 9
…
…
ライン 469
ライン 473
ライン 477
PAL の 1/2 解像度は 192×143 となります。
・水平ラインデータは、解像度 384×286 の 1 フレームデータをさらに 1pixel おきに間引いたデータ
です。
・垂直ラインデータは、解像度 384×286 の 1 フレームデータをさらに 1 ラインおきに間引いたデー
タです。
垂直ラインデータ
ライン 1
水平ラインデータ
1
757
5
761
ライン 5
ライン 9
…
…
ライン 571
ライン 575
ライン 579
© 2003, 2016 Interface Corporation. All rights reserved.
528
765
GPC-5520 Help for Windows
■ フレームサイズについて
1 フレームのサイズは、カラーフォーマット、解像度の設定によって以下のようになっています。
フレームサイズ(byte) = 1 ラインの Pixel 数 × 垂直ライン数 × 1pixel のバイト数
NTSC 製品
Format
RGB32
RGB24
RGB15
GRAY8
RED8
GREEN8
BLUE8
2 値化
640×480
640×480×4 = 1228800
640×480×3 = 921600
640×480×2 = 614400
640×480×1 = 307200
640×480×1 = 307200
640×480×1 = 307200
640×480×1 = 307200
640×480×1 = 307200
320×240
320×240×4 = 307200
320×240×3 = 230400
320×240×2 = 153600
320×240×1 = 76800
320×240×1 = 76800
320×240×1 = 76800
320×240×1 = 76800
320×240×1 = 76800
160×120
160×120×4 = 76800
160×120×3 = 57600
160×120×2 = 38400
160×120×1 = 19200
160×120×1 = 19200
160×120×1 = 19200
160×120×1 = 19200
160×120×1 = 19200
PAL 製品
Format
RGB32
RGB24
RGB15
GRAY8
RED8
GREEN8
BLUE8
768×572
768×572×4 = 1757184
768×572×3 = 1317888
768×572×2 = 878592
768×572×1 = 439296
768×572×1 = 439296
768×572×1 = 439296
768×572×1 = 439296
384×286
384×286×4 = 439296
384×286×3 = 329472
384×286×2 = 219648
384×286×1 = 109824
384×286×1 = 109824
384×286×1 = 109824
384×286×1 = 109824
192×143
192×143×4 = 109824
192×143×3 = 82368
192×143×2 = 54912
192×143×1 = 27456
192×143×1 = 27456
192×143×1 = 27456
192×143×1 = 27456
■ 確保するバッファのサイズの制限について
ImgSetBuffer関数(または ImgSetBufferVB関数)で指定するバッファサイズには制限があります。
(x86 環境の場合)
最大 63.97MB まで。
(x64 環境の場合)
最大 256MB まで。
※ Windows Xp/Server2003 の 64bitOS の場合は約 32MB まで。
© 2003, 2016 Interface Corporation. All rights reserved.
529
GPC-5520 Help for Windows
■ 2 値画像処理とキャプチャ処理
二値画像処理機能対応の画像入力インタフェースモジュールの操作にあたり、二値画像処理とキャ
プチャ処理の方法を説明します。
① PCI/CTP/CPZ-55x2、CBI/CSI/PEX/LPC-530215 の場合
ImgSetBinarizationConfig 関数
2 値化演算処理
面積値
重心値
ImgSetEventMask 関数
トリガ割り込みの設定
色成分の選択
NTSC
信号入力
2 値化処理
面積トリガ割り込み
R/G/B/Y
Video
Decoder
ImgGetMeasurementValue 関数
ImgSetTriggerConfig 関数
重心トリガ割り込み
RGB24 カラー
面積 AND 重心トリガ割り込み
CN
ImgGetCaotureStatus 関数
トリガステータスの取得
2 値化データ
面積トリガステータス
重心トリガステータス
面積 AND 重心トリガステータス
データフォーマット選択
DMA 転送
制御
画像データ
RGB カラー
カラー画像
RGB32/24/16/15bit
GRAY8bit(Y)
R 8bit
G 8bit
B 8bit
キャプチャデータ
格納バッファ領域
ImgSetBuffer 関数
格納バッファ領域の指定
2 値画像
2 値化データ 8bit
② PCI/CTP/CPZ-55x3 の場合
ImgSetBinarizationConfig 関数
2 値化演算処理
面積値
重心値
ImgSetEventMask 関数
トリガ割り込みの設定
色成分の選択
NTSC
信号入力
2 値化処理
面積トリガ割り込み
R/G/B/Y
Video
Decoder
ImgGetMeasurementValue 関数
ImgSetTriggerConfig 関数
重心トリガ割り込み
RGB24 カラー
面積 AND 重心トリガ割り込み
CN
トリガステータスの取得
2 値化データ
ImgGetCaotureStatus 関数
面積トリガステータス
重心トリガステータス
面積 AND 重心トリガステータス
データフォーマット選択
DMA 転送
制御
画像データ
RGB カラー
カラー画像
RGB32/24/16/15bit
GRAY8bit(Y)
R 8bit
G 8bit
B 8bit
2 値画像
2 値化データ 8bit
格納バッファ領域
ImgSetBuffer 関数
格納バッファ領域の指定
ImgAllocateSDRAM 関数
SDRAM 転送
制御
ImgSetSDRAM 関数
SDRAM 領域の指定
③ PCI/CTP/CPZ-55x4 の場合
© 2003, 2016 Interface Corporation. All rights reserved.
530
キャプチャデータ
キャプチャデータ
SDRAM 領域
GPC-5520 Help for Windows
ImgSetBinarizationConfig 関数
2 値化演算処理
面積値
フェレ径
重心値
慣性等価楕円の傾き角
ImgSetEventMask 関数
トリガ割り込みの設定
色成分の選択
NTSC
信号入力
2 値化処理
面積トリガ割り込み
R/G/B/Y
Video
Decoder
ImgGetMeasurementValue 関数
ImgSetTriggerConfig 関数
重心トリガ割り込み
RGB24 カラー
面積 AND 重心トリガ割り込み
CN
2 値化データ
ImgGetCaotureStatus 関数
トリガステータスの取得
面積トリガステータス
重心トリガステータス
面積 AND 重心トリガステータス
データフォーマット選択
DMA 転送
制御
画像データ
RGB カラー
カラー画像
RGB32/24/16/15bit
GRAY8bit(Y)
R 8bit
G 8bit
B 8bit
キャプチャデータ
格納バッファ領域
ImgSetBuffer 関数
格納バッファ領域の指定
2 値画像
2 値化データ 8bit
画像処理データ
濃度分布データ
射影データ
【バスマスタによるキャプチャの設定】
キャプチャ可能なデータは、RGB/GRAY データ、2 値化処理データのどちらか一方です。
ImgSetBuffer関数(または ImgSetBufferVB関数)で、転送先バッファを設定します。
また、2 値化処理データをキャプチャする場合、ImgSetBinarizationConfig関数で設定した色成分で
処理したデータをキャプチャします。
【SDRAM によるキャプチャの設定】
キャプチャ可能なデータは、RGB/GRAY データ、2 値化処理データのどちらか一方です。
ImgAllocateSDRAM関数でSDRAM領域を確保して、ImgSetSDRAM関数でキャプチャしたい領域を指定しま
す。
また、2 値化処理データをキャプチャする場合、ImgSetBinarizationConfig関数で設定した色成分で
処理したデータをキャプチャします。
※バスマスタ、SDRAM を同時にキャプチャする際は必ず、同じキャプチャモードを選択してください。
© 2003, 2016 Interface Corporation. All rights reserved.
531
GPC-5520 Help for Windows
【2 値化処理の設定】
しきい値、2 値化対象色成分の選択などの 2 値化処理の設定は ImgSetBinarizationConfig関数で実
行します。
2 値化は、8bit のデータに対し、しきい値を設定して行います。
しきい値には、上限値と下限値の2つを設定します。
しきい値 A
2 値化結果は、上限値と下限値の間が「白(データ FFh)」、それ以
外が「黒(データ 00h)」となります。
( IMGBINCONFIG 構 造 体 の メ ン バ 変 数 dwBinarizationMode に
IFIMG_BINMOED_REVERSAL を指定する事により、白黒の反転を行う
ことができます。)
しきい値 B
上限閾値を A 、下限閾値を B に設定した場合
しきい値(上限)
しきい値
255
上限 A
黒(データ 00h)
しきい値(下限)
白(データ FFh)
下限 B
黒(データ 00h)
2値化結果
0
通常しきい値を 1 つだけ使用するときは、上限値を「255」にして下限値のみを調整します。
上限閾値を 255, 下限閾値を B とした場合
上限閾値を 255、下限閾値を A とした場合
しきい値
しきい値
255
255
下限 A
B
白(データ FFh)
A
白(データ FFh)
下限 B
黒(データ 00h)
黒(データ 00h)
0
0
本製品は 2 値化処理した画像データから、面積値と重心値を求めています。
© 2003, 2016 Interface Corporation. All rights reserved.
532
GPC-5520 Help for Windows
【測定範囲の指定】
面積値、重心値は、カメラなどの機器より取り込んだフレームデータに対して 2 値化処理を行い。
処理データに対して、測定します。
ImgSetMeasurementRange関数で、フレーム内の測定範囲を指定します。
(0,0)
dwXLength
↓dwStartingPointX
dwStartingPointY→
dwYLength
対象物体
測定エリア
(639,479)
【2 値画像処理結果の取得】
ImgGetMeasurementValue関数、ImgGetMeasurementValueEx関数で、測定対象物の 2 値画像処理結果を
取得します。
フレーム
フレーム
n-2
n-1
フレーム
n
キャプチャ中のフレーム
ImgGetMeasurementValue 実行
フレーム(n-1)に対するする 2 値画像処理結果を取得します
また、ImgStartCapture関数で、実際にキャプチャを実行してない場合でも、映像入力機器からのフ
レームデータに対する面積値、重心値を取得することが可能です。
© 2003, 2016 Interface Corporation. All rights reserved.
533
GPC-5520 Help for Windows
【トリガの設定】
ImgSetTriggerConfig関数で、トリガ発生の有効/無効の設定と発生条件の設定を行います。無効に設
定すると、トリガは発生しません。
トリガ発生の有無は ImgGetCaptureStatus関数,または ImgGetCaptureStatusEx関数でトリガ状態の
取得、またはトリガ発生による割り込みイベントで確認することができます。
【トリガ発生割り込み】
トリガ発生による割り込み通知の有効/無効は ImgSetEventMask関数で設定します。
割り込み通知が無効な状態でも、ImgSetTriggerConfig関数でトリガが有効に設定している場合はト
リガ自身は動作しています。この場合、ImgGetCaptureStatus関数でトリガ発生の有無を確認するこ
とが可能です。
【トリガ発生タイミング】
トリガ発生の有無は ImgGetCaptureStatus関数,または ImgGetCaptureStatusEx関数で取得する
IMGCAPSTATUS構造体またはIMGCAPSTATUSEX構造体のメンバ変数dwTriggerで確認します。
この dwTrigger の更新のタイミングは 1 フレーム転送完了割り込みマスクとトリガ発生割り込みマス
ク状態の有無により、異なります。
トリガ発生
割り込み
マスク
アンマスク
1 フレーム転送完了割り込み
マスク
アンマスク
タイミング①参照
タイミング②参照
タイミング③参照
(タイミング①)
ImgGetCaptureStatus関数,または ImgGetCaptureStatusEx関数が実行されるまで、dwTrigerの状態は
保持されたままです。
約 33ms
約 33ms
約 33ms
約 33ms
トリガ
dwTrogger 内のフラグ
ImgGetCaptureStatus 関数(ImgGetCaptureStatusEX 関数)を実
行された場合フラグがクリアされます。
何時の状態のトリガ状態なのか、知ることが出来ない可能性があり
ます。
(タイミング②)
© 2003, 2016 Interface Corporation. All rights reserved.
534
約 33ms
GPC-5520 Help for Windows
トリガ発生した同じタイミングで割り込みイベントが通知されます。
ただし、ImgGetCaptureStatus関数,または ImgGetCaptureStatusEx関数が実行されるまで、dwTriger
の状態はそのまま保持されたままです。
約 33ms
約 33ms
約 33ms
約 33ms
約 33ms
トリガ
dwTrogger 内のフラグ
トリガ発生割り込みイベントは
ImgGetCaptureStatus 関数(ImgGetCaptureStatusEX 関数)
トリガ発生時と同じタイミング
で dwTrigger を読み出した場合、フラグはクリアされます。
で発生します。
(タイミング③)
1 フレーム転送完了割り込みと同じタイミングで、トリガ発生イベントが通知されます。
約 33ms
約 33ms
約 33ms
約 33ms
約 33ms
トリガ
dwTrogger 内のフラグ
トリガ発生割り込みイベントは
1 フレーム転送完了の割り込みタイ
ImgGetCaptureStatus 関数
1 フレーム転送完了割り込みと
ミングで dwTrigger 内のフラグも更
(ImgGetCaptureStatusEX 関数)で
同じタイミングで発生します。
新します。
dwTrigger を読み出した場合、フラ
グはクリアされます。
■ 2 値画像処理機能の説明
① 面積値
測定エリア内の有効画素数をカウントすることで、注目する対象物体の面積 S を求めます。
面積 S の最大値は、307,200(=640×480)です。
© 2003, 2016 Interface Corporation. All rights reserved.
535
GPC-5520 Help for Windows
X
面積 S
Y
測定エリア
②
重心値
測定エリア内の有効画素の各座標値を順次加算し(Σx,Σy)、それを面積 S で除算すると、重心
座標(XG,YG)が求められます。
X
重心座標(Xg,Yg)
Y
測定エリア
③
フェレ径
測定エリア内の対象物体を水平線と垂直線で囲んだときの最小長方形を外接長方形といい、外接長
方形の水平辺および垂直辺の長さをフェレ径といいます。
最小矩形の最小 X 座標(XMIN)、最大 X 座標(XMAX)、最小 Y 座標(YMIN)、最大 Y 座標(YMAX)と、水平
方向の長さ(FeretH)と垂直方向の長さ(FeretV)を求めます。
外接長方形の辺は対象物体上にあります。
XMIN
XMAX
X
FeretH
YMIN
FeretV
YMAX
Y
測定エリア
④
慣性等価楕円の傾き角
測定エリア内における対象物体の慣性等価楕円の長軸とX軸が交わる角度をθとします。
本ドライバソフトウェアはθを-π/2~π/2 の範囲で出力します。
θは原点が左上の画像座標系による傾きです。時計回りは正の向きとなります。
© 2003, 2016 Interface Corporation. All rights reserved.
536
GPC-5520 Help for Windows
傾き角θ
X
θ
慣性等価楕円
長軸
Y
測定エリア
⑤
濃度分布
測定エリア内での各濃度値の画素数を求めます。
指定した色成分に対する濃度値 0~255 の各画素数を取得します。
指定できる色成分は R 成分、G 成分、B 成分、輝度成分です。
画素数
0
255
⑥
射影
測定エリア内の対象物体の座標値を X 座標および Y 座標ごとに画素数をカウントしたものです。
測定エリア以外の座標値の画素数は全て 0 となります。
0
X
測定エリア
479
Y
0
639
© 2003, 2016 Interface Corporation. All rights reserved.
537
GPC-5520 Help for Windows
■ 画像処理データの取得方法 (CTP/CPZ/PCI-5524,5525,5534,5535 使用時)
CTP/CPZ/PCI-5524,5525,5534,5535 での画像処理結果の取得方法は以下のようになります。
画像処理
取得方法
濃度分布
バスマスタ転送方式による指定バッファへの直接転送
射影
バスマスタ転送方式による指定バッファへの直接転送
面積
ImgGetMeasurementValueEx 関数で取得
重心
ImgGetMeasurementValueEx 関数で取得
フェレ径
ImgGetMeasurementValueEx 関数で取得
慣性等価楕円の傾き角 ImgGetMeasurementValueEx 関数で取得
濃度分布データと射影データは、ImgSetBuffer 関数で指定したバッファ領域に対してバスマスタ
転送によって取得します。キャプチャ処理と同様の制御です。
バスマスタ転送後のデータ配置を以下に示します。
(濃度分布のデータ配置)
サイズ
Data
bit31~bit24
1024byte
bit23~bit16
bit7~bit0
1 フレーム目 濃度値 0 の画素数
:
:
1 フレーム目 濃度値 255 の画素数
:
:
未使用領域
:
:
1024byte
bit15~bit8
N フレーム目 濃度値 0 の画素数
:
:
N フレーム目 濃度値 255 の画素数
未使用領域
(射影のデータ配置)
サイズ
Data
bit31~bit24
1 フレーム目
1 フレーム目
2560byte
1 フレーム目
bit23~bit16
bit15~bit8
Y 座標 0 の画素数
Y 座標 1 の画素数
:
Y 座標 479 の画素数
1 フレーム目
1 フレーム目
1 フレーム目
1 フレーム目
未使用領域(無効データ)
1 フレーム目
:
:
X 座標 0 の画素数
X 座標 1 の画素数
:
X 座標 479 の画素数
X 座標 480 の画素数
:
X 座標 640 の画素数
:
:
N フレーム目
N フレーム目
2560byte
bit7~bit0
N フレーム目
Y 座標 0 の画素数
Y 座標 1 の画素数
:
Y 座標 479 の画素数
N フレーム目
N フレーム目
N フレーム目
N フレーム目
未使用領域(無効データ)
N フレーム目
X 座標 0 の画素数
X 座標 1 の画素数
:
X 座標 479 の画素数
X 座標 480 の画素数
:
X 座標 640 の画素数
※測定エリア外の座標の射影データは 0 データとなります。
キャプチャ処理と併用して取得する場合、濃度分布と射影データは画像データの後部に配置されます。
© 2003, 2016 Interface Corporation. All rights reserved.
538
GPC-5520 Help for Windows
Data
bit31~bit24
bit23~bit16
bit15~bit8
bit7~bit0
1 フレーム目の画像データ
1 フレーム目:濃度値 0 の画素数
:
未使用領域
1 フレーム目
1 フレーム目
1 フレーム目
Y 座標 0 の画素数
Y 座標 1 の画素数
:
Y 座標 479 の画素数
未使用領域(無効データ)
1 フレーム目:濃度値 255 の画素数
1 フレーム目 X 座標 0 の画素数
1 フレーム目 X 座標 1 の画素数
:
1 フレーム目 X 座標 479 の画素数
1 フレーム目 X 座標 480 の画素数
:
1 フレーム目 X 座標 640 の画素数
:
:
N フレーム目の画像データ
N フレーム目 濃度値 0 の画素数
:
未使用領域
N フレーム目
N フレーム目
N フレーム目
Y 座標 0 の画素数
Y 座標 1 の画素数
:
Y 座標 479 の画素数
未使用領域(無効データ)
N フレーム目 濃度値 255 の画素数
N フレーム目 X 座標 0 の画素数
N フレーム目 X 座標 1 の画素数
:
N フレーム目 X 座標 479 の画素数
N フレーム目 X 座標 480 の画素数
:
N フレーム目 X 座標 640 の画素数
© 2003, 2016 Interface Corporation. All rights reserved.
539
GPC-5520 Help for Windows
■ 画像変換機能の説明(CTP/CPZ/PCI-5525,5535)
PCI/CPZ-55x5 の画像処理機能のブロック図と各画像処理の処理内容を説明します。
ImgSetLUT 関数
データフォーマット選択
NTSC
信号入力
指定バッファ領域
画像データ
Video
Decoder
RGB24 カラー
階調変換
RGB24 カラー
CN
カラー画像
RGB32/24/16/15bit
GRAY8bit(Y)
R 8bit/ G 8bit/ B 8bit
2 値画像
2 値化データ 8bit
フィルタデータ
ImgSetBuffer 関数
フィルタデータ 8bit
画像処理データ
濃度分布データ
射影データ
指定バッファ領域と
カラーフォーマットの指定
2 値化データ
2 値化演算処理
フィルタ処理
色成分の選択
2 値化処理
膨張・収縮
R/G/B/Y
面積値
フェレ径
重心値
慣性等価楕円の傾き角
トリガ割り込みの設定
面積トリガ割り込み
ImgSetFilter 関数
ImgSetColorgredient 関数
ImgGetMeasurementValue 関数
ImgSetEventMask 関数
ImgSetTriggerConfig 関数
重心トリガ割り込み
ImgSetDil_Er 関数
面積 AND 重心トリガ割り込み
トリガステータスの取得
ImgSetBinarizationConfig 関数
ImgGetCaotureStatus 関数
面積トリガステータス
重心トリガステータス
面積 AND 重心トリガステータス
カメラから得られたRGB24bitカラー(もしくはモノクロ 8bit)の画像データは、ImgSetLUT関数で設定
した階調変換テーブルデータを元に階調変換されます。
その後、ImgSetColorIngredient関数で指定した色成分の画像データは、フィルタ処理、2 値化、膨
張・収縮処理の順番で画像処理されます。
フ ィ ル タ 処理 は ImgSetFilter関 数で 設 定 し たフ ィ ル タ 係数 で 処 理 しま す 。 膨 張・ 収 縮 処 理は
ImgSetDil_Er関数で設定した条件で処理します。
変換処理後の画像を元に、面積値、重心値、フェレ径、慣性等価楕円の傾き角、射影の算出を行ない
ます。
階調変換、フィルタ、膨張・収縮処理の有効と無効の選択は ImgSetConversionConfig関数で行ないま
す。
変換処理後の画像をキャプチャする場合、ImgSetBuffer関数(ImgSetBufferVB関数)でキャプチャした
い画像を選択する事ができます。
階調変換画像をキャプチャする場合は、通常のカラーモード(もしくはモノクロ)を指定します。
フィルタ処理後の画像をキャプチャしたい場合は、IFIMG_COLOR_FIL8 を指定します。
膨張・収縮処理後の画像をキャプチャしたい場合は、2 値画像モードを指定します。
© 2003, 2016 Interface Corporation. All rights reserved.
540
GPC-5520 Help for Windows
本製品は、ImgSetConversionConfig関数で階調変換、フィルタ、膨張・収縮処理を組み合わせて、画
像をキャプチャしたり画像処理する事ができますが、以下の条件に限られます。
ImgSetConversinConfig 関数の
有効設定
階調変換 フィルタ 膨張・収縮
○
○
○
○
○
○
○
○
○
○
○
○
キャプチャ出来る画像
RGB 全般
○
○
×
×
×
×
×
×
GRAY8
○
○
×
×
×
×
×
×
2値
○
○
×
○
○
○
○
○
フィルタ
×
×
○
×
×
○
×
×
2 値画像処理
※
濃度分布
○
○
○
○
○
○
○
○
○
○※
○
×
×
○※
×
×
※ 2 値画像をキャプチャする場合は動作保証外です。フィルタ画像をキャプチャする場合は、フィル
タ画像に対する濃度分布処理となります。
フィルタ処理または膨張・収縮処理を有効にした場合、処理時間は約 2 フレーム分時間を費やします。
キャプチャされる画像はカメラから取り込んだタイミングから 2 フレーム分遅れて転送される事に
なります。
© 2003, 2016 Interface Corporation. All rights reserved.
541
GPC-5520 Help for Windows
画像変換機能の詳細に関して以下に説明します。
① 階調変換
IMGLUTINFO 構造体にて R 成分、G 成分、B 成分の階調変換テーブルを設定します。
各色のテーブル(LUT)には 256 階調の 8bit データを格納します。
GRAY8bit 画像の階調変換を行なう場合、G 成分の LUT を使用してください。
インタフェースモジュールは R,G,B の各 8bit、またはモノクロ 8bit の画像データの値に相当する
テーブル番地に格納している値を参照することで階調変換を行ないます。
R 成分
G 成分
B 成分
:
:
:
:
0x10
:
0xFF
:
:
:
:
:
0xDA
:
:
:
:
:
:
:
0x20
:
:
:
元画素データ
R
G
B
0x10
0x25
0xDF
0x25
:
0xDF
:
変換後画素データ
R
G
B
0xDA
0xFF
0x20
② 3×3 空間フィルタ
注目する画素とその周囲 8 画素の 3×3 領域に対して、IMGFILTER 構造体で定義したフィルタ係数
を掛け合わせ、その総和を注目画素のフィルタ処理結果とします。
フィルタ係数は、-15~15 までの任意の整数を割り当てることが可能です。
フィルタ処理結果が 0 以下のときは 0,255 以上のときは 255 とします。
・
0
1
0
1
-4
1
0
1
0
(0×0xC3) + (1×0xCF) + (0×0xC9) + (1×0xC4)+ (-4×0xFF)
+ (1×0xCE) + (0×0xC0) + (1×0xC4) + (0×0xFF) = 0xD7
3×3 空間フィルタ係数
・
・
・
・
・
・
・
・
・
・
・
0xC3
0xCF
0xC9
・
・
・
・
・
・
・
0xC4
0xFF
0xCE
・
・
・
0xD7
・
・
・
0xC0
0xC4
0xFF
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
元画素データ
フィルタ処理後データ
© 2003, 2016 Interface Corporation. All rights reserved.
542
GPC-5520 Help for Windows
画像の四隅または辺の画素に対するフィルタ処理は、近傍のデータを 0x00 として計算します。
0
1
0
1
-4
1
0
1
0
(0×0x00) + (1×0x00) + (0×0x00) + (1×0x00)+ (-4×0x3F)
+ (1×0xCE) + (0×0x00) + (1×0xC4) + (0×0xFF) = 0x93
3×3 空間フィルタ係数
0x00
0x00
0x00
0x00
0x3F
0xCE
・
・
0x93
・
・
・
0x00
0xC4
0xFF
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
元画素データ(端の画素)
フィルタ処理後データ
③ 3×3 差分型エッジ検出フィルタ
注目する画素とその周囲 8 画素の 3×3 領域に対して、IMGFILTER 構造体で定義したx方向フィル
タ係数で掛け合わせた結果 fx と、y 方向フィルタ係数で掛け合わせた結果 fy とします。
フィルタの計算方法は 3×3 空間フィルタと同様です。
|fx|+|fy|が注目画素の処理結果となります。|fx|+|fy|が 255 以上のときは 255 とします。
各フィルタ係数は、-15~15 までの任意の整数を割り当てることが可能です。重み係数の設定次
第で、Roberts, Prewitt, Sobel といったエッジ検出オペレータや、独自のフィルタを構成する事が
できます。
・
-1
0
1
-1
-2
-1
-2
0
2
0
0
0
-1
0
1
1
2
fx = (-1×0xC3)+(0×0xCF)+(1×0xC9)
+(-2×0xC4)+(0×0xFF)+(2×0xCE)
+(-1×0xC0)+(0×0xC4)+(1×0xFF)
= 0x59
1
fy = (-1×0xC3)+(-2×0xCF)+(-1×0xC9)
Y 方向フィルタ係数
X 方向フィルタ係数
+(0×0xC4)+(0×0xFF)+(0×0xCE)
+(1×0xC0)+(2×0xC4)+(1×0xFF)
= 0x1D
f = fx+fy = 0x59+0x1D = 0x76
・
・
・
・
・
・
・
・
・
・
・
0xC3
0xCF
0xC9
・
・
・
・
・
・
・
0xC4
0xFF
0xCE
・
・
・
0x76
・
・
・
0xC0
0xC4
0xFF
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
元画素データ
フィルタ処理後データ
© 2003, 2016 Interface Corporation. All rights reserved.
543
GPC-5520 Help for Windows
④ 膨張・収縮
2 値化された画像に対して、膨張・収縮処理を行ないます。
膨張処理は、注目画素の近傍に一つでも 0xFF(白)の画素データがあれば、注目画素データは 0xFF
になります。逆に収縮処理は、注目画素の近傍に一つでも 0x00(黒)の画素データがあれば、注目
画素データは 0x00 になります。
この処理は、全画素(640×480)エリアに対して行ないます。
近傍の設定は 8 連結(周囲 8 画素)または 4 連結(上下左右 4 画素)の 2 通りを選択できます。
膨張・収縮処理後の画像は更にフィードバックすることができ、最大 8 回まで可能です。
IMGDILATE_ERODE 構造体でフィードバック条件を設定します。
フィードバック回数と各フィードバックに対する膨張・収縮の選択、そして近傍の設定を行なう事
ができます。
© 2003, 2016 Interface Corporation. All rights reserved.
544
GPC-5520 Help for Windows
■ ラベリング機能の説明(CTP/CPZ/PCI-5526,5536)
PCI/CPZ-55x6 の画像処理機能のブロック図と各画像処理の処理内容を説明します。
ImgSetLUT 関数
データフォーマット選択
NTSC
信号入力
指定バッファ領域
画像データ
Video
Decoder
RGB24 カラー
RGB24 カラー
階調変換
CN
カラー画像
RGB32/24/16/15bit
GRAY8bit(Y)
R 8bit/ G 8bit/ B 8bit
ImgSetBuffer 関数
指定バッファ領域と
カラーフォーマットの指定
2 値画像 8bit
フィルタ画像 8bit
フィルタデータ
ラベリング画像 8bit
画像処理データ
濃度分布データ
射影データ
2 値化データ
2 値化演算処理
色成分選択
フィルタ
2 値化
膨張・収縮
ラベリング
面積値
重心値
フェレ径
トリガ割り込みの設定
ImgSetFilter 関数
ImgSetDil_Er 関数
ImgGetMeasurementValueEx 関数
慣性等価楕円の傾き角
面積トリガ割り込み
ImgSetEventMask 関数
ImgSetTriggerConfig 関数
重心トリガ割り込み
面積 AND 重心トリガ割り込み
ImgSetColorgredient 関数
ImgSetBinarizationConfig 関数
トリガステータスの取得
ImgGetCaotureStatus 関数
面積トリガステータス
ImgSetLabelingConfig 関数
重心トリガステータス
面積 AND 重心トリガステータス
ラベリング画像の演算処理
面積値
ImgGetMeasurementValueLBL 関数
フェレ径
重心値
慣性等価楕円の傾き角
ラベリングは 2 値化された画像データに対して処理されます。
ラベリング処理後の画像をキャプチャする場合、ImgSetBuffer関数(ImgSetBufferVB関数)の識別子を
IFIMG_COLOR_LABEL8 に指定します。
ImgSetLabelingConfig関数で 4 連結と 8 連結の選択が可能です。
ラベリング画像のキャプチャと同時に、ラベル数と各ブロックの面積値、重心値、フェレ径、慣性等
価楕円の傾き角を得ることができます。
ImgSetBuffer関数(ImgSetBufferVB関数)のdwBufferFormat引数にIFIMG_COLOR_LABEL8 識別子と同時
に必要な画像処理識別子を指定します。
キャプチャが完了したら、ImgGetMeasurementValueLBL関数にて取得する事ができます。
また、測定エリア指定による 2 値画像処理も並行して行なう事ができます。
© 2003, 2016 Interface Corporation. All rights reserved.
545
GPC-5520 Help for Windows
■ キャプチャモード
IMGCAPCONFIG 構造体のメンバ変数、dwMode を設定することにより、フレームの間引きによるキャ
プチャや、チャンネル切り換えによるキャプチャを実行します。
この機能はバスマスタ転送時のみ有効です。SDRAM 転送時には反映されません。
①タイマ周期による、1 フレーム毎のキャプチャ(1Ch 使用時限定)
IMGCAPCONFIG 構造体のメンバ変数 dwMode に「IFIMG_CAPTURE_TIMER」を設定します。
IMGCAPCONFIG 構造体のメンバ変数の dwTimerCycle の間隔で 1 フレーム毎キャプチャします。ただし、
誤差として 0~+約 33ms 程度の誤差を生じます。
また、タイマ周期は約 66ms 以上を設定してください。
T(ms)
T(ms)
約 33ms
T(ms)
約 33ms
約 33ms
フレーム
Cnt=
フレーム
Cnt=
フレーム
Cnt=
(-1)
1
(-1)
2
(-1)
3
ImgStartCaputure 関数
キャプチャ再スタート
キャプチャ再スタート
↓
Cnt
T
:1 フレーム転送完了割り込み
:IMGCAPSTATUS 構造体の dwFrameCnt の値
:IMGCAPCONFIG 構造体の dwTimerCycle の値
②フレーム間引きによる、1 フレーム毎のキャプチャ(1Ch 使用時限定)
IMGCAPCONFIG 構造体のメンバ変数 dwMode に「IFIMG_CAPTURE_THINOUT」を設定します。
IMGCAPCONFIG 構造体のメンバ変数 dwThinFrameCnt にフレーム数(N)を設定すると、N フレームに一回
のキャプチャを実行します。
約 33m s
約 33m s
約 33m s
約 33ms
約 33ms
約 33m s
フレーム
Cnt =
Cnt =
Cnt =
Cnt =
Cnt =
Cnt =
Cnt =
(-1)
1
2
N
N +1
N +2
2N
2N +1
ImgStartCaputure 関 数
↓
Cnt
N
約 33m s
: 1 フレーム転送完了 割 り込み
: IMGCAPSTATUS 構造 体の dwFrameCnt の値
: IMGCAPCONFIG 構造体の dwThinFrameCnt の 値
ImgSetBuffer関数(または ImgSetBufferVB関数)で設定したバッファ領域に間引きしたフレームデ
ータが転送されます。
上図の場合、1、N+1,2N+1…のフレームデータがバッファ領域に転送されます。
© 2003, 2016 Interface Corporation. All rights reserved.
546
GPC-5520 Help for Windows
③ 指定フレーム数毎によるチャンネル切り換え (多 Ch 使用時限定)
IMGCAPCONFIG 構造体のメンバ変数 dwMode に「IFIMG_CAPTURE_CH_FRAME」を設定します。
IMGCAPCONFIG 構造体のメンバ変数 dwChFrameCnt にフレーム数(N)を設定すると、N フレーム分キャプ
チャしたタイミングで、チャンネルを切り換えます。
ドライバ内部が切り換え処理を行い、2 フレーム分間隔をとってキャプチャを開始するため、各チャ
ンネルの最初の 2~3 フレーム分はキャプチャされません。
ハードウェアが、チャンネルを切り換えて正常にキャプチャできるようになるには、約 2 フレーム分
の時間間隔を要する為です。
33ms
↓
チャ ン ネル A
Cnt
Cnt =
Cnt =
Cnt =
Cnt =
Cnt =
Cnt =
( -1)
( -1)
(-1)
1
2
N
N
: 1 フレ ーム転送 完了 割り込み
: IMGCAPSTATUS 構造体の dwFrameCnt の値
: IMGCAPCONFIG 構造 体の dwChFrameCnt の 値
チ ャン ネル設 定間隔
チ ャ ンネル B
ImgStartCaputure 関数
Cnt =
Cnt =
Cnt =
Cnt =
Cnt =
Cnt =
( -1)
( -1)
( -1)
1
2
N
チ ャン ネル 設定間 隔
チ ャ ンネル C
Cnt =
Cnt =
Cnt =
Cnt =
Cnt =
Cnt =
( -1)
( -1)
(-1)
1
2
N
チ ャン ネル設 定間隔
チ ャン ネル の切 り換 え処 理
© 2003, 2016 Interface Corporation. All rights reserved.
547
GPC-5520 Help for Windows
④ タイマ周期によるチャンネル切り換え (多 Ch 使用時限定)
IMGCAPCONFIG 構造体のメンバ変数 dwMode に「IFIMG_CAPTURE_CH_TIMER」を設定します。
IMGCAPCONFIG 構造体のメンバ変数 dwTimerCycle に設定したタイマ周期で、チャンネルを切り換え処
理を行います。
IMGCAPCONFIG 構造体のメンバ変数 dwChFrameCnt にフレーム数(N)を設定すると、1 チャンネル当たり
N フレームキャプチャします。ただし、ドライバ内部が切り換え処理を行い、2 フレーム分間隔をと
ってキャプチャを開始するため、各チャンネルの最初の 2~3 フレーム分はキャプチャされません。
ハードウェアが、チャンネルを切り換えて正常にキャプチャできるように約 2 フレーム分の時間間隔
を要する為です。
よって、dwTimerCycle 設定するタイマ周期値 T は以下のようになります。
T(ms) > (N + 3) × 約 33ms
T(ms)
33ms
チ ャン ネル A
↓
:1 フレーム転送完了割り込み
T
:IMGCAPCONFIG 構造体の dwTimerCycle の値
Cnt
Cnt =
Cnt =
Cnt =
Cnt =
Cnt =
Cnt =
(-1)
(-1)
(-1)
1
2
N
N
:IMGCAPSTATUS 構造体の dwFrameCnt の値
:IMGCAPCONFIG 構造体の dwChFrameCnt の値
T(ms)
チャ ン ネル 設定間 隔
チ ャン ネル B
T(ms)
Cnt =
Cnt =
Cnt =
Cnt =
Cnt =
Cnt =
(-1)
(-1)
(-1)
1
2
N
チ ャン ネル 設定間隔
チ ャン ネル C
ImgStartCaputure 関数
Cnt =
Cnt =
Cnt =
Cnt =
Cnt =
Cnt =
(-1)
(-1)
(-1)
1
2
N
チ ャン ネル 設定間隔
チャンネルの切り換え処理
© 2003, 2016 Interface Corporation. All rights reserved.
548
GPC-5520 Help for Windows
複数チャンネル使用時の転送先バッファ内のデータの配置は下図のようになります。
データの並びは、dwChangepattern[5]の設定したチャンネルの順番です。
例)dwChangepattern 配列に IFIMG_CHANNEL_CN1、IFIMG_CHANNEL_CN4、IFIMG_CHANNEL_CN5 の順番で
設定した場合、データ配列は以下のようになります。
CN1 の 1 フレーム目
CN1 の 2 フレーム目
:
CN1 の N フレーム目
CN4 の 1 フレーム目
CN4 の 2 フレーム目
:
CN4 の N フレーム目
CN5 の 1 フレーム目
CN5 の 2 フレーム目
:
CN5 の N フレーム目
※ N:IFIMGCAPCONFIG 構造体の dwChFrameCnt の値
※ データ転送先のバッファ領域が、(チャンネル数×フレーム数)分のサイズを満たさない
場合、データは先頭から上書きされます。
© 2003, 2016 Interface Corporation. All rights reserved.
549
GPC-5520 Help for Windows
■ SDRAM の領域確保について(CTP/CPZ/PCI-55x1、CTP/CPZ/PCI-55x3 使用時)
本製品は SDRAM を取り扱う際は ImgAllocateSDRAM 関数より、使用する SDRAM 領域を確保します。
関数実行後、管理用ハンドルを取得し、このハンドルを用いて、キャプチャデータの読み出し、比
較用画像データの書き込みを実行します。
SDRAM の全サイズは約 64MB です。
解像度 640×480 での最大確保フレーム数は以下の通りです。
データフォーマット
RGB32bit
RGB24bit
RGB15bit/RGB16bit
GRAY8bit
R 成分 8bit
G 成分 8bit
B 成分 8bit
2 値化 8bit
最大確保フレーム数
54 フレーム確保可能
72 フレーム確保可能
109 フレーム確保可能
218 フレーム確保可能
確保できる空き領域が存在する限り、複数の領域を確保する事が可能です。
SDRAM
+0h
+0h
SDRAM
+0h
SDRAM
+0h
空き領域
SDRAM
空き領域
+0h
SDRAM
空き領域
領域④
領域②の確保
領域①の確保
領域③の確保
領域④の確保
空き領域
領域③
領域③
領域②
領域②
領域②
領域①
領域①
領域①
空き領域
領域①
+3FF_FFFFh
+3FF_FFFFh
+3FF_FFFFh
+3FF_FFFFh
+3FF_FFFFh
SDRAM 領域の空き領域を見つ
ボードオープン時
け次第確保します。
© 2003, 2016 Interface Corporation. All rights reserved.
550
GPC-5520 Help for Windows
その領域が必要なくなった場合、ImgFreeSDRAM 関数で領域を解放してください。解放したことに
より、空き領域が増えます。新規に領域を確保することが可能です。
+0h
SDRAM
空き領域
+0h
領域④
SDRAM
+0h
空き領域
領域④
領域③の解放
SDRAM
空き領域
領域④
領域⑤の確保
領域⑤のサイズが領域③(空き領域)のサイ
領域③
領域③
(空き領域)
領域③
(空き領域)
領域⑤
領域⑤
領域②
領域②
領域②
領域①
領域①
領域①
+3FF_FFFFh
ズより以下の場合、領域の確保は可能です。
+3FF_FFFFh
+3FF_FFFFh
ただし、空き領域のガーベージ処理は行いませんので、空き領域は不連続の状態になることがあり、
空き領域サイズが次に確保したい領域より大きい場合でも、領域確保が出来ない場合があります。
+0h
SDRAM
空き領域
+0h
領域④
SDRAM
+0h
空き領域
領域④
領域③の解放
SDRAM
空き領域
領域④
領域⑤の確保
領域③
領域⑤
領域③
(空き領域)
領域③
(空き領域)
領域⑤
領域②
領域②
領域②
領域⑤が確保できるサイズの空き領域が内
場合、領域⑤は確保できません。
この場合、領域②または領域③を解放して、
領域①
領域①
領域①
領域⑤のサイズを満たす連続した空き領域
を作成する必要があります。
+3FF_FFFFh
+3FF_FFFFh
+3FF_FFFFh
© 2003, 2016 Interface Corporation. All rights reserved.
551
GPC-5520 Help for Windows
■ パターン一致機能について(CTP/CPZ/PCI-55x3 使用時)
1 フレーム(640×480)内の任意の矩形領域を対象として、2 値化した画像に対するパターン一致検
出が可能です。
SDRAM 領域に書き込まれた比較領域に対してカメラから取り込んだキャプチャデータと一致率を
照らし合わせます。
IMGPTNCONFIG 構造体のメンバ変数 dwXCoordinates, dwYCoordinates の設定により、比較開始座標
点を設定します。この比較開始座標点から、比較用画像データ領域分に対してキャプチャデータと
比較用画像データの一致率を求めます。
(0,0)
測定対象物
Yc
Xc:ImgAllocateSDRAM 関数で確保した際の
X 方向長さ(dwXLength)
Xc
Yc:ImgAllocateSDRAM 関数で確保した際の
Y 方向長さ(dwYLength)
(639,479)
比較データ
比較開始座標点を元に
データを重ね合わせて比較
(0,0)
比較開始座標
(639,479)
この状態でパターン一致検出が行われる。
一致率のしきい値を IMGPTNCONFIG 構造体のメンバ変数 dwPercentage で設定し、設定した一致率よ
り上回る(または下回る)際にトリガが発生します。
トリガの検知方法は割り込みによるイベント検知と ImgGetCaptureStatusEx 関数で得られるステ
ータス値で確認します。
© 2003, 2016 Interface Corporation. All rights reserved.
552
GPC-5520 Help for Windows
■ 比較用画像データについて (CTP/CPZ/PCI-55x3 使用時)
本製品のパターン一致検出機能は 2 値化した画像に対する機能なので、比較用画像データも 00h
データ、FFh データからなる、2 値化データとなります。
比較データの作成方法として、本製品より比較元となる対象物を 2 値化モードでキャプチャして、
そのキャプチャデータを比較用データとするのも1つの手段です。その際、キャプチャしたデータ
は 640×480 なので ImgClipData 関数で、比較対象物の部分だけ抜き出して比較用画像データとし
て保存します。
■ パターン一致機能における自動補正について(CTP/CPZ/PCI-55x3 使用時)
パターン一致検出を行う場合、1 フレーム(640×480)領域内のどの位置で比較を行うかが重要とな
ります。
本インタフェースモジュールでは1つ前のフレームの重心位置を基準として、比較する領域の位置
を自動的に補正することができます。
その為自動補正モードで行う前にあらかじめ、ImgSetMeasurementRange 関数で比較対象物の重心
値を求める為、測定範囲を設定する必要があります。
(0,0)
測定対象物の重心値(XG,YG)
XG
比較データの重心
YG
(639,479)
1 つ前のフレームの重心
比較データ
1 つ前のフレームの重心位置に合わせて
比較領域の位置を決定
(0,0)
XG
YG
前フレームの重心
比較
(639,479)
現在のフレーム
(639,479)
この状態でパターン一致検出が行われる。
(0,0)
© 2003, 2016 Interface Corporation. All rights reserved.
553
GPC-5520 Help for Windows
■ PEX-H531322 の制御方法
PEX-H531322 は、CameraLink 専用画像入力ボードで、PCI-5526 と同等の画像処理機能をサポー
トした製品です。
ユーザが NTSC カメラから CameraLink カメラへ置き換える用途を目的として製品化されており、
GPC-5520 の API 関数体系で制御できるようになっています。
ただし、NTSC 画像入力製品と仕様が異なる点がございます。
①対応 API 関数
PEX-H531322 が使用できる関数は以下の通りです。
以下の関数以外を実行すると IFIMG_ERROR_NOT_SUPPORTED が返ります。
関数名
ImgOpen
ImgSetChannel
ImgClose
ImgClipData
ImgGetDeviceInfo
IfSaveBitMapFile
ImgGetCaptureStatus
ImgSetColorIngredient
ImgGetCaptureStatusEx
ImgGetMeasurementValueEx
ImgSetBuffer
ImgSetConversionConfig
ImgGetMemPtrValue
ImgSetLUT
ImgStartCapture
ImgSetFilter
ImgStopCapture
ImgSetDil_Er
ImgSetBinarizationConfig
ImgSetLabelingConfig
ImgSetMeasurementRange
ImgGetMeasurementValueLBL
ImgGetMeasurementValue
ImgGetOsArchitecture
ImgSetTriggerConfig
ImgSetCLCaptureConfig
ImgInputDI
ImgSetCCMode
ImgOutputDO
ImgOutputPluse
ImgSetEventMask
ImgSerialSend
ImgGetEventMask
ImgSerialReceive
ImgSetEvent
ImgGetSerialStatus
ImgSetEventEx
ImgSerialClear
ImgSetBufferVB
ImgOutputPower
ImgSetEncodeCntMode
ImgSetCounterCycle
ImgGetCounterValue
© 2003, 2016 Interface Corporation. All rights reserved.
554
GPC-5520 Help for Windows
②カメラ接続について
CameraLink カメラの画像データは、NTSC 信号ととがって、解像度とフォーマットはカメラの
機種によります。よって、制御上、カメラ情報が記載されたカメラコンフィグファイル(拡張子
が cfg)を読み込む処理が必要となります。
ImgSetCLCaptureConfig 関数でカメラコンフィルファイルを指定してください。
カメラコンフィグファイルのフォーマットは以下の通りです。ご使用になるカメラに合わせて
ファイル作成を行ってください。使用するカメラの仕様に合わせて設定値を決定してください。
書式
設定値
[CamType]
カメラのタイプを指定します。
TYPE = 設定値
TYPE
POCL = 設定値
0:エリアカメラ(固定)
CONF = 設定値
POCL
0:カメラは PoCL 規格でない。
1:カメラは PoCL 規格である。
CONF
0:Base Configuration(固定)
[AreaSet]
有効画像エリアの指定です。※1
H_CNT = 設定値
H_CNT 水平有効期間
H_BLK = 設定値
H_BLK 水平無効期間
V_CNT = 設定値
V_CNT 垂直有効期間
V_BLK 垂直無効期間
V_BLK = 設定値
[CamMode]
カメラの映像出力を設定します。
FORMAT = 設定値
0 : RGB24bit
1 : モノクロ 8bit
2 : モノクロ 10bit
3 : モノクロ 12bit
4 : モノクロ 14bit
5 : モノクロ 16bit
6 : Bayer 配列 8bit
7 : Bayer 配列 10bit
8 : RGB30bit
9 : RGB36bit
[CamMode]
カメラの動作方式
OUTMODE = 設定値
0 : 標準 (固定)
[Serial]
BAUD = 設定値
カメラのシリアルボーレートです。
0 : シリアルなし(未使用)
1 : 9600bps
2 : 19200bps
3 : 38400bps
4 : 57600bps
5 : 115200bps
カメラコントロール信号の使用の有無です。
0 : 使用
1 : 未使用
[CC]
CC1 = 設定値
CC2 = 設定値
CC3 = 設定値
CC4 = 設定値
© 2003, 2016 Interface Corporation. All rights reserved.
555
GPC-5520 Help for Windows
※ 1 水平有効期間、水平無効期間、垂直有効期間、垂直無効期間については、
製品のハードウェアマニュアルに記載しています。
例)エリアカメラのカメラコンフィグファイルの書き込み例
[CamType]
TYPE = 0
POCL = 0
[AreaSet]
H_CNT = 640
H_BLK = 139
V_CNT = 480
V_BLK = 0
[CamMode]
FORMAT = 0
[CamMode]
OUTMODE = 0
[Serial]
BAUD = 1
[CC]
CC1 =
CC2 =
CC3 =
CC4 =
0
0
0
0
© 2003, 2016 Interface Corporation. All rights reserved.
556
GPC-5520 Help for Windows
③取り込みエリア
PCI-5526 機能互換の為、取り込み画像の解像度は 640×480 に固定となります。
640×480 を超える解像度のカメラを接続する際は、取り込み開始座標を指定する事ができます。
開始座標は ImgSetCLCaptureConfig 関数で設定できます。
640
開始座標
480
④カメラ制御
CameraLink カメラのオリジナル機能として、外部トリガ(CC 信号)制御、シリアル通信制御、
カメラの電源供給があります。これらの機能制御は以下 API 関数で制御可能です。
機能
外部トリガ(CC 信号)制御
シリアル通信制御
カメラの電源供給
API 関数
ImgSetCCMode
ImgOutputCCPluse
ImgSerialSend
ImgSerialReceive
ImgGetSerialStatus
ImgSerialClear
ImgOutputPower
⑤カウンタ機能
PEX-H531322 には、インターバルタイマカウンタ、エンコーダパルスカウンタ機能が搭載され
ています。各カウンタの周期、カウンタを取得する事ができます。なお、エンコーダパルスのカ
ウント方法を設定する事もできます。
制御を行う関数は、ImgSetEncodeCntMode 関数、
ImgSetCounterCycle 関数、ImgGetCounterValue
関数となります。
© 2003, 2016 Interface Corporation. All rights reserved.
557
GPC-5520 Help for Windows
⑥チャンネル切替え
PEX-H531322 は 2ch 入力製品ですが、チャンネル切替え方式となっています。ImgSetChannel 関
数で制御するチャンネルを切替える事ができます。キャプチャ動作中にチャンネルを切替える事は
できません。
NTSC 画像入力の 5ch は全てのチャンネルに同じ内容の動作設定ですが、PEX-H531322 は各チャン
ネルに対して動作設定が可能となっています。
以下の関数は ImgSetChannel 関数で切り替えたチャンネルに対して設定/制御を行う事が可能で
す。
API 関数
ImgGetCaptureStatus
ImgGetCaptureStatusEx
ImgStartCapture
ImgStopCapture
ImgSetBuffer
ImgGetMemPtrValue
ImgSetBinarizationConfig
ImgSetMeasurementRange
ImgGetMeasurementValue
ImgSetTriggerConfig
ImgSetColorIngredient
ImgGetMeasurementValueEx
ImgSetConversionConfig
ImgSetLUT
ImgSetFilter
ImgSetDil_Er
ImgSetLabelingConfig
ImgGetMeasurementValueLBL
ImgSetCLCaptureConfig
ImgSetCCMode
ImgOutputPluse
ImgSerialSend
ImgSerialReceive
ImgGetSerialStatus
ImgSerialClear
ImgOutputPower
設定/制御内容
キャプチャ状態を取得できます。
キャプチャ状態を取得できます。
キャプチャを開始します。
キャプチャを停止します。
データ転送先バッファを設定できます。
メモリポインタを取得する事ができます。
2 値化条件を設定できます。
測定範囲を設定できます。
面積、重心値を取得できます。
トリガ条件を設定できます。
画像処理の色成分を指定できます。
面積、重心値、フェレ径、傾き角を取得できます。
画像変換処理の有効/無効を設定できます。
階調変換用の LUT テーブルデータを設定できます。
フィルタ係数を設定できます。
膨張・収縮の設定ができます。
ラベリングの設定ができます。
ラベリング結果を取得できます。
接続カメラの設定、取り込み領域を設定できます。
CC 信号の出力方式を設定します。
CC 信号を 1 パルス分出力します。
シリアル通信方式でカメラへデータを送信します。
シリアル通信方式でカメラからのデータを受信します。
シリアル通信方式によるデータ受信状態を取得します。
シリアル通信用の FIFO をクリアします。
PoCL 規格カメラに外部電源を供給します。
© 2003, 2016 Interface Corporation. All rights reserved.
558
GPC-5520 Help for Windows
⑦キャプチャ制御
・ImgSetBufer 関数で指定できるカラーフォーマットは固定となります。接続するカメラに合わ
せて頂きます。NTSC 画像入力製品のようにフォーマット変換はできません。例えば、RGB24bit
カメラであれば、ImgSetBuffer 関数には IFIMG_COLOR_RGB24 の固定指定となります。
・画像データ転送先のバッファは各チャンネルに割り当てる必要があります。
⑧ImgClipData 関数について
ImgClipData 関数へ渡す IMGCLIPCONFIG 構造体のメンバ変数 dwDataFormat には
IFIMG_CL_RESOLUTION 識別子を OR 指定してください。
⑨画像処理機能
・面積、重心、フェレ径、傾き角の取得は、キャプチャ実行中に制限されます。
・ImgSetBuffer 関数に IFIMG_MEASUEMENT_LBLCNT を指定する場合、ラベリング数データのサイ
ズは 8byte となります。確保するバッファサイズも 8byte 分を確保してください。PCI-5526、
5536 では 4byte ですが、サイズが異なりますのでご注意ください。
・ラベリングの付加情報を取得する場合、必ずラベリング画像を一緒に転送してください。
・ラベリング機能を使う場合、カメラ出力される映像信号のフレーム間隔は 17ms 以上である事
を推奨します。
使用例:カメラを外部トリガモードに切り替えて、17ms 以上の間隔で CC 信号を出力するよう
にしてください。
⑩割り込みについて
・1 フレーム毎転送完了割り込みは各チャンネル共通設定となります。
・面積、重心、面積 AND 重心トリガ割り込みは各チャンネル個別設定となります。
© 2003, 2016 Interface Corporation. All rights reserved.
559
GPC-5520 Help for Windows
■ スーパーインポーズ機能
GPC-5520 はスーパーインポーズデバイスに対して主に以下の制御を行います。
・ユーザアプリケーション上で作成した画像データをスーパーインポーズ画像として
デバイスのオンボードメモリへ書き込む。
・スーパーインポーズ処理の設定。
・スーパーインポーズ用の時刻、日付の設定。
1. スーパーインポーズ画像の設定
RGB24bit ビットマップ形式の画像データスーパーインポーズ画像として設定する事ができます。
ボードメモリ上にスーパーインポーズ画像用の領域を 8 画面分確保しており、最大 8 種類の画像
を設定することができます。
画像データは番号で管理する為、指定した番号に任意のスーパーインポーズ画像を割り当てる事
ができます。
PCI-540111 オンボードメモリ
キャプチャデータ保存領域
画像データ
スーパーインポーズ画像領域①
文字列 XXXX
スーパーインポーズ画像領域②
スーパーインポーズ画像領域③
インポーズ画像を転送
スーパーインポーズ画像領域④
スーパーインポーズ画像領域⑤
スーパーインポーズ画像領域⑥
スーパーインポーズ画像領域⑦
スーパーインポーズ画像領域⑧
ImgSetImposeImage 関数でセットする事ができます。
© 2003, 2016 Interface Corporation. All rights reserved.
560
GPC-5520 Help for Windows
■スーパーインポーズ画像の反映タイミング
スーパーインポーズ画像が反映されるタイミングは、以下のようになっています。
モニタ出力
1
2
スーパーインポーズ画像の演算方法
を上書きに設定
次のフレームからスーパーインポー
ズ画像が反映される。
3
・
・
・
© 2003, 2016 Interface Corporation. All rights reserved.
561
GPC-5520 Help for Windows
2. スーパーインポーズ画像の設定
スーパーインポーズする画像と演算処理を選択する事ができます。
上書き、加算、減算、XOR 演算処理を指定する事ができます。演算は画素毎に施す事ができます。
SprSetImposeImage 関数で指定する事ができます。スーパーインポーズの有効/無効を切替える事
ができます。
●上書き
インポーズ画像データをカメラ画像に上書きする。白(R:FF
す。
AND
入力画像
G:FF
B:FFh)は透過させま
=
スーパーインポーズ用画像
出力画像
●加算
2つの画像を単純に足し合わせる。全体的に明るく(白っぽく)なります。
+
入力画像
=
スーパーインポーズ用画像
出力画像
●減算
スーパーインポーズ画像のデータからカメラ画像を引きます。全体的に暗く(黒っぽく)なり
ます。同一画像の場合、真っ黒になります。
-
入力画像
=
スーパーインポーズ用画像
© 2003, 2016 Interface Corporation. All rights reserved.
562
出力画像
GPC-5520 Help for Windows
●XOR
スーパーインポーズ画像のデータとカメラ画像の XOR(排他論理和)をとります。
XOR
入力画像
=
スーパーインポーズ用画像
出力画像
●透過
2つの画像を単純に足し合わせる。加算と比較して全体的に明るく(白っぽく)はなりません。
+
入力画像
=
スーパーインポーズ用画像
© 2003, 2016 Interface Corporation. All rights reserved.
563
出力画像
GPC-5520 Help for Windows
第5章 サンプルプログラム
以下、各サンプルプログラムの概要を説明します。
PEX-H531322 で動作させる場合、サンプルプログラムに以下の処理コードを追記してご使用くだ
さい。
・ImgOpen 関数でオープン処理後、ImgSetCLCaptureConfig 関数でカメラとキャプチャ設定を行っ
てください。
・PoCL 規格タイプのカメラの場合、キャプチャを開始する前に、ImgOutputPower 関数でカメラへ
の電源供給を行ってください。
・カメラ画像のキャプチャを行う場合、ImgSetBuffer 関数へ渡すカラーフォーマット情報は、接
続するカメラに合わせてください。
・ImgClipData 関数へ渡す IMGCLIPCONFIG 構造体変数の内容を修正します。構造体のメンバ変数
dwDataFormat に IFIMG_CL_RESOLUTION 識別子を OR 指定してください。
「Visual C# .NET」、「Visual Basic .NET」、「Delphi 8」用のサンプルプログラムを用意していま
す。それぞれ、以下を使用して作成されています。
Microsoft Visual C# .NET 2003
Microsoft Visual Basic .NET 2003
Borland Delphi 8.0 for the Microsoft .NET Framework
© 2003, 2016 Interface Corporation. All rights reserved.
564
GPC-5520 Help for Windows
5.1
ImgSmpl
【概要】
サンプルプログラム「ImgSmpl」は、DMA 転送による 1 フレームのキャプチャ後、キャプチャデー
タを描画します。
【実行手順】
サンプルプログラムには実行形式のファイルが付属していません。
ソースコードをコンパイルして実行ファイルを生成してから、動作させてください。
Visual C++ 6.0 の場合
Visual C++(Visual Studio)を起動し、「ファイル」メニューから「ワークスペースを開く」
を選び、メイクファイル「ImgSmpl.mak」を開き、ビルドしてください。
Visual C++ .NET 2003 以降
Visual C++(Visual Studio)を起動し、
「ファイル」メニューから「開く」→「プロジェクト」
を選び、プロジェクトファイル「ImgSmpl.vcproj」を開き、ビルドしてください。
Visual Basic の場合
Visual Basic を起動し、プロジェクトファイル「ImgSmpl.vbp」を開き、ビルドしてください。
Delphi の場合
Delphi を起動し、プロジェクトファイル「ImgSmpl.dpr」を開き、ビルドしてください。
Visual C# .NET の場合
Visual Studio を起動し、
「ファイル」メニューから「開く」→「プロジェクト」を選び、プロ
ジェクトファイル「*.csproj」を開き、ビルドしてください。
Visual Basic .NET の場合
Visual Studio を起動し、
「ファイル」メニューから「開く」→「プロジェクト」を選び、プロ
ジェクトファイル「*.vbproj」を開き、ビルドしてください。
Delphi 8 の場合
Delphi を起動し、「ファイル」メニューから「プロジェクトを開く」を選びプロジェクトグル
ープ「*.bdsproj」を開き、ビルドしてください。
【内容】
1. メニューバーの「File」→「Open」でデバイスオープンダイアログが表示されます。オープ
ンするデバイス名「IFIMGSTxx」または「IFIMGBINxx」または「IFIMGMEMxx」を入力してく
ださい。
2. メニューバーの「Set」をクリックして、キャプチャ用バッファ領域を設定します。
3. メニューバーの「Start」をクリックして、キャプチャを開始します。
1 フレームキャプチャ後、「1 Frame capture completion」のメッセージが表示されます。
※メッセージは、割り込みイベント(コールバック関数、またはメッセージイベント)で表
示しています。
4. メニューバーの「View」をクリックします。
ウィンドウにキャプチャデータが描画されます。
© 2003, 2016 Interface Corporation. All rights reserved.
565
GPC-5520 Help for Windows
5.2
ImgBin
【概要】
サンプルプログラム「ImgBin」は、2 値化設定を行い、1 フレーム(2 値化データ)のキャプチャ
後、キャプチャデータを描画します。
【実行手順】
サンプルプログラムには実行形式のファイルが付属していません。
ソースコードをコンパイルして実行ファイルを生成してから、動作させてください。
Visual C++の場合
Visual C++(Visual Studio)を起動し、「ファイル」メニューから「ワークスペースを開く」
を選び、メイクファイル「ImgBin.mak」を開き、ビルドしてください。
Visual C++ .NET 2003 以降
Visual C++(Visual Studio)を起動し、
「ファイル」メニューから「開く」→「プロジェクト」
を選び、プロジェクトファイル「ImgBin.vcproj」を開き、ビルドしてください。
Visual Basic の場合
Visual Basic を起動し、プロジェクトファイル「ImgBin.vbp」を開き、ビルドしてください。
Delphi の場合
Delphi を起動し、プロジェクトファイル「ImgBin.dpr」を開き、ビルドしてください。
【内容】
1. メニューバーの「File」→「Open」でデバイスオープンダイアログが表示されます。オー
プンするデバイス名「IFIMGBINxx」を入力してください。
2. メニューバーの「Binarization」をクリックして、2 値化の設定を行います。
3. メニューバーの「Set」をクリックして、キャプチャ用バッファ領域を設定します。
4. メニューバーの「Start」をクリックして、キャプチャを開始します。
1 フレームキャプチャ後、「1 Frame capture completion」のメッセージが表示されます。
※メッセージは、割り込みイベント(コールバック関数、またはメッセージイベント)で
表示しています。
5. メニューバーの「View」をクリックします。ウィンドウにキャプチャデータが描画されま
す。
© 2003, 2016 Interface Corporation. All rights reserved.
566
GPC-5520 Help for Windows
5.3
ImgTrigger
【概要】
サンプルプログラム「ImgTrigger」は、トリガ発生条件を設定します。
【実行手順】
サンプルプログラムには実行形式のファイルが付属していません。
ソースコードをコンパイルして実行ファイルを生成してから、動作させてください。
Visual C++の場合
Visual C++(Visual Studio)を起動し、「ファイル」メニューから「ワークスペースを開く」
を選び、メイクファイル「ImgTrigger.mak」を開き、ビルドしてください。
Visual C++ .NET 2003 以降
Visual C++(Visual Studio)を起動し、
「ファイル」メニューから「開く」→「プロジェクト」
を選び、プロジェクトファイル「ImgTrigger.vcproj」を開き、ビルドしてください。
Visual Basic の場合
Visual Basic を起動し、プロジェクトファイル「ImgTrigger.vbp」を開き、ビルドしてくださ
い。
Delphi の場合
Delphi を起動し、プロジェクトファイル「ImgTrigger.dpr」を開き、ビルドしてください。
【内容】
1. メニューバーの「File」→「Open」でデバイスオープンダイアログが表示されます。オー
プンするデバイス名「IFIMGBINxx」を入力してください。
2. メニューバーの「Binarization」をクリックして、2 値化の設定を行います。
3. メニューバーの「Range」をクリックして、2 値画像処理の測定範囲を設定します。
4. メニューバーの「Range」をクリックして、トリガ発生条件を設定します。
トリガ発生時、「Trigger asserted」のメッセージが表示されます。※メッセージは、割り
込みイベント(コールバック関数、またはメッセージイベント)で表示しています。
© 2003, 2016 Interface Corporation. All rights reserved.
567
GPC-5520 Help for Windows
5.4
ImgSdram
【概要】
サンプルプログラム「ImgSdram」は、SDRAM による 1 フレームのキャプチャ後、キャプチャデー
タを描画します。
【実行手順】
サンプルプログラムには実行形式のファイルが付属していません。
ソースコードをコンパイルして実行ファイルを生成してから、動作させてください。
Visual C++の場合
Visual C++(Visual Studio)を起動し、「ファイル」メニューから「ワークスペースを開く」
を選び、メイクファイル「ImgSdram.mak」を開き、ビルドしてください。
Visual C++ .NET 2003 以降
Visual C++(Visual Studio)を起動し、
「ファイル」メニューから「開く」→「プロジェクト」
を選び、プロジェクトファイル「ImgSdram.vcproj」を開き、ビルドしてください。
Visual Basic の場合
Visual Basic を起動し、プロジェクトファイル「ImgSdram.vbp」を開き、ビルドしてください。
Delphi の場合
Delphi を起動し、プロジェクトファイル「ImgSdram.dpr」を開き、ビルドしてください。
【内容】
1. メニューバーの「File」→「Open」でデバイスオープンダイアログが表示されます。オー
プンするデバイス名「IFIMGMEMxx」を入力してください。
2. メニューバーの「Set」をクリックして、キャプチャ用 SDRAM 領域を設定します。
3. メニューバーの「Start」をクリックして、キャプチャを開始します。
4. 1 フレームキャプチャ後、「1 Frame capture completion」のメッセージが表示されます。
※メッセージは、割り込みイベント(コールバック関数、またはメッセージイベント)で
表示しています。
5. メニューバーの「View」をクリックします。ウィンドウにキャプチャデータが描画されま
す。
© 2003, 2016 Interface Corporation. All rights reserved.
568
GPC-5520 Help for Windows
5.5
ImgPtn
【概要】
サンプルプログラム「ImgPtn」は、パターン一致の設定を行います。
【実行手順】
サンプルプログラムには実行形式のファイルが付属していません。
ソースコードをコンパイルして実行ファイルを生成してから、動作させてください。
Visual C++の場合
Visual C++(Visual Studio)を起動し、「ファイル」メニューから「ワークスペースを開く」
を選び、メイクファイル「ImgPtn.mak」を開き、ビルドしてください。
Visual C++ .NET 2003 以降
Visual C++(Visual Studio)を起動し、
「ファイル」メニューから「開く」→「プロジェクト」
を選び、プロジェクトファイル「ImgPtn.vcproj」を開き、ビルドしてください。
Visual Basic の場合
Visual Basic を起動し、プロジェクトファイル「ImgPtn.vbp」を開き、ビルドしてください。
Delphi の場合
Delphi を起動し、プロジェクトファイル「ImgPtn.dpr」を開き、ビルドしてください。
【内容】
1. メニューバーの「File」→「Open」でデバイスオープンダイアログが表示されます。オー
プンするデバイス名「IFIMGMEMxx」を入力してください。
2. メニューバーの「Binarization」をクリックして、2 値化の設定を行います。
3. メニューバーの「Set」をクリックして、SDRAM 領域に比較データを書き込み、比較条件を
設定しします。
4. パターン一致検出時、「Trigger asserted」のメッセージが表示されます。
※メッセージは、割り込みイベント(コールバック関数、またはメッセージイベント)で表
示しています。
© 2003, 2016 Interface Corporation. All rights reserved.
569
GPC-5520 Help for Windows
5.6
ImgContinuation
【概要】
サンプルプログラム「ImgContinuation」は、連続フレームによるキャプチャを行い、1 フレーム
キャプチャ毎に描画を行います。
【実行手順】
サンプルプログラムには実行形式のファイルが付属していません。
ソースコードをコンパイルして実行ファイルを生成してから、動作させてください。
Visual C++の場合
Visual C++(Visual Studio)を起動し、「ファイル」メニューから「ワークスペースを開く」
を選び、メイクファイル「ImgContinuation.mak」を開き、ビルドしてください。
Visual C++ .NET 2003 以降
Visual C++(Visual Studio)を起動し、
「ファイル」メニューから「開く」→「プロジェクト」
を選び、プロジェクトファイル「ImgContinuation.vcproj」を開き、ビルドしてください。
Visual Basic の場合
Visual Basic を起動し、プロジェクトファイル「ImgContinuation.vbp」を開き、ビルドして
ください。
Delphi の場合
Delphi を起動し、プロジェクトファイル「ImgContinuation.dpr」を開き、ビルドしてくださ
い。
【内容】
1. メニューバーの「File」→「Open」でデバイスオープンダイアログが表示されます。オー
プンするデバイス名「IFIMGSTxx」または「IFIMGBINxx」または「IFIMGMEMxx」を入力して
ください。
2. メニューバーの「Set」をクリックして、キャプチャ用バッファ領域を設定します。
3. メニューバーの「Start」をクリックして、キャプチャを開始します。1 フレームキャプチ
ャ後、1 フレームキャプチャ毎の描画を行います。
4. メニューバーの「Stop」をクリックすることで、キャプチャを停止する事ができます。
© 2003, 2016 Interface Corporation. All rights reserved.
570
GPC-5520 Help for Windows
5.7
ImgMeasure
【概要】
サンプルプログラム「ImgMesure」は、DMA 転送による 1 フレームのキャプチャと 2 値画像結果を
取得します。
【実行手順】
サンプルプログラムには実行形式のファイルが付属していません。
ソースコードをコンパイルして実行ファイルを生成してから、動作させてください。
Visual C++の場合
Visual C++(Visual Studio)を起動し、「ファイル」メニューから「ワークスペースを開く」
を選び、メイクファイル「ImgMesure.mak」を開き、ビルドしてください。
Visual C++ .NET 2003 以降
Visual C++(Visual Studio)を起動し、
「ファイル」メニューから「開く」→「プロジェクト」
を選び、プロジェクトファイル「ImgMeasure.vcproj」を開き、ビルドしてください。
Visual Basic の場合
Visual Basic を起動し、プロジェクトファイル「ImgMesure.vbp」を開き、ビルドしてくださ
い。
Delphi の場合
Delphi を起動し、プロジェクトファイル「ImgMesure.dpr」を開き、ビルドしてください。
【内容】
1. メニューバーの「File」→「Open」でデバイスオープンダイアログが表示されます。オー
プンするデバイス名「IFIMGMSRxx」を入力してください。
2. メニューバーの「Set」をクリックして、DMA 転送するデータフォーマットを指定します。
データフォーマットは画像データ(RGB24bit/R8bit/G8bit/B8bit/BIN8bit)と画像処理デー
タ(濃度分布、射影データ)を選択します。
3. メニューバーの「SetMsr」をクリックして、ダイアログボックスが表示されます。
2 値化処理設定と測定範囲の設定を行ないます。
4. メニューバーの「Start」をクリックして、キャプチャを開始します。
1 フレームキャプチャ後、「1 Frame capture completion」のメッセージが表示されます。
5. メニューバーの「View」をクリックします。ウィンドウにキャプチャデータが描画されま
す。また、画像処理結果(面積値、重心値、フェレ径、慣性等価楕円の傾き角)が表示され
ます。
6. メニューバーの「Hist」をクリックしたら、ダイアログボックスが表示されます。
2 のデータフォーマット指定時に、濃度分布、射影データを選択した場合、各画像処理結
果を確認する事ができます。
© 2003, 2016 Interface Corporation. All rights reserved.
571
GPC-5520 Help for Windows
5.8
ImgLUT
【概要】
サンプルプログラム「ImgLUT」は、階調変換処理を実施した画像を 1 フレームキャプチャします。
【実行手順】
サンプルプログラムには実行形式のファイルが付属していません。
ソースコードをコンパイルして実行ファイルを生成してから、動作させてください。
Visual C++の場合
Visual C++(Visual Studio)を起動し、「ファイル」メニューから「ワークスペースを開く」
を選び、メイクファイル「ImgLUT.mak」を開き、ビルドしてください。
Visual C++ .NET 2003 以降
Visual C++(Visual Studio)を起動し、
「ファイル」メニューから「開く」→「プロジェクト」
を選び、プロジェクトファイル「ImgLUT.vcproj」を開き、ビルドしてください。
Visual Basic の場合
Visual Basic を起動し、プロジェクトファイル「ImgLUT.vbp」を開き、ビルドしてください。
Delphi の場合
Delphi を起動し、プロジェクトファイル「ImgLUT.dpr」を開き、ビルドしてください。
【内容】
1. メニューバーの「File」→「Open」でデバイスオープンダイアログが表示されます。オープ
ンするデバイス名「IFIMGCNVxx」を入力してください。
2. メニューバーの「Set」をクリックすると、階調変換テーブルの設定をデータフォーマット
の設定を行ないます。
階調変換テーブルは明度が反転するデータです。データフォーマットは RGB24bit を指定し
ます。
3. メニューバーの「Start」をクリックして、キャプチャを開始します。
1 フレームキャプチャ後、
「1 Frame capture completion」のメッセージが表示されます。
4. メニューバーの「View」をクリックします。ウィンドウにキャプチャデータが描画されます。
© 2003, 2016 Interface Corporation. All rights reserved.
572
GPC-5520 Help for Windows
5.9
ImgFilter
【概要】
サンプルプログラム「ImgFilter」は、フィルタ処理を実施した画像を 1 フレームキャプチャしま
す。
【実行手順】
サンプルプログラムには実行形式のファイルが付属していません。
ソースコードをコンパイルして実行ファイルを生成してから、動作させてください。
Visual C++の場合
Visual C++(Visual Studio)を起動し、「ファイル」メニューから「ワークスペースを開く」
を選び、メイクファイル「ImgFilter.mak」を開き、ビルドしてください。
Visual C++ .NET 2003 以降
Visual C++(Visual Studio)を起動し、
「ファイル」メニューから「開く」→「プロジェクト」
を選び、プロジェクトファイル「ImgFilter.vcproj」を開き、ビルドしてください。
Visual Basic の場合
Visual Basic を起動し、プロジェクトファイル「ImgFilter.vbp」を開き、ビルドしてくださ
い。
Delphi の場合
Delphi を起動し、プロジェクトファイル「ImgFilter.dpr」を開き、ビルドしてください。
【内容】
1. メニューバーの「File」→「Open」でデバイスオープンダイアログが表示されます。オープ
ンするデバイス名「IFIMGCNVxx」を入力してください。
2. メニューバーの「Set」をクリックすると、フィルタ係数とデータフォーマットの設定を行
ないます。
フィルタ係数はラプラシアンフィルタを設定します。
3. メニューバーの「Start」をクリックして、キャプチャを開始します。
1 フレームキャプチャ後、
「1 Frame capture completion」のメッセージが表示されます。
4. メニューバーの「View」をクリックします。ウィンドウにキャプチャデータが描画されます。
© 2003, 2016 Interface Corporation. All rights reserved.
573
GPC-5520 Help for Windows
5.10 ImgDilationErosion
【概要】
サンプルプログラム「ImgDilationErosion」は、膨張・収縮処理を実施した画像を 1 フレームキャ
プチャします。
【実行手順】
サンプルプログラムには実行形式のファイルが付属していません。
ソースコードをコンパイルして実行ファイルを生成してから、動作させてください。
Visual C++の場合
Visual C++(Visual Studio)を起動し、「ファイル」メニューから「ワークスペースを開く」
を選び、メイクファイル「ImgDilationErosion.mak」を開き、ビルドしてください。
Visual C++ .NET 2003 以降
Visual C++(Visual Studio)を起動し、
「ファイル」メニューから「開く」→「プロジェクト」
を選び、プロジェクトファイル「ImgDilationErosion.vcproj」を開き、ビルドしてください。
Visual Basic の場合
Visual Basic を起動し、プロジェクトファイル「ImgDilationErosion.vbp」を開き、ビルドし
てください。
Delphi の場合
Delphi を起動し、プロジェクトファイル「ImgDilationErosion.dpr」を開き、ビルドしてくだ
さい。
【内容】
1. メニューバーの「File」→「Open」でデバイスオープンダイアログが表示されます。オープ
ンするデバイス名「IFIMGCNVxx」を入力してください。
2. メニューバーの「Set」をクリックすると、膨張・収縮の処理条件ととデータフォーマットの
設定を行ないます。
3. メニューバーの「Start」をクリックして、キャプチャを開始します。
1 フレームキャプチャ後、
「1 Frame capture completion」のメッセージが表示されます。
4. メニューバーの「View」をクリックします。ウィンドウにキャプチャデータが描画されます。
© 2003, 2016 Interface Corporation. All rights reserved.
574
GPC-5520 Help for Windows
5.11 ImgLbl
【概要】
サンプルプログラム「ImgLbl」は、ラベリング処理後の画像と各ラベルブロックの面積、重心、
フェレ径、慣性等価楕円の傾き角を取得します。
【実行手順】
サンプルプログラムには実行形式のファイルが付属していません。
ソースコードをコンパイルして実行ファイルを生成してから、動作させてください。
Visual C++の場合
Visual C++(Visual Studio)を起動し、「ファイル」メニューから「ワークスペースを開く」
を選び、メイクファイル「ImgLbl.mak」を開き、ビルドしてください。
Visual C++ .NET 2003 以降
Visual C++(Visual Studio)を起動し、
「ファイル」メニューから「開く」→「プロジェクト」
を選び、プロジェクトファイル「ImgLbl.vcproj」を開き、ビルドしてください。
Visual Basic の場合
Visual Basic を起動し、プロジェクトファイル「ImgLbl.vbp」を開き、ビルドしてください。
Delphi の場合
Delphi を起動し、プロジェクトファイル「ImgLbl.dpr」を開き、ビルドしてください。
【内容】
1. メニューバーの「File」→「Open」でデバイスオープンダイアログが表示されます。オープ
ンするデバイス名「IFIMGLBLxx」を入力してください。
2. メニューバーの「Set」をクリックすると、DMA 転送するデータフォーマットを指定します。
データフォーマットはラベリング画像と画像処理データ(面積値、重心値、フェレ径、慣性
等価楕円の傾き角)を指定します。
3. メニューバーの「Start」をクリックして、キャプチャを開始します。
1 フレームキャプチャ後、
「1 Frame capture completion」のメッセージが表示されます。
4. メニューバーの「View」をクリックします。ウィンドウにキャプチャデータとその画像のラ
ベリング数とラベル番号 1 に対する画像処理データを表示します。
© 2003, 2016 Interface Corporation. All rights reserved.
575
GPC-5520 Help for Windows
5.12 ImgSaveAvi
【概要】
サンプルプログラム「ImgSaveAvi」は、キャプチャした画像データを動画保存するサンプルプロ
グラムです。
動画ファイルの形式は未圧縮の Avi 形式のファイルとなります。
【実行手順】
Visual C++の場合
Visual C++(Visual Studio)を起動し、「ファイル」メニューから「ワークスペースを開く」
を選び、プロジェクトファイル「ImgSaveAvi.dsp」を開き、ビルドしてください。
Visual C++ .NET 2003 以降
Visual C++(Visual Studio)を起動し、
「ファイル」メニューから「開く」→「プロジェクト」
を選び、プロジェクトファイル「ImgSaveAvi.vcproj」を開き、ビルドしてください。
【内容】
1. メニューバーの「File」→「Open」でデバイスオープンダイアログが表示されます。オープ
ンするデバイス名を入力してください。
2. メニューバーの「Set」をクリックすると、ダイアログが表示されます。
カラーフォーマット(RGB24、RGB15、GRAY8)と解像度(640×480、320×240、160×120)を
選択します。
3. メニューバーの「Start」をクリックして、キャプチャを開始します。
キャプチャ画像も描画されます。
4. 2 の操作で解像度を「640×480」に指定した場合、60 フレーム分キャプチャした後、動画ファ
イルの保存処理が実行されます。Avi 形式ファイルへの保存が完了したら、「FileSave
completion」と完了メッセージが表示されます。同じディレクトリ上に動画ファイル
「sample.avi」が作成されます。
5. 2 の操作で解像度を「640×480」以外で指定した場合、メニューの「Stop」をクリックすると、
キャプチャを停止する。Avi 形式ファイルへの保存が完了したら、「FileSave completion」
と完了メッセージが表示されます。同じディレクトリ上に動画ファイル「sample.avi」が作成
されます。
※Avi 形式の仕様上、作成できるファイルの最大サイズは 2GB となります。最大サイズの範
囲内でファイル保存を行なってください。
© 2003, 2016 Interface Corporation. All rights reserved.
576
GPC-5520 Help for Windows
5.13 ImgCap
【概要】
サンプルプログラム「ImgCap」は、DMA 転送による 1 フレームのキャプチャ後、ビットマップフ
ァイルを保存するサンプルプログラムです。
【実行手順】
サンプルプログラムには実行形式のファイルが付属していません。
ソースコードをコンパイルして実行ファイルを生成してから、動作させてください。
Visual C++の場合
Visual C++(Visual Studio)を起動し、「ファイル」メニューから「ワークスペースを開く」
を選び、メイクファイル「ImgCap.mak」を開き、ビルドしてください。
Visual C++ .NET 2003 以降
Visual C++(Visual Studio)を起動し、
「ファイル」メニューから「開く」→「プロジェクト」
を選び、プロジェクトファイル「ImgCap.vcproj」を開き、ビルドしてください。
Visual Basic の場合
Visual Basic を起動し、プロジェクトファイル「ImgCap.vbp」を開き、ビルドしてください。
【内容】
「OK」ボタンをクリックするとインタフェースモジュールをオープンして RGB24bit モードでキ
ャプチャを開始します。1 フレームキャプチャの完了を ImgGetCaptureStatus 関数でポーリン
グしながら待機します。
キャプチャが完了したら、ビットマップファイルに画像を保存します。
© 2003, 2016 Interface Corporation. All rights reserved.
577
GPC-5520 Help for Windows
5.14 ImgSprString
【概要】
サンプルプログラム「ImgSprString」は、任意の文字列をインポーズ処理します。
文字列をスーパーインポーズします。
【実行手順】
サンプルプログラムには実行形式のファイルが付属していません。
ソースコードをコンパイルして実行ファイルを生成してから、動作させてください。
Visual C++の場合
Visual C++(Visual Studio)を起動し、「ファイル」メニューから「ワークスペースを開く」
を選び、メイクファイル「ImgSprString.mak」を開き、ビルドしてください。
Visual C++ .NET 2003 以降
Visual C++(Visual Studio)を起動し、
「ファイル」メニューから「開く」→「プロジェクト」
を選び、プロジェクトファイル「ImgSprString.vcproj」を開き、ビルドしてください。
Visual Basic の場合
Visual Basic を起動し、プロジェクトファイル「ImgSprString.vbp」を開き、ビルドしてくだ
さい。
5.15 ImgSprDateTime
【概要】
サンプルプログラム「ImgSprDateTime」は、任意の文字列をインポーズ処理します。
指定した日付と時刻でスーパーインポーズします。
【実行手順】
サンプルプログラムには実行形式のファイルが付属していません。
ソースコードをコンパイルして実行ファイルを生成してから、動作させてください。
Visual C++の場合
Visual C++(Visual Studio)を起動し、「ファイル」メニューから「ワークスペースを開く」
を選び、メイクファイル「ImgSprDateTime.mak」を開き、ビルドしてください。
Visual C++ .NET 2003 以降
Visual C++(Visual Studio)を起動し、
「ファイル」メニューから「開く」→「プロジェクト」
を選び、プロジェクトファイル「ImgSprDateTime.vcproj」を開き、ビルドしてください。
Visual Basic の場合
Visual Basic を起動し、プロジェクトファイル「ImgSprDateTime.vbp」を開き、ビルドしてく
ださい。
© 2003, 2016 Interface Corporation. All rights reserved.
578
GPC-5520 Help for Windows
第6章 ユーティリティ
以下、各ユーティリティの概要を説明します。
6.1
画像キャプチャユーティリティ
本ユーティリティは、カメラからの映像入力機器から取り込んだ、画像データを描画するアプリ
ケーションです。
(注意) PCI-540111,PEX-H540111,CPZ-540111 ではご使用できません。
【使用方法】
1. ソフトウェア(GPC-5520)のインストール完了後、
「スタート」メニューより「プログラム」
-「Interface GPC-5520」-「ImgCapture」を起動します。
2. メニューの「ファイル」-「デバイスオープン」を選択すると、インストールされているデ
バイスの一覧が表示されます。その中から、使用したいインタフェースモジュールを選択
し、「OK」ボタンをクリックします。
3. 画面説明(メイン)
②
③
①
④
表示画面
⑤
図 1. 実行画面
© 2003, 2016 Interface Corporation. All rights reserved.
579
GPC-5520 Help for Windows
名称
① メニューバー
フ ァ イ デバイスオープン
ル
開く
保存
デバイスクローズ
カメラファイル
表示
終了
ステータスバー
オ プ シ 出力モード
ョン
ヘルプ
バージョン情報
②キャプチャ開始
③キャプチャ停止
④設定
⑤ステータスバー
説明
オープン画面が起動します。
使用可能なデバイスの一覧が表示され
ます。
デバイスを選択します。
Bmp 形式ファイルを開きます。
画面に表示している画像データを bmp 形
式ファイルで保存します。
使用しているデバイスをクローズしま
す。
PEX-H531322 専用です。使用するカメラ
コンフィグファイルを読み込みます。
アプリケーションを終了します。
ステータスバーの表示を設定します。
映像出力端子(チャンネル 2)からの出
力モードを切り換えます。
【スルーモード】
映像入力端子から入力した画像をその
まま出力します。
【カラーバーモード】
映像出力端子(チャンネル 2)からのカ
ラーバー画像を出力します。
【静止画出力】
カメラ画像をそのまま静止画として出
力します。
アプリケーションのバージョンを表示
します。
キャプチャを開始して、キャプチャデー
タを画面に表示します。
キャプチャを停止します。
キャプチャ、2 値化、トリガ処理、パタ
ーン一致処理、階調変換、フィルタ、膨
張・収縮を設定する、タブコントローラ
ーです。
2 値化画像処理の結果です、パターン一
致率を表示します。
© 2003, 2016 Interface Corporation. All rights reserved.
580
GPC-5520 Help for Windows
4. 画面説明(キャプチャ設定)
①
⑦
②
③
④
⑤
⑥
名称
①キャプチャフレーム数
②データフォーマット
説明
キャプチャするフレーム数を設定しま
す。値を 0 に指定した場合、停止ボタン
が押されるまでキャプチャします。
32 ビットフォーマットを指定します。
24 ビットフォーマットを指定します。
15 ビットフォーマットを指定します。
8 ビットグレイスケールフォーマットを
指定します。
赤成分 8bit フォーマットを指定します。
緑成分 8bit フォーマットを指定します。
青成分 8bit フォーマットを指定します。
2 値化 8bit フォーマットを指定します。
フィルタ 8bit フォーマットを指定しま
す。
640×480 の解像度(NTSC 製品専用)
320×240 の解像度(NTSC 製品専用)
160×120 の解像度(NTSC 製品専用)
768×572 の解像度(PAL 製品専用)
384×286 の解像度(PAL 製品専用)
192×143 の解像度(PAL 製品専用)
使用するチャンネルを設定します。
(多チャンネル製品専用)
画像の開始位置を設定します。
「設定」ボタンで、設定を行います。
キャプチャ停止後の画像に対して、グリ
ッドラインを表示します。
「表示」ボタンで表示します。
RGB 32bit
RGB 24bit
RGB 15bit
GRAY 8bit
R 成分 8bit
G 成分 8bir
B 成分 8bit
2 値化
フィルタ 8bit
③フレームサイズ
640×480
320×240
160×120
768×572
384×286
192×143
④使用チャンネル
⑤開始位置
⑥グリッド表示
© 2003, 2016 Interface Corporation. All rights reserved.
581
GPC-5520 Help for Windows
名称
説明
グリッドライン(実線)となる X 座標を設
定します。
グリッドライン(実線)となる X 座標を設
定します。
設定した幅の間隔でグリッドラインを
引きます。
1 目盛りの値を設定します。
設定した値が画面上の「X/div」の?の
箇所に反映され表示します。
グリッドラインの色を設定します。
PEX-H531322 を使用する場合は、このボ
タンが有効になります。
カメラへの電源の ON/OFF を行います。
ただし、PoCL 規格のカメラ用のカメラコ
ンフィグファイルを読み込んでいない
と動作しません。
X
Y
グリッド幅
1 目盛りの値
色設定
⑦カメラ電源 ON
© 2003, 2016 Interface Corporation. All rights reserved.
582
GPC-5520 Help for Windows
5. 画面説明(2 値化設定)
①
②
③
④
⑤
名称
①色成分設定
説明
R 成分
映像入力データの赤成分に対して 2 値化処理を
行います。
G 成分
映像入力データの緑成分に対して 2 値化処理を
行います。
B 成分
映像入力データの青成分に対して 2 値化処理を
行います。
GRAY 成分
映像入力データの輝度成分に対して 2 値化処理
を行います。
②しきい値
上限
上限しきい値を設定します。
下限
下限しきい値を設定します
③反転設定
通常
上限値と下限値の間が色成分、それ以外が黒にな
ります。(GRAY 成分の場合は白です。)
反転
上限値と下限値の間が黒、それ以外が色成分にな
ります。(GRAY 成分の場合は白です。)
④測定範囲設定※
開始点 X 座標
開始点の X 座標です。(0~639)
開始点 Y 座標
開始点の X 座標です。(0~479)
X 方向への長さ
開始点から X 方向への長さを指定します。
Y 方向への長さ
開始点から Y 方向への長さを指定します。
⑤測定範囲の表示
キャプチャ中、測定範囲の枠を表示します。「色
設定」ボタンで枠の色を指定できます。
※ マウスドラッグによる指定も可能です。マウスの左ボタンで画面上をドラッグして範囲指
定を行ってください。(四角の枠が表示されます。)
その後、右クリックで「2 値化測定範囲に指定」を選択します。
© 2003, 2016 Interface Corporation. All rights reserved.
583
GPC-5520 Help for Windows
6. 画面説明(トリガ設定)
①
④
②
③
⑤
⑥
⑦
名称
①面積トリガ有効
説明
チェックボックスにチェックを付けると
面積トリガが有効になります。
②面積トリガ範囲
上限値
面積の上限値を設定します。
下限値
面積の下限値を設定します。
③面積トリガ発生条件
面積トリガ発生条件にて範囲内発生か範囲外発生を指定します。
④重心トリガ有効
チェックボックスにチェックを付けると
重心トリガが有効になります。
⑤重心トリガ※
開始点 X 座標
開始点の X 座標です。(0~639)
開始点 Y 座標
開始点の X 座標です。(0~479)
X 方向長さ
開始点から X 方向への長さを指定します。
Y 方向長さ
開始点から Y 方向への長さを指定します。
⑥重心トリガ発生条件
重心トリガ発生条件にて範囲内発生か範囲外発生を指定します。
⑦トリガ範囲の画面表示 表示画面のトリガ範囲の枠を表示します。「色設定」ボタンで枠の
色を指定できます。
※ 面積トリガ、重心トリガのチェックボックス両方を付けた場合、「面積 AND 重心トリガ」
も有効となります。
※ マウスドラッグによる指定も可能です。マウスの左ボタンで画面上をドラッグして範囲指
定を行ってください。(四角の枠が表示されます。)
その後、右クリックで「トリガ範囲に指定」を選択します。
© 2003, 2016 Interface Corporation. All rights reserved.
584
GPC-5520 Help for Windows
7. 画面説明(パターン一致)
①
③
②
⑤
④
⑥
名称
①ファイル
②データ一致率
③パターン一致回数
④自動補正
⑤パターン一致トリガ発生条件
⑥比較開始座標
説明
比較用データをファイルから読み込みます。
データの一致率を設定します。
パターン一致を検出する回数を指定します。
指定した回数に達したら、再キャプチャを実行する
まで、パターン一致によるメッセージ表示は行われ
ません。
自動補正機能使用に有無を指定します。
自動補正機能を使用する場合は、2 値化処理設定と
測定範囲の指定を行ってください。
パターン一致する条件を設定します。
自動補正機能を使用しない場合に設定します。
データの比較を開始する座標を指定してください。
© 2003, 2016 Interface Corporation. All rights reserved.
585
GPC-5520 Help for Windows
8. パターン一致機能の使用方法
①
2 値化の設定
「2 値化処理」のタブコントロール上で 2 値化処理条件を設定し、「適応」ボタンをクリック
します。
②
比較データの指定
まず、比較データを指定します。指定方法は 2 通りです。
ファイルからの読み込み
「パターン一致」のタブコントロールの「ファイル」ボタ
ンより Bmp 形式の比較データファイルを読み込みます。
必ず「モノクロビットマップ」で保存されたファイルを指
定してください。また、画像データは「黒」と「白」の色
データです。
キャプチャ後のデータから指定 データフォーマットを「2 値化 8bit」に指定して、比較元
となる対象物をキャプチャします。マウスの左ボタンで画
面上をドラッグしながら、比較データを選択してくださ
い。(四角の枠が表示されます。)。その後、右クリックで
「比較データに指定」を選択します。
© 2003, 2016 Interface Corporation. All rights reserved.
586
GPC-5520 Help for Windows
③
パターン一致機能の設定
「パターン一致」のタブコントロール上でパターン一致条件を設定し、「適応」ボタンをクリ
ックします。
④
キャプチャ実行
キャプチャを開始します。パターン一致機能は 2 値化されたデータを比較対象としますので、
データフォーマットが「2 値化 8bit」によるキャプチャで実行したほうが、状況が把握しやす
いでしょう。
⑤
パターン一致検出
パターン一致が検出された時、メッセージボックスが表示されます。
そのときの一致率も表示されます。
© 2003, 2016 Interface Corporation. All rights reserved.
587
GPC-5520 Help for Windows
9. 画面説明(階調変換)
②
①
③
④
⑤
名称
①階調変換有効
説明
チェックを付けると階調変換処理が有効
となります。
階調変換データを選択します。
スルー、反転、4 階調、8 階調、16 階調、
32 階調、64 階調を選択可能です。
②で選択した階調変換データを更新しま
す。
チェックを付けた色成分の階調変換テー
ブルが更新されます。
②で選択した階調変換テーブルデータが
表示されます。
また、直接編集する事も可能です。
②階調変換データ選択
③LUT セット
④R/G/B/GRAY
⑤階調変換データ
© 2003, 2016 Interface Corporation. All rights reserved.
588
GPC-5520 Help for Windows
10. 画面説明(フィルタ処理)
①
③
②
④
名称
①フィルタ処理有効
説明
チェックを付けるとフィルタ処理が有効
となります。
空間フィルタ係数の値を直接入力する事
ができます。
差分型空間フィルタ係数の値を直接入力
する事ができます。
選択したフィルタ係数の値が②と③に反
映されます。
②空間フィルタ係数
③差分型エッジフィルタ係数
④フィルタ選択
© 2003, 2016 Interface Corporation. All rights reserved.
589
GPC-5520 Help for Windows
11. 画面説明(膨張・収縮処理)
①
③
④
②
名称
①膨張・収縮処理有効
②段選択
③膨張/収縮
④4 連結/8 連結
説明
チェックを付けると膨張・収縮処理が有効となります。
段数を選択します。
各段の膨張・収縮処理を選択します。
②で選択した段までの設定が反映されます。
各段の近傍を選択します。
②で選択した段までの設定が反映されます。
© 2003, 2016 Interface Corporation. All rights reserved.
590
GPC-5520 Help for Windows
12. 画面説明(物理メモリ設定)
x64 環境専用の機能です。x64 環境下で確保された物理メモリサイズの確認と、サイズの
変更を行う事ができます。
PEX-H531322 をご使用の場合は、各チャンネルに対して物理メモリを割り当てる必要があ
ります。キャプチャ設定画面上の「使用チャンネル」を切り替えることで設定ができます。
①
①のサイズ欄に確保済の物理メモリのサイズを表示しています。
サイズ欄に確保したいサイズ(16 進数)を入力して「適用」ボタンをクリックしてください。
サイズ変更処理が成功すると、以下のようなメッセージが表示されます。
サイズ変更を反映させるには、ImgCapture.exe を終了し OS の再起動を行ってください。OS 再
起動後、ImgCapture.exe を起動し、「Memory Setting」ダイアログ上に確保されたサイズが表示
されています。
(注意)
ご使用の PC 環境によっては、指定したサイズで物理メモリを確保できるとは限りません。
お客様自身で最適なサイズを確保していただきますようお願い致します。
© 2003, 2016 Interface Corporation. All rights reserved.
591
GPC-5520 Help for Windows
13. 画面説明(ステータスバー)
①
②
③
④
⑤
名称
①カーソル
②面積値
③重心値
④測定範囲
⑥
説明
マウスのカーソル座標を表示します。
測定対象物の面積値を表示します。
測定対象物の重心値を表示します。
2 値化処理の測定範囲を表示します。
(X 座標,Y 座標) X:X 方向の長さ Y:Y 方向の長さ
⑤トリガ範囲
トリガ範囲を表示します。
(X 座標,Y 座標) X:X 方向の長さ Y:Y 方向の長さ
⑥トリガ状態
トリガの状態を表示します。
ON でトリガ発生、OFF でトリガ未発生です。
⑦一致率
パターン一致機能によるデータの一致率を表示します。
※ ②~⑦は 1 フレーム毎に表示されます。
© 2003, 2016 Interface Corporation. All rights reserved.
592
⑦
GPC-5520 Help for Windows
6.2
自己診断プログラム
汎用入出力の動作確認を行う為のプログラムです。
※本プログラムでは、チャンネル 1,チャンネル 2 の診断は行えません。
【使用方法】
1. ソフトウェア(GPC-5520)のインストール完了後、
「スタート」メニューより「プログラム」「Interface GPC-5520」-「ImgDiag」を起動します。
2. プログラムを起動すると、「インタフェースモジュールの選択」ダイアログボックスが表示
されます。
「ボード検索」をクリックします。システムに実装されているデバイスが一覧されるので、
診断を行うデバイスを選択し、「OK」をクリックして下さい。
図 2.ボード選択画面
※このユーティリティで同時に複数のインタフェースモジュールをオープンすることはできま
せん。
※同一型式のインタフェースモジュールを複数枚使用する場合には、RSW1,RSW2 の設定値をイ
ンタフェースモジュール毎で異なる値に
設定してください。
© 2003, 2016 Interface Corporation. All rights reserved.
593
GPC-5520 Help for Windows
3.
画面上に現在の入力信号の状態、出力信号の状態が表示されます。
汎用入力
汎用入力の状態表示されます。
汎用出力
画面上に表示されているボタンをクリックすると、出力信号の ON/OFF
を切り替えることができます。
ON
OFF
図 3.実行画面
© 2003, 2016 Interface Corporation. All rights reserved.
594
GPC-5520 Help for Windows
第7章 重要な情報
保証の内容と制限
弊社は本ドキュメントに含まれるソースプログラムの実行が中断しないこと、またはその実行に
誤りが無いことを保証していません。
本製品の品質や使用に起因する、性能に起因するいかなるリスクも使用者が負うものとします。
弊社はドキュメント内の情報の正確さに万全を期しています。万一、誤記または誤植などがあっ
た場合、弊社は予告無く改訂する場合があります。ドキュメントまたはドキュメント内の情報に
起因するいかなる損害に対しても弊社は責任を負いません。
ドキュメント内の図や表は説明のためであり、ユーザ個別の応用事例により変化する場合があり
ます。
著作権、知的所有権
弊社は本製品に含まれるおよび本製品に対する権利や知的所有権を保持しています。
本製品はコンピュータ ソフトウェア、映像/音声(例えば図、文章、写真など)を含んでいます。
医療機器/器具への適用における注意
弊社の製品は人命に関わるような状況下で使用される機器に用いられる事を目的として設計、製
造された物では有りません。
弊社の製品は人体の検査などに使用するに適する信頼性を確保する事を意図された部品や検査機
器と共に設計された物では有りません。
医療機器、治療器具などの本製品の適用により、製品の故障、ユーザ、設計者の過失などにより、
損傷/損害を引き起こす場合が有ります。
複製の禁止
弊社の許可なく、本ドキュメントの全て、または一部に関わらず、複製、改変などを行うことは
できません。
責任の制限
弊社は、弊社または再販売者の予見の有無にかかわらず発生したいかなる特別損害、偶発的損害、
間接的な損害、重大な損害について、責任を負いません。
本製品(ハードウェア,ソフトウェア)のシステム組み込み、使用、ならびに本製品から得られる
結果に関する一切のリスクについては、本製品の使用者に帰属するものとします。
本製品に含まれるバグ、あるいは本製品の供給(納期遅延)、性能もしくは使用に起因する付帯的
損害もしくは間接的損害に対して、弊社に全面的に責がある場合でも、弊社はその製品に対する
改良(正常に動作する)、代品交換までとし、金銭面での賠償の責任は負わないものとしますので、
予めご了承ください。
本製品(ソフトウェアを含む)は、日本国内仕様です。本製品を日本国外で使用された場合、弊
社は一切責任を負いかねます。また、弊社は本製品に関し、海外での保守サービスおよび技術サ
ポート等は行っておりません。
© 2003, 2016 Interface Corporation. All rights reserved.
595
GPC-5520 Help for Windows
商標/登録商標
本書に掲載されている会社名、製品名は、それぞれ各社の商標または登録商標です。
© 2003, 2016 Interface Corporation. All rights reserved.
596