gpc-5520 - · pdf...
TRANSCRIPT
IMAGE(PCI/C-PCI)
www.interface.co.jp
GPC-5520 カラー画像入力インタフェースモジュール用 Windows ドライバ
Help for Windows
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
1
目 次
第 1 章 はじめに .................................................2
1.1 概要 ...........................................................................2
1.2 特長 ...........................................................................2
第 2 章 製品仕様 .................................................3
2.1 基本仕様 .......................................................................3
2.2 製品構成 .......................................................................5
2.3 x64 環境上の使用について........................................................7
第 3 章 導入方法 .................................................9
3.1 インストール手順 ...............................................................9
3.2 実行手順 .......................................................................9
3.3 インタフェースモジュール固有情報 ..............................................27
3.4 クラスライブラリの参照方法 ....................................................33
第 4 章 リファレンス ............................................35
4.1 関数一覧 ......................................................................35
4.2 機能対応一覧 ..................................................................38
4.3 関数個別説明 ..................................................................41
4.4 構造体説明 ...................................................................467
4.5 戻り値一覧 ...................................................................519
4.6 動作仕様 .....................................................................521
第 5 章 サンプルプログラム .....................................564
5.1 ImgSmpl ......................................................................565
5.2 ImgBin .......................................................................566
5.3 ImgTrigger ...................................................................567
5.4 ImgSdram .....................................................................568
5.5 ImgPtn .......................................................................569
5.6 ImgContinuation ..............................................................570
5.7 ImgMeasure ...................................................................571
5.8 ImgLUT .......................................................................572
5.9 ImgFilter ....................................................................573
5.10 ImgDilationErosion ...........................................................574
5.11 ImgLbl .......................................................................575
5.12 ImgSaveAvi ...................................................................576
5.13 ImgCap .......................................................................577
5.14 ImgSprString .................................................................578
5.15 ImgSprDateTime ...............................................................578
第 6 章 ユーティリティ .........................................579
6.1 画像キャプチャユーティリティ .................................................579
6.2 自己診断プログラム ...........................................................593
第 7 章 重要な情報 .............................................595
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
2
第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 をサポートしていますので、開発中に関数の詳細説明な
ど、簡単に参照することができます
●インタフェースモジュールの自己診断を行うプログラムが付属しています。
GPC-4116 On-line Help for Windows
© 2002 Interface Corporation. All rights reserved.
3
第2章 製品仕様
2.1 基本仕様 大デバイス数 256 デバイス
PCI/CPZ/CTP-55xx
CBI/CSI/PEX/LPC-530x15
PCI-530111
NTSC 規格準拠 映像入力信号
PCI/CPZ/CTP-55013x
PEX-530135
PAL 規格準拠
PCI/CPZ/CTP-552x
PCI/CPZ/CTP-550131
PCI-530111
1 チャンネル
PCI-550312 3 チャンネル
PCI/CPZ/CTP-553x
PCI/CPZ/CTP-550135
CBI/CSI/PEX/LPC-530115
PEX-530135
5 チャンネル
入力チャンネル数
PEX-H531322 2 チャンネル
NTSC 信号
640×480、320×240、160×120
PAL 信号
768×572、384×286、192×143
ビデオ・デコーダ
解像度
CameraLink
640×480
PCI/CPZ/CTP-55xx
CBI/CSI/PEX/LPC-530x15
NTSC 規格準拠 映像出力信号
PCI/CPZ/CTP-55013x
PEX-530135
PAL 規格準拠
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)
フレーム転送完了
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
4
面積トリガ
重心トリガ
面積 AND 重心トリガ
パターン一致検出
同期ズレ発生
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
5
2.2 製品構成
製品構成 ファイル名 説明
弊社管理用ファイル GPC5520.ver 弊社ソフト管理用ファイル
新情報ドキュメント Readme.htm 新ドキュメント掲載ファイル
インストールプログラム Setup.exe インストール用ファイル
キャプチャプログラム ImgCapture.exe インタフェースモジュール動作確認用プログラム
自己診断プログラム ImgDiag.exe インタフェースモジュール自己診断プログラム
サンプルプログラム
ImgCap キャプチャサンプルプログラム(マニュアル記載プログラム)
ImgSmpl 1 フレームキャプチャサンプルプログラム
ImgBin 2 値化サンプルプログラム
ImgTrigger 面積、重心一致トリガサンプルプログラム
ImgSdram SDRAM キャプチャサンプルプログラム
ImgPtn パターン一致サンプルプログラム
ImgContinuation 連続フレーム取込みサンプルプログラム
ImgMeasure 2 値画像処理サンプルプログラム
ImgLut 階調変換処理サンプルプログラム
ImgFilter フィルタ処理サンプルプログラム
ImgDilationErosion 膨張・収縮処理サンプルプログラム
ImgLbl ラベリング処理サンプルプログラム
ImgSaveAvi 動画(Avi 形式)ファイルを保存するサンプルプログラム
ImgSprString 文字列をスーパーインポーズするサンプルプログラム
Visual C++ 6.0
ImgSprDateTime 日時時間をスーパーインポーズするサンプルプログラム
ImgCap キャプチャサンプルプログラム(マニュアル記載プログラム)
ImgSmpl 1 フレームキャプチャサンプルプログラム
ImgBin 2 値化サンプルプログラム
ImgTrigger 面積、重心一致トリガサンプルプログラム
ImgSdram SDRAM キャプチャサンプルプログラム
ImgPtn パターン一致サンプルプログラム
ImgContinuation 連続フレーム取込みサンプルプログラム
ImgMeasure 2 値画像処理サンプルプログラム
ImgLut 階調変換処理サンプルプログラム
ImgFilter フィルタ処理サンプルプログラム
ImgDilationErosion 膨張・収縮処理サンプルプログラム
ImgLbl ラベリング処理サンプルプログラム
ImgSprString 文字列をスーパーインポーズするサンプルプログラム
Visual Basic 6.0
ImgSprDateTime 日時時間をスーパーインポーズするサンプルプログラム
ImgSmpl 1 フレームキャプチャサンプルプログラム
ImgBin 2 値化サンプルプログラム
ImgTrigger 面積、重心一致トリガサンプルプログラム
ImgSdram SDRAM キャプチャサンプルプログラム
ImgPtn パターン一致サンプルプログラム
ImgContinuation 連続フレーム取込みサンプルプログラム
ImgMeasure 2 値画像処理サンプルプログラム
ImgLut 階調変換処理サンプルプログラム
ImgFilter フィルタ処理サンプルプログラム
ImgDilationErosion 膨張・収縮処理サンプルプログラム
Delphi 5/6/7 Studio
ImgLbl ラベリング処理サンプルプログラム
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
6
製品構成 ファイル名 説明
ImgSmpl バスマスタ キャプチャサンプルプログラム
ImgSprString 文字列をスーパーインポーズするサンプルプログラム
Visual C# .NET
ImgSprDateTime 日時時間をスーパーインポーズするサンプルプログラム
ImgSmpl バスマスタ キャプチャサンプルプログラム
ImgSprString 文字列をスーパーインポーズするサンプルプログラム
Visual Basic .NET
ImgSprDateTime 日時時間をスーパーインポーズするサンプルプログラム
Delphi .NET ImgSmpl バスマスタ キャプチャサンプルプログラム
DLL IfImg.dll ダイナミックリンクライブラリファイル
IfImg.lib インポートライブラリファイル(Visual C++用)
IfSaveFile.dll ダイナミックリンクライブラリファイル
IfSaveFile.lib インポートライブラリファイル(Visual C++用)
CP552x.sys
CP553x.sys
CP530x15.sys
デバイスドライバ
CP530135.sys
Windows 2000 以降の OS 用ドライバ
GPC552x.inf
GPC553x.inf
GPC530x15.inf
inf ファイル
GPC530135.inf
Windows 2000 以降の OS 用ドライバインストールファイル
GPC552x.SLD
GPC553x.SLD
GPC530x15.SLD
SLD ファイル
GPC530135.SLD
Windows Embedded 用ドライバ SLD ファイル
ヘッダファイル IfImg.h Visual C++ 用ヘッダファイル
IfImg.bas Visual Basic 用ヘッダファイル
IfImg.pas Delphi 用ヘッダファイル
IfSaveFile.h Visual C++ 用ヘッダファイル
IfSaveFile.bas Visual Basic 用ヘッダファイル
IfSaveFile.pas Delphi 用ヘッダファイル
Help Help.pdf Help(PDF 形式)
Help_NET.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 を使用し
て作成しています。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
7
2.3 x64 環境上の使用について
メインメモリの操作 x64 環境では、ユーザアプリケーション上で確保したメインメモリ領域に対して DMA 転送する
事ができません。
弊社 Windows ドライバは、OS が起動してドライバがロードされるタイミングで、連続した物理
メモリをカーネル内で確保し、確保したメモリ領域に DMA 転送を行います。確保するデータサイ
ズは 256MB 分 (※ Windows Xp/Server2003 の場合は約 32MB)で、確保する場所は 32bit 空間内と
なります。
ドライバは、ユーザアプリケーション側で ImgSetBuffer 関数を介して要求を受けると、指定サ
イズ分の物理メモリを論理空間へマッピングして、ユーザアプリ上でメモリアクセス可能にしま
す。ImgGetMemPtrValue 関数で論理メモリの先頭アドレスをポインタ変数として取得し、画像デ
ータをポインタ操作で使用する事ができます。
※PEX-H531322 は 2ch 分の物理メモリをそれぞれ割り当てています。
0xFFFFFFFF_FFFFFFFF
0x00000000_FFFFFFFF
0x00000000_00000000
論理メモリ
256MB 分確保
物理メモリ空間
カーネル空間 ユーザ空間
ユーザアプリケーション
ポインタ変数
論理メモリへマッピング
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
8
物理メモリの確保結果の確認 OS 起動時に物理メモリを確保しますが、確保結果はイベントログとして保存されています。イ
ベントビューアの「システム」にドライバファイルと同じソース名でログとして情報を残してい
ます。
物理メモリの確保に成功すると、説明欄に「ドライバファイル -- It succeeded in allocating
a physical memory.」と記載されます。確保に失敗すると「ドライバファイル -- It failed in the
allocation of a physical memory.」と記載されます。
物理メモリの確保サイズの変更 OS 起動時に物理メモリを確保するサイズを変更する事も可能です。
サイズの変更は、キャプチャユーティリティ(ImgCapture.exe)で行う事ができます。
詳細は、「6.1 画像キャプチャユーティリティ」の「12. 画面説明(物理メモリ設定)」を参照してく
ださい。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
9
第3章 導入方法
3.1 インストール手順
README.HTM のインストール方法を参照してください。
3.2 実行手順
同一型式のインタフェースモジュールを複数枚使用する場合は、インタフェースモジュール上の
ロータリスイッチ RSW1,RSW2 の設定値が同一型式同士で重複しないように設定してからシステム
に実装してください。
同一型式で複数のインタフェースモジュールが存在する場合、インタフェースモジュールを一意
に識別するための番号となります。重複していた場合、本ソフトウェアは正常に動作いたしませ
ん。
以下に基本的な実行手順の流れを説明します。
PEX-H531322 をご使用になる場合は、本章と「4.6 動作仕様」の「■PEX-H531322 の制御方法」
の内容も参照してください。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
10
キャプチャ(バスマスタ)
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 以上に設定した場合は、設定値のフレーム数をキャプチャした後、自動停止し
ます。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
11
6.キャプチャ終了の監視
ImgGetCaptureStatus 関数でキャプチャ状態を定期的に監視します。ImgGetCaptureStatus 関数
で取得した IMGCAPSTATUS 構造体のメンバ引数 dwCapture 変数の bit0 が 0 になるまで監視しま
す。
bit0 が 0 になったとき、キャプチャが終了したと判断します。
また、IMGCAPSTATUS 構造体のメンバ変数 dwFrameCnt で、転送完了したフレーム数を取得でき
るので、ImgStartCapture 関数で指定した転送フレーム数と比較する方法もあります。
7.キャプチャデータ取得
キャプチャデータは、ImgSetBuffer 関数にて設定したメモリ領域にバスマスタ転送されます。
キャプチャーデータは、 初奇数フィールドのデータが転送され、奇数フィールドのデータが
全て転送後、偶数フィールドのデータが転送されます。
8.描画、画像処理
取得したキャプチャデータを元に、画像処理、描画等を行います。
9.終了処理
ImgClose 関数でデバイスの終了処理を行います。アプリケーションでは、必ずクローズ処理を
行ってから終了してください。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
12
キャプチャ(バスマスタ、割り込み使用時)
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 関数を実行するまでキャプチャします。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
13
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 関数でデバイスの終了処理を行います。アプリケーションでは、必ずクローズ処理を
行ってから終了してください。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
14
キャプチャ(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 関数でデバイスの終了処理を行います。アプリケーションでは、必ずクローズ処理を
行ってから終了してください。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
15
キャプチャ(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 関数でキャプチ
ャの停止を実行します。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
16
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 関数でデバイスの終了処理を行います。アプリケーションでは、必ずクローズ処理を
行ってから終了してください。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
17
トリガ発生条件の設定とトリガ検知
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 関数でデバイスの終了処理を行います。アプリケーションでは、必ずクローズ処理を
行ってから終了してください。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
18
パターン一致
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 関数でデバイスの終了処理を行います。アプリケーションでは、必ずクローズ処理を
行ってから終了してください。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
19
指定対象物の面積値、重心値、フェレ径、傾き角の取得
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 関数でデバイスの終了処理を行います。アプリケーションでは、必ずクローズ処理を
行ってから終了してください。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
20
指定対象物の射影データの取得
(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 関数でデバイスの終了処理を行います。アプリケーションでは、必ずクローズ処理を
行ってから終了してください。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
21
階調変換画像の取込み
55x5 系,55x6 系,PEX-H531322 専用です。
1.初期化
インタフェースモジュールを ImgOpen 関数で初期化します。
初期化が正常終了すると、以後、インタフェースモジュールへのアクセスが可能となります。
2.階調変換テーブルの設定
ImgSetLut 関数にて、階調変換テーブルのデータを設定します。
3.階調変換有効
ImgSetConversionConfig 関数の引数 dwCnvEnabled へ 0x01 を指定します。
4.キャプチャ準備~キャプチャ開始~キャプチャ終了
前述の キャプチャ手順と同様の処理を行ってください。
5.描画、画像処理
取得したキャプチャデータを元に、画像処理、描画等を行います。
6.終了処理
ImgClose 関数でデバイスの終了処理を行います。アプリケーションでは、必ずクローズ処理を
行ってから終了してください。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
22
フィルタ画像の取込み
55x5 系,55x6 系,PEX-H531322 専用です。
1.初期化
インタフェースモジュールを ImgOpen 関数で初期化します。
初期化が正常終了すると、以後、インタフェースモジュールへのアクセスが可能となります。
2.対象色成分の指定
ImgSetColorIngredient 関数で、色成分を指定します。
3.フィルタ処理の選択
ImgSetFilter 関数でフィルタ係数を設定します。
4.フィルタ処理の有効
ImgSetConversionConfig 関数の引数 dwCnvEnabled へ 0x02 を指定します。
5.キャプチャ準備~キャプチャ開始~キャプチャ終了
前述の キャプチャ手順と同様の処理を行ってください。
6.描画、画像処理
取得したキャプチャデータを元に、画像処理、描画等を行います。
7.終了処理
ImgClose 関数でデバイスの終了処理を行います。アプリケーションでは、必ずクローズ処理を
行ってから終了してください。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
23
膨張・収縮画像の取込み
55x5 系,55x6 系,PEX-H531322 専用です。
1.初期化
インタフェースモジュールを ImgOpen 関数で初期化します。
初期化が正常終了すると、以後、インタフェースモジュールへのアクセスが可能となります。
2.対象色成分の指定
ImgSetColorIngredient 関数で、色成分を指定します。
3.膨張・収縮設定
ImgSetDil_Er 関数にて、処理段数と各段に対する膨張処理、収縮処理の選択、そして連結数を
選択します。
4.2 値化処理の設定
ImgSetBinarizationConfig 関数にて、2値化処理設定を行います。
5.キャプチャ準備~キャプチャ開始~キャプチャ終了
前述の キャプチャ手順と同様の処理を行ってください。
6.描画、画像処理
取得したキャプチャデータを元に、画像処理、描画等を行います。
7.終了処理
ImgClose 関数でデバイスの終了処理を行います。アプリケーションでは、必ずクローズ処理を
行ってから終了してください。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
24
ラベリング画像の取込み
55x6 系,PEX-H531322 専用です。
1.初期化
インタフェースモジュールを ImgOpen 関数で初期化します。
初期化が正常終了すると、以後、インタフェースモジュールへのアクセスが可能となります。
3.2 値化処理の設定
ImgSetBinarizationConfig 関数にて、2値化処理設定を行います。
4.ラベリング処理の設定
ImgSetLabelingConfig 関数にて、ラベリング処理時の連結数を選択します。
5.キャプチャ準備~キャプチャ開始~キャプチャ終了
前述の キャプチャ手順と同様の処理を行ってください。
6.描画、画像処理
取得したキャプチャデータを元に、画像処理、描画等を行います。
7.終了処理
ImgClose 関数でデバイスの終了処理を行います。アプリケーションでは、必ずクローズ処理を
行ってから終了してください。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
25
ラベリング処理画像による画像処理結果の取得
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 関数でデバイスの終了処理を行います。アプリケーションでは、必ずクローズ処理を
行ってから終了してください。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
26
スーパーインポーズ
PCI-540111、PEX-H550411、CPZ-550411 専用です。
1.初期化
インタフェースモジュールを ImgOpen 関数で初期化します。
初期化が正常終了すると、以後、インタフェースモジュールへのアクセスが可能となります。
2.スーパーインポーズ画像の作成
スーパーインポーズ用の RGB24bit のビットマップ形式の画像データを作成します。
3.スーパーインポーズ画像の設定
ImgSetImposeImage 関数で、デバイスのオンボードメモリへ画像データを転送します。
4.スーパーインポーズ画像の有効
ImgSetImposeImage 関数で、スーパーインポーズの設定と、スーパーインポーズを有効にしま
す。
5.終了処理
ImgClose 関数でデバイスの終了処理を行います。アプリケーションでは、必ずクローズ処理を
行ってから終了してください。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
27
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) IN/OUT8 ~ IN/OUT1
GPC-5520(CH2) IN/OUT16 ~ IN/OUT9
GPC-5520(CH3) IN/OUT24 ~ IN/OUT17
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
28
ImgInputDI関数, ImgOutputDO関数を実行した場合、それぞれ以下の入出力ピンを制御します。
<CH1 のデバイス>
デバイスの
ピン番号 IN8 IN7 ・・・ IN2 IN1
ImgInputDI関数で
制御する INx IN8 IN7 ・・・ IN2 IN1
デバイスの
ピン番号 OUT8 OUT7 ・・・ OUT2 OUT1
ImgOutputDO関数で
制御する OUTx OUT8 OUT7 ・・・ OUT2 OUT1
<CH2 のデバイス>
デバイスの
ピン番号 IN16 IN15 ・・・ IN10 IN9
ImgInputDI関数で
制御する INx IN8 IN7 ・・・ IN2 IN1
デバイスの
ピン番号 OUT16 OUT15 ・・・ OUT10 OUT9
ImgOutputDO関数で
制御する OUTx OUT8 OUT7 ・・・ OUT2 OUT1
<CH3 のデバイス>
IMC-T5541(y)では制御することが出来ません。
デバイスの
ピン番号 IN24 IN23 ・・・ IN18 IN17
ImgInputDI関数で
制御する INx IN8 IN7 ・・・ IN2 IN1
IMC-T5541(y)では制御することが出来ません。
デバイスの
ピン番号 OUT24 OUT23 ・・・ OUT18 OUT17
ImgOutputDO関数で
制御する OUTx OUT8 OUT7 ・・・ OUT2 OUT1
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
29
使用可能関数
・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
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
30
●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 に搭載されている画像
機能には、使用できる関数に制限があります。
製品名 デバイス名 DIO 機能
タフコン製品(ITC-x5539(y))
I/O タッチパネル CD シリーズ(TIO-N5539x(y))
マザコン製品(IMC-T5542(y))
エコ 3製品(ECC-xxxxxx)
PCI-550231 サポート
PEX-H550411 PEX-H550411 サポート
CPZ-550411 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関数を実行した場合、それぞれ以下の入出力ピンを制御します。
デバイスの
ピン番号 IN8 IN7 ・・・ IN2 IN1
ImgInputDI関数で
制御する INx IN8 IN7 ・・・ IN2 IN1
デバイスの
ピン番号 OUT8 OUT7 ・・・ OUT2 OUT1
ImgOutputDO関数で
制御する OUTx OUT8 OUT7 ・・・ OUT2 OUT1
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
31
使用可能関数
・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
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
32
●PCI/CPZ-540111, PEX-H540111 固有情報
弊社タフコン製品(ITC-x5539(y))、弊社 I/O タッチパネル CD シリーズ(TIO-N5539x(y))、弊社マザ
コン製品(IMC-T5542(y))、エコ 3 製品(ECC-xxxxxx)、PEX-H550411、CPZ-550411 には、スーパーイ
ンポーズ機能が搭載しています。
製品名 デバイス名 DIO 機能
タフコン製品(ITC-x5539(y))
I/O タッチパネル CD シリーズ(TIO-N5539x(y))
マザコン製品(IMC-T5542(y))
エコ 3製品(ECC-xxxxxx)
PCI-540111 サポート
PEX-H550411 PEX-H540111 未サポート
CPZ-550411 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関数を実行した場合、それぞれ以下の入出力ピンを制御します。
デバイスの
ピン番号 IN16 IN15 ・・・ IN10 IN9
ImgInputDI関数で
制御する INx IN8 IN7 ・・・ IN2 IN1
デバイスの
ピン番号 OUT16 OUT15 ・・・ OUT10 OUT9
ImgOutputDO関数で
制御する OUTx OUT8 OUT7 ・・・ OUT2 OUT1
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
33
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(コールバック関数を使用する場合)
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
34
■参照渡しする変数について
各関数はアンマネージ DLL 関数です。マネージオブジェクトの参照渡しをする際は、
GCHandle 構造体を使用してマネージオブジェクトがコレクトされるのを防いでください。
■構造体について
StructLayoutクラスのオプションに「LayoutKind.Sequential」を指定しています。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
35
第4章 リファレンス
4.1 関数一覧
No 関数名 機能
●初期化関連
1 ImgOpen デバイスをオープンします。
2 ImgClose デバイスをクローズします。
3 ImgGetDeviceInfo 型式、RSW1,RSW2 の設定を取得します。
●キャプチャ/映像出力関連
4 ImgGetCaptureStatus キャプチャ状態を取得します。
5 ImgGetCaptureStatusEx キャプチャ状態を取得します。
(PCI/CTP/CPZ-5521/5523/5531/5533 用)
6 ImgSetBuffer 画像データ転送先バッファを設定します。(64bit 環境専用関数)
7 ImgGetMemPtrValue 確保したメモリの先頭アドレスを取得します。
8 ImgStartCapture キャプチャを開始します。
9 ImgStopCapture キャプチャを停止します。
10 ImgSetPosition 水平/垂直方向の取り込み開始位置を設定します。
11 ImgSetOutputMode 映像出力信号の出力モードを設定します。
●2値画像処理関連
12 ImgSetBinarizationConfig 2 値化処理の設定を行います。
13 ImgSetMeasurementRange 2 値画像処理の測定範囲を設定します。
14 ImgGetMeasurementValue 2 値画像処理の測定結果を取得します。
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 SDRAM 内に領域を確保します。
26 ImgFreeSDRAM SDRAM 内の領域を開放します。
27 ImgSetSDRAM キャプチャする SDRAM 領域を指定します。
28 ImgReadCaptureData 指定した SDRAM 領域に対して、キャプチャデータを取り出します。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
36
29 ImgBmCaptureData 指定した SDRAM 領域に対して、キャプチャデータをバスマスタ方式
で取り出します。
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 ラベル付けされた各ブロックの面積値、重心値、フェレ径、慣性等
価楕円の傾き角を取得します。
●ファイル保存関連
44 IfSaveBitMapFile ビットマップ形式でキャプチャデータを保存します。
●ビデオデコーダ/エンコーダ制御関連
45 ImgSetDecoderConfig ビデオデコーダの設定を行います。
46 ImgSetEncoderConfig ビデオエンコーダの設定を行います。
47 ImgSetGainControl ゲイン調整を行います。
48 ImgSetBlankingLevel ブランキングレベルの調整を行います。
●同期信号異常検出関連
49 ImgSetSyncErrorDetection 異常検出を行う同期信号を選択します。
●カメラ接続関連
50 ImgGetCameraConnectionSta
tus
カメラとの接続状態を取得します。
●OS 情報確認
51 ImgGetOsArchitecture OS 情報を取得します。
●PEX-H531322 専用制御
52 ImgSetCLCaptureConfig 接続カメラの設定を行います。
53 ImgSetCCMode CC 信号の出力方式を設定します。
54 ImgOutputPluse CC 信号を 1パルス分出力します。
55 ImgSerialSend シリアル通信方式でカメラへデータを送信します。
56 ImgSerialReceive シリアル通信方式でカメラからのデータを受信します。
57 ImgGetSerialStatus シリアル通信方式によるデータ受信状態を取得します。
58 ImgSerialClear シリアル通信用の FIFO をクリアします。
59 ImgOutputPower PoCL 規格カメラに外部電源を供給します。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
37
60 ImgSetEncodeCntMode エンコーダパルスカウンタの設定を行います。
61 ImgSetCounterCycle カウンタの周期を設定します。
62 ImgGetCounterValue カウンタ値を取得します。
●スーパーインポーズ機能
63 ImgSetImposeImage スーパーインポーズ画像の設定、スーパーインポーズの有効/無効
の切替え、演算方法を設定します。
64 ImgSetImposeTime スーパーインポーズする時刻の設定を行います。
65 ImgSetImposeDate スーパーインポーズする日時の設定を行います。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
38
4.2 機能対応一覧
●各インタフェースモジュール型式による対応関数一覧 関数名 5520
5530
550131
550135
530111
550231
5521
5531
5522
5532
5523
5533
5524
5534
5525
5535
5526
5536
530115 530215 540111
ImgOpen ○ ○ ○ ○ ○ ○ ○ ○ ○ ○
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 - - - - - - ○ - - -
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
39
関数名 5520
5530
550131
550135
530111
550231
5521
5531
5522
5532
5523
5533
5524
5534
5525
5535
5526
5536
530115 530215 540111
ImgSetDecoderConfig ○ ○ ○ ○ ○ ○ ○ ○ ○ -
ImgSetEncoderConfig ○ ○ ○ ○ ○ ○ ○ ○ ○ -
ImgSetGainControl ○ ○ ○ ○ ○ ○ ○ ○ ○ -
ImgSetBlankingLevel ○ ○ ○ ○ ○ ○ ○ ○ ○ -
ImgSetSyncErrorDetection ○ ○ ○ ○ ○ ○ ○ ○ ○ -
ImgGetCameraConnectionSta
tus ○ ○ ○ ○ ○ ○ ○ ○ ○ -
ImgGetOsArchitecture ○ ○ ○ ○ ○ ○ ○ ○ ○ ○
ImgSetCLCaptureConfig - - - - - - - - - -
ImgSetCCMode - - - - - - - - - -
ImgOutputPluse - - - - - - - - - -
ImgSerialSend - - - - - - - - - -
ImgSerialReceive - - - - - - - - - -
ImgGetSerialStatus - - - - - - - - - -
ImgSerialClear - - - - - - - - - -
ImgOutputPower - - - - - - - - - -
ImgSetEncodeCntMode - - - - - - - - - -
ImgSetCounterCycle - - - - - - - - - -
ImgGetCounterValue - - - - - - - - - -
ImgSetImposeImage - - - - - - - - - ○
ImgSetImposeTime - - - - - - - - - ○
ImgSetImposeDate - - - - - - - - - ○
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
40
インタフェースモジュールの CH 番号によって、一部の機能が対応・未対応となっています。
版数、CH 番号の確認方法は User’s Manual をご参照ください。 解像度 カラーフォーマット 型式 版数/CH 番号
320×240 160×120 R
8bit
G
8bit
B
8bit
RGB
16bit
SDRAM データのメイ
ンメモリへのDMA転
送
12 版 - - - - - - -
12 版/CH01 - - - - - - -
12 版/CH02 ○ ○ ○ ○ ○ - -
PCI-5520
12 版/CH03 以降 ○ ○ ○ ○ ○ ○ -
12 版 ○ ○ ○ ○ ○ - - PCI-5521
12 版/CH01 以降 ○ ○ ○ ○ ○ ○ ○
12 版 - - - - - - -
12 版/CH01 ○ ○ ○ ○ ○ - -
PCI-5522
12 版/CH02 以降 ○ ○ ○ ○ ○ ○ -
12 版 ○ ○ ○ ○ ○ - - PCI-5523
12 版/CH01 以降 ○ ○ ○ ○ ○ ○ ○
12 版 - - - - - - -
12 版/CH01 ○ ○ ○ ○ ○ - -
PCI-5530
12 版/CH02 以降 ○ ○ ○ ○ ○ ○ -
12 版 ○ ○ ○ ○ ○ - - PCI-5531
12 版/CH01 以降 ○ ○ ○ ○ ○ ○ ○
12 版 ○ ○ ○ ○ ○ - - PCI-5532
12 版/CH01 以降 ○ ○ ○ ○ ○ ○ -
12 版 ○ ○ ○ ○ ○ - - PCI-5533
12 版/CH01 以降 ○ ○ ○ ○ ○ ○ ○
12 版 ○ ○ ○ ○ ○ - - CTP/CPZ-552
0 12 版/CH01 以降 ○ ○ ○ ○ ○ ○ -
12 版 ○ ○ ○ ○ ○ - - CTP/CPZ-552
1 12 版/CH01 以降 ○ ○ ○ ○ ○ ○ ○
12 版 ○ ○ ○ ○ ○ - - CTP/CPZ-552
2 12 版/CH01 以降 ○ ○ ○ ○ ○ ○ -
12 版 ○ ○ ○ ○ ○ - - CTP/CPZ-552
3 12 版/CH01 以降 ○ ○ ○ ○ ○ ○ ○
12 版 ○ ○ ○ ○ ○ - - CTP/CPZ-553
0 12 版/CH01 以降 ○ ○ ○ ○ ○ ○ -
12 版 ○ ○ ○ ○ ○ - - CTP/CPZ-553
1 12 版/CH01 以降 ○ ○ ○ ○ ○ ○ ○
12 版 ○ ○ ○ ○ ○ - - CTP/CPZ-553
2 12 版/CH01 以降 ○ ○ ○ ○ ○ ○ -
12 版 ○ ○ ○ ○ ○ - - CTP/CPZ-553
3 12 版/CH01 以降 ○ ○ ○ ○ ○ ○ ○
CSI/CBI-530
115
12 版 以降 ○ ○ ○ ○ ○ ○ -
CSI/CBI-530
215
12 版 以降 ○ ○ ○ ○ ○ ○ -
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
41
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"(
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
42
ByVal LpszName As String ‘ デバイス名
)As Integer
●Delphi 8
class function ImgOpen(
lpszName: String;
): Integer; static;
【パラメータ】
lpszName オープンするインタフェースモジュールのデバイス名を指定してください。
デバイス名は、以下のようになります。
インタフェースモジュール型式 デバイス名
PCI/CTP/CPZ-5520 PCI/CTP/CPZ-5530
CBI-530115(Tx) CSI-530115 PEX/LPC-530115
PCI/CTP/CPZ-550131 PCI/CTP/CPZ-550135
PEX-530135 PCI-530111 PCI-550231
IFIMGSTx(x : 1~256)
PCI-5521 PCI-5531
CTP/CPZ-5521 CTP/CPZ-5531
IFIMGMEMx(x:1~256)
PCI-5522 PCI-5532
CTP/CPZ-5522 CTP/CPZ-5532
CBI-530215(Tx) CSI-530215 PEX/LPC-530215
IFIMGBINx(x : 1~256)
PCI-5523 PCI-5533
CTP/CPZ-5523 CTP/CPZ-5533
IFIMGPTNx(x : 1~256)
PCI-5524 PCI-5534
CTP/CPZ-5524 CTP/CPZ-5534
IFIMGMSRx(x : 1~16)
PCI-5525 PCI-5535
CTP/CPZ-5525 CTP/CPZ-5535
IFIMGCNVx(x : 1~16)
PCI-5526 PCI-5536
CTP/CPZ-5526 CTP/CPZ-5536
IFIMGLBLx(x : 1~16)
PEX-H531322 IFIMGLBLx(x : 17~32)
PCI-540111 IFIMGST2
PEX-H540111 CPZ-550411 IFIMGSTx(x : 17~32)
【戻り値】
ImgOpen 関数が正常に終了した場合には、有効なハンドルが返されます。
他の関数は、本関数により取得したハンドルを使用してデバイスの制御を行います。
オープンに失敗した場合には、INVALID_HANDLE_VALUE(FFFFFFFFh)が返されます。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
43
【備考】
●デバイス名について
オープンするにはデバイス名を指定します。
カラー画像入力インタフェースモジュールのデバイス名、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)でも確認で
きます。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
44
【使用例】
●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」のデバイスをオープンします。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
45
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
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
46
●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)
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
47
●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」のデバイスのクローズ処理を行います。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
48
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 構造体
へのポインタ
);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
49
●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 戻り値一覧』をご参照くださ
い。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
50
【使用例】
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
51
●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」のデバイス情報を取得します。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
52
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 構造体
へのポインタ
);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
53
●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 戻り値一覧』をご参照くださ
い。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
54
【使用例】
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
55
●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」のキャプチャ状態を取得します。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
56
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 構造体
へのポインタ
);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
57
●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 戻り値一覧』をご参照くださ
い。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
58
【使用例】
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
59
●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」のキャプチャ状態を取得します。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
60
6. ImgSetBuffer 【機能】
転送先バッファの先頭ポインタとサイズ、画像のフォーマットを設定します。
また、SDRAM 領域内のデータ転送用(DMA 転送)のバッファを設定します。
【書式】
●C言語
INT ImgSetBuffer(
HANDLE hDeviceHandle, // デバイスハンドル
PIMGBUFFERINFO pBuffer, // IMGBUFFERINFO 構造体
へのポインタ
DWORD 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, // IMGBUFFERINFO 構造体への
ポインタ
uint dwBufferFormat // カラーフォーマット
);
●Visual C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgSetBuffer(
uint hDeviceHandle, // デバイスハンドル
ref IMGBUFFERINFO pBuffer, // IMGBUFFERINFO 構造体への
ポインタ
uint dwBufferFormat // カラーフォーマット
);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
61
●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 専用です。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
62
●解像度識別子
解像度を変更する場合、以下の識別子を OR 指定します。
意味 識別子 値
NTSC/CameraLink 製品 PAL 製品
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 未対応 768×572
IFIMG_RESOLUTION_384_286 04000000h 未対応 384×286
IFIMG_RESOLUTION_192_143 02000000h 未対応 192×143
●画像処理データ識別子
識別子 値 意味
IFIMG_MEASUEMENT_HSIT 00000200h 濃度分布
IFIMG_MEASUEMENT_PRO 00000400h 射影
IFIMG_MEASUEMENT_LBLCNT 00000800h ラベル数
IFIMG_MEASUEMENT_AREA 00001000h 各ブロックの面積
IFIMG_MEASUEMENT_GRV 00002000h 各ブロックのΣX、ΣY
IFIMG_MEASUEMENT_FERE 00004000h 各ブロックのフェレ径座標
IFIMG_MEASUEMENT_ELLIPSE 00008000h 各ブロックのΣX2、ΣXY、ΣY2
以下の識別子の組み合わせで、各画像処理結果を指定してください。
識別子 ラベル数 面積値 重心値 フェレ径 慣性等価楕円の傾き角
IFIMG_MEASUEMENT_LBLCNT ○ ○ ○ ○ ○
IFIMG_MEASUEMENT_AREA - ○ ○ - ○
IFIMG_MEASUEMENT_GRV - - ○ - ○
IFIMG_MEASUEMENT_FERE - - - ○ -
IFIMG_MEASUEMENT_ELLIPSE - - - - ○
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
63
識別子の対応表 識別子 55x0 55x1 55x2 55x3 55x4 55x5 55x6 530115 530215 530215
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 ― ― ― ― ― ― ― ― ― ―
※ PCI-5520 は、[12]C02 以降のインタフェースモジュールが対応しています。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
64
識別子 55013x 551322
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 ― ○
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ
い。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
65
【使用例】
●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』を参照ください。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
66
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
67
●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 です。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
68
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 確保されたメインメモリのポインタを取得する変数へのポインタを指定してください。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
69
【戻り値】
正常終了した場合は、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)
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
70
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
71
●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)
メインメモリから先頭アドレスを取得します。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
72
8. ImgStartCapture 【機能】
キャプチャ、または画像処理データ転送を開始します。
(画像処理データの転送は CTP/CPZ/PCI-5524/5534/5525/5535/5526/5536 専用です。)
【書式】
●C言語
INT ImgStartCapture(
HANDLE hDeviceHandle, // デバイスハンドル
DWORD dwFrameCnt, // キャプチャフレーム数
DWORD 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 // キャプチャ開始モード
);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
73
●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 繰り返し
ImgStopCapture関数を実行するまでキャプチャします。
0 以外(1~) 指定フレーム数キャプチャ後、停止します。
dwStartMode
キャプチャ開始モードを指定します。識別子の OR 論理を渡すことにより、DMA、SDRAM の
よるキャプチャを同時に実行することが可能です。
ただし、データフォーマットは必ず、同じフォーマットを指定してください。
識別子 値 意味
IFIMG_DMACAPTURE_START 00000001h DMA 転送によるキャプチャ
IFIMG_SDRAMCAPTURE_START 00000002h SDRAM へのキャプチャ
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ
い。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
74
【備考】
繰り返しキャプチャを実行する場合、リングバッファ形式で設定したバッファ領域に対して上
書きされます。
ImgSetBuffer 関数、ImgSetBufferVB 関数で解像度を 640×480 モード(PAL 対応画像入力製品の
場合は 768×572 モード)で指定した場合、映像入力機器から取り込んだデータは、奇数フィー
ルドと偶数フィールドに分離した状態でメインメモリへと転送します。 ■ NTSC 製品の場合
■PAL 製品の場合
640 pixel
480 pixel
奇数フィールド
(ライン 1~240)
偶数フィールド
(ライン 241~480)
768 pixel
572 pixel
奇数フィールド
(ライン 1~286)
偶数フィールド
(ライン 287~572)
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
75
奇数フィールドデータと偶数フィールドデータを交互に配置することで、1 フレームのデータ
となります。
(NTSC 製品の場合)
1 奇数フィールドデータ ライン 1
2 偶数フィールドデータ ライン 241
3 奇数フィールドデータ ライン 2
4 偶数フィールドデータ ライン 242
5 奇数フィールドデータ ライン 3
6 偶数フィールドデータ ライン 243
7 奇数フィールドデータ ライン 4
8 偶数フィールドデータ ライン 244
… … …
479 奇数フィールドデータ ライン 240
480 偶数フィールドデータ ライン 480
(PAL 製品の場合)
1 奇数フィールドデータ ライン 1
2 偶数フィールドデータ ライン 287
3 奇数フィールドデータ ライン 2
4 偶数フィールドデータ ライン 288
5 奇数フィールドデータ ライン 3
6 偶数フィールドデータ ライン 289
7 奇数フィールドデータ ライン 4
8 偶数フィールドデータ ライン 290
… … …
571 奇数フィールドデータ ライン 286
572 偶数フィールドデータ ライン 572
詳細については『4.6 動作仕様』 を参照ください。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
76
【使用例】
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
77
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
78
●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)
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
79
●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 転送によるキャプチャを開始します。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
80
9. ImgStopCapture 【機能】
キャプチャ、または画像処理データ転送を停止します。
【書式】
●C言語
INT ImgStopCapture(
HANDLE hDeviceHandle, // デバイスハンドル
DWORD 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
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
81
●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 DMA キャプチャによる
フレーム単位で転送停止
IFIMG_IMMEDIATE_STOP 00000002h DMA キャプチャによる即停止
IFIMG_SDRAM_FRAME_STOP 00000004h SDRAM キャプチャ
によるフレーム単位で転送停止
IFIMG_SDRAM_IMMEDIATE_STOP 00000008h SDRAM キャプチャによる即停止
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ
い。
【備考】
dwStopMode にフレーム単位での転送停止を指定した場合、関数から戻っても、キャプチャは動
作しています。(フレーム転送が完了するまで)
即停止が有効となります。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
82
【使用例】
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
83
●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」のデバイスに対してキャプチャを停止します。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
84
10. ImgSetPosition
【機能】
キャプチャする画像の、水平位置と垂直位置を調整します。
【書式】
●C言語
INT ImgSetPosition(
HANDLE hDeviceHandle, // デバイスハンドル
INT nHorizontal, // 水平位置
INT 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 // 垂直位置
);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
85
●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 戻り値一覧』をご参照くださ
い。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
86
【備考】
キャプチャ中に本関数を実行することは出来ません。
【使用例】
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
87
●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」の設定を行
います。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
88
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
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
89
●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 00000002h カラーバーを出力します。
IFIMG_OUTMODE_STILL_PICTURE 00000003h 静止画を出力します。
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ
い。
【備考】
IFIMG_OUTMODE_STILL_PICTURE 指定による静止画出力機能は
PCI/CPZ/CTP-5525,5535,5526,5536 専用の機能です。
本関数を実行した瞬間の画像を静止画像として出力します。
静止画出力中に ImgSetConversionConfig 関数で、フィルタ処理や膨張・収縮処理を無効に設定
しないでください。静止画出力が解除されます。
また、静止画出力中にキャプチャを行なうと静止画像がキャプチャされます。
2 値画像、フィルタ画像でキャプチャすると、静止画を 2 値化、フィルタ処理した画像がキャ
プチャされます。
映像出力端子から出力される画像も同様に処理されます。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
90
【使用例】
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
91
●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をカラーバー出力に設定します。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
92
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
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
93
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
94
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
95
●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)
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
96
●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”にします。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
97
13. ImgSetMeasurementRange
面積、重心の測定範囲を設定します。
※解像度設定が「320×240」または「160×120」の場合、面積、重心の機能は使用できません。
【書式】
●C言語
INT ImgSetMeasurementRange(
HANDLE hDeviceHandle, // デバイスハンドル
DWORD dwStartPointX, // 始点の X座標
DWORD dwStartPointY, // 始点の Y座標
DWORD dwXLength, // 始点からの長さ(X 方向)
DWORD dwYLength // 始点からの長さ(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; // 始点の X座標
dwStartPointY: DWORD; // 始点の Y座標
dwXLength: DWORD; // 始点からの長さ(X 方向)
dwYLength: DWORD // 始点からの長さ(Y 方向)
): Integer; stdcall; external 'IfImg.dll';
●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 方向)
);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
98
●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; // 始点の X座標
dwStartPointY: Cardinal; // 始点の Y座標
dwXLength: Cardinal; // 始点からの長さ(X 方向)
dwYLength: Cardinal // 始点からの長さ(Y 方向)
): Integer; static;
【パラメータ】
hDeviceHandle ImgOpen関数で取得したデバイスハンドルを指定してください。
dwStartPointX 測定範囲の開始座標における X座標を指定します。(0~639)
dwStartPointY 測定範囲の開始座標における Y座標を指定します。(0~479)
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
99
dwXLength 開始座標からの X軸方向への長さを指定します。(1~640)
dwYLength
開始座標からの Y軸方向への長さを指定します。(1~480)
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESS が返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ
い。
【備考】
開始座標は測定範囲の左上となります。
(X,Y)
640
480
開始座標 dwXLength
dwYLength
(0,0)
(479,639)
X:dwStartPointX
Y:dwStartPointY
【使用例】
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
100
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
101
●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)
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
102
●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 とした測定範囲を設定します。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
103
14. ImgGetMeasurementValue
キャプチャ処理を完了した 新のフレームに対する面積、重心値を取得します。
※解像度の設定が「320×240」または「160×120」の場合、本関数は実行できません。
【書式】
●C言語
INT ImgGetMeasurementValue(
HANDLE hDeviceHandle, // デバイスハンドル
PDWORD pdwArea, // 面積
PDWORD pdwXcoordinates, // 重心 X座標
PDWORD pdwYcoordinates, // 重心 Y座標
PDWORD pdwFrameNum // フレーム数
);
●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: THandle; // デバイスハンドル
var pdwArea: DWORD; // 面積
var pdwXcoordinates: DWORD; // X 座標
var pdwYcoordinate: DWORD; // Y 座標
var pdwFrameNum: 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, // 重心 X座標
out uint pdwYcoordinates, // 重心 Y座標
out uint pdwFrameNum // フレーム数
);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
104
●Visual C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgGetMeasurementValue(
uint hDeviceHandle, // デバイスハンドル
out uint pdwArea, // 面積
out uint pdwXcoordinates, // 重心 X座標
out uint pdwYcoordinates, // 重心 Y座標
out uint pdwFrameNum // フレーム数
);
●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; // X 座標
var pdwYcoordinate: Cardinal; // Y 座標
var pdwFrameNum: Cardinal // フレーム数
): Integer; static;
【パラメータ】
hDeviceHandle ImgOpen関数で取得したデバイスハンドルを指定してください。
pdwArea 計算された面積値を格納するバッファポインタを指定してください。
pdwXcoordinates 計算された重心の X座標を格納するバッファポインタを指定してください。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
105
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
);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
106
●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_
)
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
107
●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
);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
108
●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
);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
109
●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_
)
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
110
●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 の値は無効なデータ
です。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
111
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
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
112
●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 戻り値一覧』をご参照くださ
い。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
113
●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);
:
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
114
●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)
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
115
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
116
●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);
:
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
117
●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)
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
118
●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
とした測定範囲を設定します。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
119
※キャプチャを実行せずとも、カメラ等の映像機器に接続している限り、取り込んでいるフレ
ームデータに対して、トリガ発生状態を取得することが可能です。ImgGetCaptureStatus関数
で、トリガ発生状態を取得する事が可能です。また、ImgSetEventMask関数で割り込み発生を
有効にすることにより、割り込みイベントによる検知も可能です。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
120
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
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
121
●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 bit14 bit13 bit12 bit11 bit10 bit9 bit8
内容 IN16 IN15 IN14 IN13 IN12 IN11 IN10 IN9
ビット bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
内容 IN8 IN7 IN6 IN5 IN4 IN3 IN2 IN1
0:High 1:Low
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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
122
●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)
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
123
●Delphi 8
var
lpszName: String;
hDeviceHandle: Integer;
wDI; Word:
lpszName := 'IFIMGST1';
hDeviceHandle := IFCIMG.ImgOpen(lpszName);
nRet := IFCIMG.ImgInputDI(hDeviceHandle, wDI);
デバイス名「IFIMGST1」の汎用入力状態を取得します。(変数 wDI に格納します)
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
124
17. ImgOutputDO
【機能】
汎用出力の制御を行います。
【書式】
●C言語
INT ImgOutputDO(
HANDLE hDeviceHandle, // デバイスハンドル
WORD 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
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
125
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
126
●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)
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
127
●Delphi 8
var
lpszName: String;
hDeviceHandle: Integer;
lpszName := 'IFIMGST1';
hDeviceHandle := IFCIMG.ImgOpen(lpszName);
nRet := IFCIMG.ImgOutputDO(hDeviceHandle, $01);
デバイス名「IFIMGST1」の汎用出力の OUT1 のみ Low 出力に設定します。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
128
18. ImgSetEventMask 【機能】
汎用入力割り込み、1 フレーム転送完了割り込み、各種トリガ割り込みのマスク、アンマスク
を設定します。
【書式】
●C言語
INT ImgSetEventMask(
HANDLE hDeviceHandle, // デバイスハンドル
PIMGEVENTTABLE 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 構造体
へのポインタ
);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
129
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
130
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
131
●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 割り込み」「フレーム転送完了割り込み」
をアンマスク(有効に)します。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
132
【使用例 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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
133
●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 によるキャプチャでのフレーム転送完了割り
込みのアンマスクが実行されます。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
134
【使用例 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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
135
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 重心トリガ」
は条件を満たしていれば割り込みは発生します。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
136
19. ImgGetEventMask
【機能】
各種割り込みマスクの設定状態を取得します。
【書式】
●C言語
INT ImgGetEventMask(
HANDLE hDeviceHandle, // デバイスハンドル
PIMGEVENTTABLE 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
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
137
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
138
●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)
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
139
●Delphi 8
var
hDeviceHandle: Integer;
Mask: IFCIMG.IMGEVENTTABLE;
hDeviceHandle := IFCIMG.ImgOpen(“IFIMGST1”); :
:
nRet := IFCIMG.ImgGetEventMask(hDeviceHandle, Mask);
デバイス名「IFIMGST1」のデバイスの割り込みマスク設定を取得します。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
140
20. ImgSetEvent
【機能】
割り込み処理の設定(メッセージ、イベント、コールバック関数の登録)を行います。
ImgSetEventMask でアンマスクした割り込み要因が発生した場合、本関数で設定した割り込み
処理が実行されます。
【書式】
●C言語
INT ImgSetEvent(
HANDLE hDeviceHandle, // デバイスハンドル
PIMGEVENTREQ 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 構造体
へのポインタ
);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
141
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgSetEvent Lib "IfImg.DLL"(
ByVal hDeviceHandle As IntPtr, ‘ デバイスハンドル
ByRef pEvent As IMGEVENTREQ ‘ IMGEVENTREQ 構造体
への参照渡し
)As Integer
●Visual Basic .NET(x86 専用)
Declare Function ImgSetEvent Lib "IfImg.DLL"(
ByVal hDeviceHandle As Integer, ‘ デバイスハンドル
ByRef pEvent As IMGEVENTREQ ‘ 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 戻り値一覧』をご参照くださ
い。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
142
【備考】
※ 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 専用)
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
143
Delegate Sub PIMGCALLBACK( _
ByVal Event As IMGEVENTTABLE, _ ‘ 割り込み要因
ByVal dwFrameCnt As Integer, _ ‘ フレームカウンタ
ByVal dwUser As Integer _ ‘ ユーザデータ
)
●Delphi 8
var
procedure CallProc(
Event: IMGEVENTTABLE; // 割り込み要因
dwFrameCnt Cardinal; // フレームカウンタ
User: Cardinal // ユーザデータ
);forwad;
const
CallProcDelegete: CMLCALLBACK= @CallProc;
○ Event
割り込み要因構造
コールバック関数が実行された要因が格納されています。
構造体の説明については、『4.4 構造体』をご参照ください。
○ dwFrameCnt
コールバック関数が実行された時点での転送されたフレーム数です。(1~FFFFFFFFh)
FFFFFFFFh までカウント後、1に戻ります。
○ dwUser(pUser)
ユーザ・データ
ImgSetEvent 関数実行時で指定したユーザ・データが取得されます。
x86 環境の場合は DWORD 型、x64 環境の場合は PVOID 型となります。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
144
【使用例】
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
145
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
146
●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)
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
147
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
148
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
149
●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)
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
150
●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)を実行。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
151
21. ImgSetEventEx
【機能】
割り込みの設定(メッセージ、イベント、コールバック関数の登録)を行います。
ImgSetEventMask でアンマスクした割り込み要因が発生した場合、本関数で設定した割り込み
処理が実行されます。
【書式】
●C言語
INT ImgSetEventEx(
HANDLE hDeviceHandle, // デバイスハンドル
PIMGEVENTREQEX 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 構造体
へのポインタ
);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
152
●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 戻り値一覧』をご参照くださ
い。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
153
【備考】
※ 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
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
154
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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
155
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
156
●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)
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
157
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
158
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
159
●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)
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
160
●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)を実行。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
161
22. ImgSetChannel
【機能】
指定したチャンネルに切換えます。
【書式】
●C言語
INT ImgSetChannel(
HANDLE hDeviceHandle, // デバイスハンドル
DWORD 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
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
162
●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 切り換えるチャンネルを指定します。
チャンネル番号 識別子 値
PCI 型式 PCI 型式以外
IFIMG_CHANNEL_CN1 00000001h CN1 VIN1
IFIMG_CHANNEL_CN4 00000004h CN4 VIN2
IFIMG_CHANNEL_CN5 00000005h CN5 VIN3
IFIMG_CHANNEL_CN6 00000006h CN6 VIN4
IFIMG_CHANNEL_CN7 00000007h CN7 VIN5
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ
い。
【備考】
・CTP/CPZ/PCI-5531、CTP/CPZ/PCI-5533 を使用する場合、チャンネル切り換えは SDRAM キャプ
チャにも反映されます。
・本関数実行直後に ImgStartCapture 関数を呼び出してキャプチャを開始した場合、正常にキ
ャプチャした画像が得られない場合があります。これは切換えによって、インタフェースモ
ジュールとカメラの出力が同期していない為です。
本関数実行後、約 33ms ほどの同期時間を設ける事により回避してください。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
163
【使用例】
●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)
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
164
●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 に設定します。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
165
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 構造体
へのポインタ
);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
166
●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 戻り値一覧』をご参照くださ
い。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
167
【使用例】
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
168
●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)
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
169
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
170
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
171
●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)
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
172
●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」のデバイスに対して、間引きによるキャプチャ、または多チャンネ
ル切り換え時の設置を行います。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
173
24. ImgSetBufferVB
【機能】
転送先バッファの先頭ポインタとサイズ、画像のフォーマットを設定します。(Visual Basic
専用関数)
【書式】
●Visual Basic
Declare Function ImgSetbufferVB Lib "IfImg.dll"( _
ByVal hDeviceHandle As Long, _ ‘ デバイスハンドル
ByRef pBufferAddress As Any, _ ‘ 転送先バッファ領域への
参照渡し
ByVal dwBufferSize As Long, _ ‘ 転送先バッファサイズ
ByVal 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 As Integer, ‘ 転送先バッファサイズ
ByVal dwBufferFormat As Integer ‘ カラーファーマット
)As Integer
Declare Function ImgSetbufferVB Lib "IfImg.DLL"(
ByVal hDeviceHandle As IntPtr, ‘ デバイスハンドル
ByRef pBufferAddress As Byte, ‘ 転送先バッファ領域への
参照渡し
ByVal dwBufferSize As Integer, ‘ 転送先バッファサイズ
ByVal dwBufferFormat As Integer ‘ カラーファーマット
)As Integer
Declare Function ImgSetbufferVB Lib "IfImg.DLL"(
ByVal hDeviceHandle As IntPtr, ‘ デバイスハンドル
ByRef pBufferAddress As Short, ‘ 転送先バッファ領域への
参照渡し
ByVal dwBufferSize As Integer, ‘ 転送先バッファサイズ
ByVal dwBufferFormat As Integer ‘ カラーファーマット
)As Integer
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
174
Declare Function ImgSetbufferVB Lib "IfImg.DLL"(
ByVal hDeviceHandle As IntPtr, ‘ デバイスハンドル
ByRef pBufferAddress As Integer, ‘ 転送先バッファ領域への
参照渡し
ByVal dwBufferSize As Integer, ‘ 転送先バッファサイズ
ByVal dwBufferFormat As Integer ‘ カラーファーマット
)As Integer
Declare Function ImgSetbufferVB Lib "IfImg.DLL"(
ByVal hDeviceHandle As IntPtr, ‘ デバイスハンドル
ByVal pBufferAddress( ) As Byte, ‘ 転送先バッファ領域への
参照渡し
ByVal dwBufferSize As Integer, ‘ 転送先バッファサイズ
ByVal dwBufferFormat As Integer ‘ カラーファーマット
)As Integer
Declare Function ImgSetbufferVB Lib "IfImg.DLL"(
ByVal hDeviceHandle As IntPtr, ‘ デバイスハンドル
ByVal pBufferAddress( ) As Short, ‘ 転送先バッファ領域への
参照渡し
ByVal dwBufferSize As Integer, ‘ 転送先バッファサイズ
ByVal dwBufferFormat As Integer ‘ カラーファーマット
)As Integer
Declare Function ImgSetbufferVB Lib "IfImg.DLL"(
ByVal hDeviceHandle As IntPtr, ‘ デバイスハンドル
ByVal pBufferAddress( ) As Integer, ‘ 転送先バッファ領域への
参照渡し
ByVal dwBufferSize As Integer, ‘ 転送先バッファサイズ
ByVal dwBufferFormat As Integer ‘ カラーファーマット
)As Integer
●Visual Basic .NET(x86 専用)
Declare Function ImgSetbufferVB Lib "IfImg.DLL"(
ByVal hDeviceHandle As Integer, ‘ デバイスハンドル
ByRef pBufferAddress As Byte, ‘ 転送先バッファ領域への
参照渡し
ByVal dwBufferSize As Integer, ‘ 転送先バッファサイズ
ByVal dwBufferFormat As Integer ‘ カラーファーマット
)As Integer
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
175
Declare Function ImgSetbufferVB Lib "IfImg.DLL"(
ByVal hDeviceHandle As Integer, ‘ デバイスハンドル
ByRef pBufferAddress As Short, ‘ 転送先バッファ領域への
参照渡し
ByVal dwBufferSize As Integer, ‘ 転送先バッファサイズ
ByVal dwBufferFormat As Integer ‘ カラーファーマット
)As Integer
Declare Function ImgSetbufferVB Lib "IfImg.DLL"(
ByVal hDeviceHandle As Integer, ‘ デバイスハンドル
ByRef pBufferAddress As Integer, ‘ 転送先バッファ領域への
参照渡し
ByVal dwBufferSize As Integer, ‘ 転送先バッファサイズ
ByVal dwBufferFormat As Integer ‘ カラーファーマット
)As Integer
Declare Function ImgSetbufferVB Lib "IfImg.DLL"(
ByVal hDeviceHandle As Integer, ‘ デバイスハンドル
ByVal pBufferAddress( ) As Byte, ‘ 転送先バッファ領域への
参照渡し
ByVal dwBufferSize As Integer, ‘ 転送先バッファサイズ
ByVal dwBufferFormat As Integer ‘ カラーファーマット
)As Integer
Declare Function ImgSetbufferVB Lib "IfImg.DLL"(
ByVal hDeviceHandle As Integer, ‘ デバイスハンドル
ByVal pBufferAddress( ) As Short, ‘ 転送先バッファ領域への
参照渡し
ByVal dwBufferSize As Integer, ‘ 転送先バッファサイズ
ByVal dwBufferFormat As Integer ‘ カラーファーマット
)As Integer
Declare Function ImgSetbufferVB Lib "IfImg.DLL"(
ByVal hDeviceHandle As Integer, ‘ デバイスハンドル
ByVal pBufferAddress( ) As Integer, ‘ 転送先バッファ領域への
参照渡し
ByVal dwBufferSize As Integer, ‘ 転送先バッファサイズ
ByVal dwBufferFormat As Integer ‘ カラーファーマット
)As Integer
【パラメータ】
hDeviceHandle ImgOpen関数で取得したデバイスハンドルを指定してください。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
176
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 製品 PAL 製品
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 未対応 768×572
IFIMG_RESOLUTION_384_286 04000000h 未対応 384×286
IFIMG_RESOLUTION_192_143 02000000h 未対応 192×143
●画像処理データ識別子
識別子 値 意味
IFIMG_MEASUEMENT_HSIT 00000200h 濃度分布
IFIMG_MEASUEMENT_PRO 00000400h 射影
IFIMG_MEASUEMENT_LBLCNT 00000800h ラベル数
IFIMG_MEASUEMENT_AREA 00001000h 各ブロックの面積
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
177
IFIMG_MEASUEMENT_GRV 00002000h 各ブロックのΣX、ΣY
IFIMG_MEASUEMENT_FERE 00004000h 各ブロックのフェレ径座標
IFIMG_MEASUEMENT_ELLIPSE 00008000h 各ブロックのΣX2、ΣXY、ΣY2
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
178
以下の識別子の組み合わせで、各画像処理結果を指定してください。
識別子 ラベル数 面積値 重心値 フェレ径 慣性等価楕円の傾き角
IFIMG_MEASUEMENT_LBLCNT ○ ○ ○ ○ ○
IFIMG_MEASUEMENT_AREA - ○ ○ - ○
IFIMG_MEASUEMENT_GRV - - ○ - ○
IFIMG_MEASUEMENT_FERE - - - ○ -
IFIMG_MEASUEMENT_ELLIPSE - - - - ○
識別子の対応表 識別子 55x0 55x1 55x2 55x3 55x4 55x5 55x6 530115 530215
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 ― ― ― ― ― ― ○ ― ―
※ PCI-5520 は、[12]C02 以降のインタフェースモジュールが対応しています。
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ
い。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
179
【使用例】
●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)
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
180
●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 にします。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
181
25. ImgAllocateSDRAM
SDRAM 領域を確保して、ハンドルを取得します。
このハンドルを使用して、SDRAM によるキャプチャ、データの読み出し、比較用画像データの
書き込みを行います。
【書式】
●C言語
INT ImgAllocateSDRAM(
HANDLE hDeviceHandle, // デバイスハンドル
DWORD dwDataFormat, // データフォーマット
DWORD dwXLength, // X 方向長さ
DWORD dwYLength, // Y 方向長さ
DWORD dwFrameCnt, // 確保フレーム数
PHANDE phSDRAMhandle // 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';
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
182
●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
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
183
●Delphi 8
class function ImgAllocateSDRAM (
hDeviceHandle: Integer; // デバイスハンドル
dwDataFormat: Cardinal; // データフォーマット
dwXLength: Cardinal; // X 方向長さ
dwYLentgh: Cardinal; // Y 方向長さ
dwFrameCnt: Cardinal; // 確保フレーム数
var phSDRAMhandle: Integer // SDRAM ハンドルを格納先の参照渡し
): Integer; static;
【パラメータ】
hDeviceHandle ImgOpen関数で取得したデバイスハンドルを指定してください。
dwDataFormat データフォーマットを指定します。
識別子 値 意味
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_CMP8 0000000Ah 比較用データ 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を指定して下さい。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
184
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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
185
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
186
●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 フレーム分確保して、ハンドル値を取得します。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
187
【使用例 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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
188
●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)を確保してハンドルを取得します。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
189
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: THandle; // デバイスハンドル
hSDRAMHandle: 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
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
190
●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 // SDRAM 管理ハンドル
): Integer; static;
【パラメータ】
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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
191
●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
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
192
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)
:
‘ 確保した 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 領域を解放します。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
193
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: THandle; // デバイスハンドル
hSDRAMHandle: 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
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
194
●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 // SDRAM 管理ハンドル
): Integer; static;
【パラメータ】
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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
195
●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
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
196
Dim lpszName As String
Dim hDeviceHandle As IntPtr
Dim hSDRAMHandle As Integer
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)
:
‘ キャプチャしたい 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 領域を指定しま
す。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
197
28. ImgReadCaptureData
指定した SDRAM 領域に対して、キャプチャデータを取り出します。
【書式】
●C言語
INT ImgReadCaptureData(
HANDLE hDeviceHandle, // デバイスハンドル
HANDLE hSDRAMHandle, // SDRAM 管理ハンドル
DWORD dwStartFrameNum, // 開始フレーム番号
DWORD dwFrameCnt, // 読み込みフレーム数
PVOID pReadData, // 格納先バッファのポインタ
DWORD dwSize // 格納先バッファのサイズ
);
●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, // SDRAM 管理ハンドル
uint dwStartFrameNum, // 開始フレーム番号
uint dwFrameCnt, // 読み込みフレーム数
byte[] pReadData, // 格納先バッファのポインタ
uint dwSize // 格納先バッファのサイズ
);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
198
[DllImport("IfImg.dll")]
public static extern int ImgReadCaptureData(
IntPtr hDeviceHandle, // デバイスハンドル
IntPtr hSDRAMHandle, // SDRAM 管理ハンドル
uint dwStartFrameNum, // 開始フレーム番号
uint dwFrameCnt, // 読み込みフレーム数
ushort[] pReadData, // 格納先バッファのポインタ
uint dwSize // 格納先バッファのサイズ
);
[DllImport("IfImg.dll")]
public static extern int ImgReadCaptureData(
IntPtr hDeviceHandle, // デバイスハンドル
IntPtr hSDRAMHandle, // SDRAM 管理ハンドル
uint dwStartFrameNum, // 開始フレーム番号
uint dwFrameCnt, // 読み込みフレーム数
uint[] pReadData, // 格納先バッファのポインタ
uint dwSize // 格納先バッファのサイズ
);
●Visual C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgReadCaptureData(
uint hDeviceHandle, // デバイスハンドル
uint hSDRAMHandle, // SDRAM 管理ハンドル
uint dwStartFrameNum, // 開始フレーム番号
uint dwFrameCnt, // 読み込みフレーム数
byte[] pReadData, // 格納先バッファのポインタ
uint dwSize // 格納先バッファのサイズ
);
[DllImport("IfImg.dll")]
public static extern int ImgReadCaptureData(
uint hDeviceHandle, // デバイスハンドル
uint hSDRAMHandle, // SDRAM 管理ハンドル
uint dwStartFrameNum, // 開始フレーム番号
uint dwFrameCnt, // 読み込みフレーム数
ushort[] pReadData, // 格納先バッファのポインタ
uint dwSize // 格納先バッファのサイズ
);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
199
[DllImport("IfImg.dll")]
public static extern int ImgReadCaptureData(
uint hDeviceHandle, // デバイスハンドル
uint hSDRAMHandle, // SDRAM 管理ハンドル
uint dwStartFrameNum, // 開始フレーム番号
uint dwFrameCnt, // 読み込みフレーム数
uint[] pReadData, // 格納先バッファのポインタ
uint dwSize // 格納先バッファのサイズ
);
●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
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
200
●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;
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
201
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: Cardinal; // 開始フレーム番号
dwFrameCnt: Cardinal; // 読み込みフレーム数
pReadData: array of Cardinal; // 格納先バッファのポインタ
dwSise: Cardinal // 格納先バッファのサイズ
): Integer; static;
【パラメータ】
hDeviceHandle ImgOpen関数で取得したデバイスハンドルを指定してください。
hSDRAMHandle ImgAllocateSDRAM関数で取得したハンドルを指定します。
dwStartFrameNum 読み込み開始フレーム番号(1~ SDRAM 領域に確保したフレーム数)
キャプチャしたフレーム番号ではないので、ご注意ください。
dwFrameCnt 読み込みフレーム数
pReadData 格納先のバッファの先頭ポインタ
dwSize 格納先のバッファのサイズ
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ
い。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
202
【備考】
本関数は指定した SDRAM 領域内のフレームデータを確保します。dwStartFrameNum を含めた
dwFrameCnt 分のフレームデータを取り出します。
1
:
X
X+N-1
読み込み元 SDRAM 領域
X
X+1
X+2
X+3
X+4
転送先バッファ
M
:
:
:
dwFlameCnt = N
dwSratFlameNum = X
:
:
:
:
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
203
【使用例】
●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)
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
204
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
205
●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 からキャプチャデータを取り出します。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
206
29. ImgBmCaptureData
指定した SDRAM 領域のキャプチャデータをメインメモリへ DMA 転送します。
(PCI/CTP-5521,5523,5531,5533 専用)
【書式】
●C言語
INT ImgBmCaptureData(
HANDLE hDeviceHandle, // デバイスハンドル
HANDLE hSDRAMHandle, // SDRAM 管理ハンドル
DWORD dwStartFrameNum, // 開始フレーム番号
DWORD dwFrameCnt, // 読み込みフレーム数
DWORD dwPosition // 転送開始位置
);
●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, // SDRAM 管理ハンドル
int dwStartFrameNum, // 開始フレーム番号
int dwFrameCnt, // 読み込みフレーム数
int dwPosition // 転送開始位置
);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
207
●Visual C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgBmCaptureData(
uint hDeviceHandle, // デバイスハンドル
uint hSDRAMHandle, // SDRAM 管理ハンドル
int dwStartFrameNum, // 開始フレーム番号
int dwFrameCnt, // 読み込みフレーム数
int dwPosition // 転送開始位置
);
●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 ハンドルを指定してください。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
208
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 関数にて知ること
が可能です。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
209
<データ転送先について>
dwPosition の指定により、データ転送先の領域が異なります。
●IFIMG_BUFF_HEAD
ImgSetBuffer 関数、ImgSetBufferVB 関数で指定したバッファ領域の先頭から転送します。
●IFIMG_BUFF_CONTINUATION
前回転送した続きから転送します。(初回は、先頭から転送します)
メインメモリへの転送は、リングバッファ形式です。
SDRAM 領域からのデータ転送サイズよりもメインメモリのバッファサイズが少ない場合、上書
きされます。
N
N + 1
N + 2
N + 3
N + 4
N + 5
N + 6
SDRAM
N
N + 1
N + 2
メインメモリ
転送
N
N + 1
N + 2
N + 3
N + 4
N + 5
N + 6
SDRAM
N + 3
N + 4
N + 5
メインメモリ
N
N + 1
N + 2
N + 3
N + 4
N + 5
N + 6
N
N + 1
N + 2
メインメモリ
前回の転送
IFIMG_BUFF_HEAD
IFIMG_BUFF_CONTINUATION
N + 6
N + 3
N + 4
N + 5
N + 6
転送
転送
SDRAM
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
210
【使用例】
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
211
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
212
●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)
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
213
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
214
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
215
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
216
●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)
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
217
●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 からキャプチャデータを取り出します。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
218
30. ImgClipData
ImgSetBuffer 関数(または ImgSetBufferVB 関数)で指定したバッファ領域に対して、指定した
フレームと指定した矩形領域の画像データを別のバッファへコピーします。
さらに画像データを拡大させてコピーさせる事もできます。
【書式】
●C言語
INT ImgClipData(
PVOID pdest, // 格納先バッファのポインタ
PVOID psrc, // 読み込み元バッファのポインタ
DWORD dwFrameNum, // フレーム番号
PIMGCLIPCONFIG 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: Pointer; // 格納先バッファのポインタ
psrc: Pointer; // 読み込み元バッファのポインタ
dwFrameNum: DWORD; // フレーム番号
var pClipConfig: IMGCLIPCONFIG // 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 構造体のポインタ
);
[DllImport("IfImg.dll")]
public static extern int ImgClipData(
out byte pdest, // 格納先バッファのポインタ
IntPtr psrc, // 読み込み元バッファのポインタ
uint dwFrameNum, // フレーム番号
ref IMGCLIPCONFIG pClipConfig // IMGCLIPCONFIG 構造体のポインタ
);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
219
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
220
[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 // IMGCLIPCONFIG 構造体のポインタ
);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
221
[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 // IMGCLIPCONFIG 構造体のポインタ
);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
222
[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 // IMGCLIPCONFIG 構造体のポインタ
);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
223
[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 構造体のポインタ
);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
224
●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 ‘ IMGCLIPCONFIG 構造体の参照渡し
)As Integer
Declare Function ImgClipData Lib "IfImg.DLL"(
ByRef pdest As Byte, ‘ 格納先バッファの参照渡し
ByVal psrc As IntPtr, ‘ 読み込み元バッファの参照渡し
ByVal dwFrameNum As Integer, ‘ フレーム番号
ByRef pClipConfig As IMGCLIPCONFIG ‘ IMGCLIPCONFIG 構造体の参照渡し
)As Integer
Declare Function ImgClipData Lib "IfImg.DLL"(
ByRef pdest As Short, ‘ 格納先バッファの参照渡し
ByVal psrc As IntPtr, ‘ 読み込み元バッファの参照渡し
ByVal dwFrameNum As Integer, ‘ フレーム番号
ByRef pClipConfig As IMGCLIPCONFIG ‘ IMGCLIPCONFIG 構造体の参照渡し
)As Integer
Declare Function ImgClipData Lib "IfImg.DLL"(
ByRef pdest As Integer, ‘ 格納先バッファの参照渡し
ByVal psrc As IntPtr, ‘ 読み込み元バッファの参照渡し
ByVal dwFrameNum As Integer, ‘ フレーム番号
ByRef pClipConfig As IMGCLIPCONFIG ‘ IMGCLIPCONFIG 構造体の参照渡し
)As Integer
Declare Function ImgClipData Lib "IfImg.DLL"(
ByVal pdest( ) As Byte, ‘ 格納先バッファの参照渡し
ByVal psrc As IntPtr, ‘ 読み込み元バッファの参照渡し
ByVal dwFrameNum As Integer, ‘ フレーム番号
ByRef pClipConfig As IMGCLIPCONFIG ‘ IMGCLIPCONFIG 構造体の参照渡し
)As Integer
Declare Function ImgClipData Lib "IfImg.DLL"(
ByVal pdest( ) As Short, ‘ 格納先バッファの参照渡し
ByVal psrc As IntPtr, ‘ 読み込み元バッファの参照渡し
ByVal dwFrameNum As Integer, ‘ フレーム番号
ByRef pClipConfig As IMGCLIPCONFIG ‘ IMGCLIPCONFIG 構造体の参照渡し
)As Integer
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
225
Declare Function ImgClipData Lib "IfImg.DLL"(
ByVal pdest( ) As Integer, ‘ 格納先バッファの参照渡し
ByVal psrc As IntPtr, ‘ 読み込み元バッファの参照渡し
ByVal dwFrameNum As Integer, ‘ フレーム番号
ByRef pClipConfig As IMGCLIPCONFIG ‘ IMGCLIPCONFIG 構造体の参照渡し
)As Integer
Declare Function ImgClipData Lib "IfImg.DLL"(
ByRef pdest As Byte, ‘ 格納先バッファの参照渡し
ByVal psrc( ) As Byte, ‘ 読み込み元バッファの参照渡し
ByVal dwFrameNum As Integer, ‘ フレーム番号
ByRef pClipConfig As IMGCLIPCONFIG ‘ IMGCLIPCONFIG 構造体の参照渡し
)As Integer
Declare Function ImgClipData Lib "IfImg.DLL"(
ByRef pdest As Short, ‘ 格納先バッファの参照渡し
ByVal psrc( ) As Byte, ‘ 読み込み元バッファの参照渡し
ByVal dwFrameNum As Integer, ‘ フレーム番号
ByRef pClipConfig As IMGCLIPCONFIG ‘ IMGCLIPCONFIG 構造体の参照渡し
)As Integer
Declare Function ImgClipData Lib "IfImg.DLL"(
ByRef pdest As Integer, ‘ 格納先バッファの参照渡し
ByVal psrc( ) As Byte, ‘ 読み込み元バッファの参照渡し
ByVal dwFrameNum As Integer, ‘ フレーム番号
ByRef pClipConfig As IMGCLIPCONFIG ‘ IMGCLIPCONFIG 構造体の参照渡し
)As Integer
Declare Function ImgClipData Lib "IfImg.DLL"(
ByVal pdest( ) As Byte, ‘ 格納先バッファの参照渡し
ByVal psrc( ) As Byte, ‘ 読み込み元バッファの参照渡し
ByVal dwFrameNum As Integer, ‘ フレーム番号
ByRef pClipConfig As IMGCLIPCONFIG ‘ IMGCLIPCONFIG 構造体の参照渡し
)As Integer
Declare Function ImgClipData Lib "IfImg.DLL"(
ByVal pdest( ) As Short, ‘ 格納先バッファの参照渡し
ByVal psrc( ) As Byte, ‘ 読み込み元バッファの参照渡し
ByVal dwFrameNum As Integer, ‘ フレーム番号
ByRef pClipConfig As IMGCLIPCONFIG ‘ IMGCLIPCONFIG 構造体の参照渡し
)As Integer
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
226
Declare Function ImgClipData Lib "IfImg.DLL"(
ByVal pdest( ) As Integer, ‘ 格納先バッファの参照渡し
ByVal psrc( ) As Byte, ‘ 読み込み元バッファの参照渡し
ByVal dwFrameNum As Integer, ‘ フレーム番号
ByRef pClipConfig As IMGCLIPCONFIG ‘ IMGCLIPCONFIG 構造体の参照渡し
)As Integer
Declare Function ImgClipData Lib "IfImg.DLL"(
ByRef pdest As Byte, ‘ 格納先バッファの参照渡し
ByVal psrc( ) As Short, ‘ 読み込み元バッファの参照渡し
ByVal dwFrameNum As Integer, ‘ フレーム番号
ByRef pClipConfig As IMGCLIPCONFIG ‘ IMGCLIPCONFIG 構造体の参照渡し
)As Integer
Declare Function ImgClipData Lib "IfImg.DLL"(
ByRef pdest As Short, ‘ 格納先バッファの参照渡し
ByVal psrc( ) As Short, ‘ 読み込み元バッファの参照渡し
ByVal dwFrameNum As Integer, ‘ フレーム番号
ByRef pClipConfig As IMGCLIPCONFIG ‘ IMGCLIPCONFIG 構造体の参照渡し
)As Integer
Declare Function ImgClipData Lib "IfImg.DLL"(
ByRef pdest As Integer, ‘ 格納先バッファの参照渡し
ByVal psrc( ) As Short, ‘ 読み込み元バッファの参照渡し
ByVal dwFrameNum As Integer, ‘ フレーム番号
ByRef pClipConfig As IMGCLIPCONFIG ‘ IMGCLIPCONFIG 構造体の参照渡し
)As Integer
Declare Function ImgClipData Lib "IfImg.DLL"(
ByVal pdest( ) As Byte, ‘ 格納先バッファの参照渡し
ByVal psrc( ) As Short, ‘ 読み込み元バッファの参照渡し
ByVal dwFrameNum As Integer, ‘ フレーム番号
ByRef pClipConfig As IMGCLIPCONFIG ‘ IMGCLIPCONFIG 構造体の参照渡し
)As Integer
Declare Function ImgClipData Lib "IfImg.DLL"(
ByVal pdest( ) As Short, ‘ 格納先バッファの参照渡し
ByVal psrc( ) As Short, ‘ 読み込み元バッファの参照渡し
ByVal dwFrameNum As Integer, ‘ フレーム番号
ByRef pClipConfig As IMGCLIPCONFIG ‘ IMGCLIPCONFIG 構造体の参照渡し
)As Integer
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
227
Declare Function ImgClipData Lib "IfImg.DLL"(
ByVal pdest( ) As Integer, ‘ 格納先バッファの参照渡し
ByVal psrc( ) As Short, ‘ 読み込み元バッファの参照渡し
ByVal dwFrameNum As Integer, ‘ フレーム番号
ByRef pClipConfig As IMGCLIPCONFIG ‘ IMGCLIPCONFIG 構造体の参照渡し
)As Integer
Declare Function ImgClipData Lib "IfImg.DLL"(
ByRef pdest As Byte, ‘ 格納先バッファの参照渡し
ByVal psrc( ) As Integer, ‘ 読み込み元バッファの参照渡し
ByVal dwFrameNum As Integer, ‘ フレーム番号
ByRef pClipConfig As IMGCLIPCONFIG ‘ IMGCLIPCONFIG 構造体の参照渡し
)As Integer
Declare Function ImgClipData Lib "IfImg.DLL"(
ByRef pdest As Short, ‘ 格納先バッファの参照渡し
ByVal psrc( ) As Integer, ‘ 読み込み元バッファの参照渡し
ByVal dwFrameNum As Integer, ‘ フレーム番号
ByRef pClipConfig As IMGCLIPCONFIG ‘ IMGCLIPCONFIG 構造体の参照渡し
)As Integer
Declare Function ImgClipData Lib "IfImg.DLL"(
ByRef pdest As Integer, ‘ 格納先バッファの参照渡し
ByVal psrc( ) As Integer, ‘ 読み込み元バッファの参照渡し
ByVal dwFrameNum As Integer, ‘ フレーム番号
ByRef pClipConfig As IMGCLIPCONFIG ‘ IMGCLIPCONFIG 構造体の参照渡し
)As Integer
Declare Function ImgClipData Lib "IfImg.DLL"(
ByVal pdest( ) As Byte, ‘ 格納先バッファの参照渡し
ByVal psrc( ) As Integer, ‘ 読み込み元バッファの参照渡し
ByVal dwFrameNum As Integer, ‘ フレーム番号
ByRef pClipConfig As IMGCLIPCONFIG ‘ IMGCLIPCONFIG 構造体の参照渡し
)As Integer
Declare Function ImgClipData Lib "IfImg.DLL"(
ByVal pdest( ) As Short, ‘ 格納先バッファの参照渡し
ByVal psrc( ) As Integer, ‘ 読み込み元バッファの参照渡し
ByVal dwFrameNum As Integer, ‘ フレーム番号
ByRef pClipConfig As IMGCLIPCONFIG ‘ IMGCLIPCONFIG 構造体の参照渡し
)As Integer
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
228
Declare Function ImgClipData Lib "IfImg.DLL"(
ByVal pdest( ) As Integer, ‘ 格納先バッファの参照渡し
ByVal psrc( ) As Integer, ‘ 読み込み元バッファの参照渡し
ByVal dwFrameNum As Integer, ‘ フレーム番号
ByRef pClipConfig As IMGCLIPCONFIG ‘ IMGCLIPCONFIG 構造体の参照渡し
)As Integer
●Delphi 8
class function ImgClipData (
pdest: IntPtr; // 格納先バッファのポインタ
psrc: IntPtr; // 読み込み元バッファのポインタ
dwFrameNum: Cardinal; // フレーム番号
var pClipConfig: IMGCLIPCONFIG // IMGCLIPCONFIG 構造体のポインタ
): Integer; static;
class function ImgClipData (
var pdest: Byte; // 格納先バッファのポインタ
psrc: IntPtr; // 読み込み元バッファのポインタ
dwFrameNum: Cardinal; // フレーム番号
var pClipConfig: IMGCLIPCONFIG // IMGCLIPCONFIG 構造体のポインタ
): Integer; static;
class function ImgClipData (
var pdest: Word; // 格納先バッファのポインタ
psrc: IntPtr; // 読み込み元バッファのポインタ
dwFrameNum: Cardinal; // フレーム番号
var pClipConfig: IMGCLIPCONFIG // IMGCLIPCONFIG 構造体のポインタ
): Integer; static;
class function ImgClipData (
var pdest: Cardinal; // 格納先バッファのポインタ
psrc: IntPtr; // 読み込み元バッファのポインタ
dwFrameNum: Cardinal; // フレーム番号
var pClipConfig: IMGCLIPCONFIG // IMGCLIPCONFIG 構造体のポインタ
): Integer; static;
class function ImgClipData (
pdest: array of Byte; // 格納先バッファのポインタ
psrc: IntPtr; // 読み込み元バッファのポインタ
dwFrameNum: Cardinal; // フレーム番号
var pClipConfig: IMGCLIPCONFIG // IMGCLIPCONFIG 構造体のポインタ
): Integer; static;
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
229
class function ImgClipData (
pdest: array of Word; // 格納先バッファのポインタ
psrc: IntPtr; // 読み込み元バッファのポインタ
dwFrameNum: Cardinal; // フレーム番号
var pClipConfig: IMGCLIPCONFIG // IMGCLIPCONFIG 構造体のポインタ
): Integer; static;
class function ImgClipData (
pdest: array of Cardinal; // 格納先バッファのポインタ
psrc: IntPtr; // 読み込み元バッファのポインタ
dwFrameNum: Cardinal; // フレーム番号
var pClipConfig: IMGCLIPCONFIG // IMGCLIPCONFIG 構造体のポインタ
): Integer; static;
class function ImgClipData (
pdest: IntPtr; // 格納先バッファのポインタ
pdest: array of Byte; // 読み込み元バッファのポインタ
dwFrameNum: Cardinal; // フレーム番号
var pClipConfig: IMGCLIPCONFIG // IMGCLIPCONFIG 構造体のポインタ
): Integer; static;
class function ImgClipData (
var pdest: Byte; // 格納先バッファのポインタ
pdest: array of Byte; // 読み込み元バッファのポインタ
dwFrameNum: Cardinal; // フレーム番号
var pClipConfig: IMGCLIPCONFIG // IMGCLIPCONFIG 構造体のポインタ
): Integer; static;
class function ImgClipData (
var pdest: Word; // 格納先バッファのポインタ
pdest: array of Byte; // 読み込み元バッファのポインタ
dwFrameNum: Cardinal; // フレーム番号
var pClipConfig: IMGCLIPCONFIG // IMGCLIPCONFIG 構造体のポインタ
): Integer; static;
class function ImgClipData (
var pdest: Cardinal; // 格納先バッファのポインタ
pdest: array of Byte; // 読み込み元バッファのポインタ
dwFrameNum: Cardinal; // フレーム番号
var pClipConfig: IMGCLIPCONFIG // IMGCLIPCONFIG 構造体のポインタ
): Integer; static;
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
230
class function ImgClipData (
pdest: array of Byte; // 格納先バッファのポインタ
pdest: array of Byte; // 読み込み元バッファのポインタ
dwFrameNum: Cardinal; // フレーム番号
var pClipConfig: IMGCLIPCONFIG // IMGCLIPCONFIG 構造体のポインタ
): Integer; static;
class function ImgClipData (
pdest: array of Word; // 格納先バッファのポインタ
pdest: array of Byte; // 読み込み元バッファのポインタ
dwFrameNum: Cardinal; // フレーム番号
var pClipConfig: IMGCLIPCONFIG // IMGCLIPCONFIG 構造体のポインタ
): Integer; static;
class function ImgClipData (
pdest: array of Cardinal; // 格納先バッファのポインタ
pdest: array of Byte; // 読み込み元バッファのポインタ
dwFrameNum: Cardinal; // フレーム番号
var pClipConfig: IMGCLIPCONFIG // IMGCLIPCONFIG 構造体のポインタ
): Integer; static;
class function ImgClipData (
pdest: IntPtr; // 格納先バッファのポインタ
pdest: array of Word; // 読み込み元バッファのポインタ
dwFrameNum: Cardinal; // フレーム番号
var pClipConfig: IMGCLIPCONFIG // IMGCLIPCONFIG 構造体のポインタ
): Integer; static;
class function ImgClipData (
var pdest: Byte; // 格納先バッファのポインタ
pdest: array of Word; // 読み込み元バッファのポインタ
dwFrameNum: Cardinal; // フレーム番号
var pClipConfig: IMGCLIPCONFIG // IMGCLIPCONFIG 構造体のポインタ
): Integer; static;
class function ImgClipData (
var pdest: Word; // 格納先バッファのポインタ
pdest: array of Word; // 読み込み元バッファのポインタ
dwFrameNum: Cardinal; // フレーム番号
var pClipConfig: IMGCLIPCONFIG // IMGCLIPCONFIG 構造体のポインタ
): Integer; static;
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
231
class function ImgClipData (
var pdest: Cardinal; // 格納先バッファのポインタ
pdest: array of Word; // 読み込み元バッファのポインタ
dwFrameNum: Cardinal; // フレーム番号
var pClipConfig: IMGCLIPCONFIG // IMGCLIPCONFIG 構造体のポインタ
): Integer; static;
class function ImgClipData (
pdest: array of Byte; // 格納先バッファのポインタ
pdest: array of Word; // 読み込み元バッファのポインタ
dwFrameNum: Cardinal; // フレーム番号
var pClipConfig: IMGCLIPCONFIG // IMGCLIPCONFIG 構造体のポインタ
): Integer; static;
class function ImgClipData (
pdest: array of Word; // 格納先バッファのポインタ
pdest: array of Word; // 読み込み元バッファのポインタ
dwFrameNum: Cardinal; // フレーム番号
var pClipConfig: IMGCLIPCONFIG // IMGCLIPCONFIG 構造体のポインタ
): Integer; static;
class function ImgClipData (
pdest: array of Cardinal; // 格納先バッファのポインタ
pdest: array of Word; // 読み込み元バッファのポインタ
dwFrameNum: Cardinal; // フレーム番号
var pClipConfig: IMGCLIPCONFIG // IMGCLIPCONFIG 構造体のポインタ
): Integer; static;
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;
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
232
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 読み込み元のバッファのポインタを指定します。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
233
dwFrameNum 抜き出すフレーム番号を指定します。
pClipConfig IMGCLIPCONFIG 構造体で取り出す矩形領域を指定します。変数のポインタを指定します。
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ
い。
【画像拡大機能】
pClipConfig 引数で指定した矩形領域の画像データを、拡大させてコピーする事ができます。
コピー元画像を縦横 2倍、縦横 4倍、縦横 8倍の倍率で拡大します。
拡大方法はコピー元の各画素データを右と下と右下方向に配置させています。
画素 1 画素 2
画素 3 画素 4
画素 1 画素 1
画素 1 画素 1
画素 3 画素 3
画素 3 画素 3
画素 2 画素 2
画素 2 画素 2
画素 4 画素 4
画素 4 画素 4
2 倍
したがって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倍のサイズで拡大します。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
234
【備考】
psrc で指定するキャプチャデータの解像度が 640×480(PAL 製品の場合は 768×572)の場合、
奇数フィールド、偶数フィールドに分離された状態のデータを指定してください。
本関数は解像度が 640×480(PAL 製品の場合は 768×572)のデータに対しては奇数フィールド
と偶数フィールドを交互に配置した状態のデータを返します。
奇数ィールドデータ
偶数フィールドデータ
…
…
…
奇数フィールドデータ
偶数フィールドデータ
の交互
読み込み元のバッファ 格納先のバッファ
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
235
【使用例 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 );
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
236
●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 )
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
237
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
238
●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 );
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
239
●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 )
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
240
●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
領域を取り出します。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
241
【使用例 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 );
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
242
●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 )
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
243
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
244
●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, 5, out ClipConf );
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
245
●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 )
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
246
●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 からキャプチャデータを取り出します。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
247
31. ImgWriteComparisonData
指定したバッファ領域に対して,比較データを書き込みます。
【書式】
●C言語
INT ImgWriteComparisonData(
HANDLE hDeviceHandle, // デバイスハンドル
HANDLE hSDRAMHandle, // SDRAM 管理ハンドル
PVOID pdwWriteData, // 比較データバッファのポインタ
DWORD dwSize // 比較データバッファのサイズ
);
●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(
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
248
IntPtr hDeviceHandle, // デバイスハンドル
IntPtr hSDRAMHandle, // SDRAM 管理ハンドル
uint[] pdwWriteData, // 比較データバッファのポインタ
uint dwSize // 比較データバッファのサイズ
);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
249
●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 "IfImg.DLL"(
ByVal hDeviceHandle As IntPtr, ‘ デバイスハンドル
ByVal hSDRAMHandle As IntPtr, ‘ SDRAM 管理ハンドル
ByRef pdwWriteData( ) As Integer, ‘ 比較データバッファの参照渡し
ByVal dwSize As Integer ‘ 比較データバッファのサイズ
)As Integer
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
250
●Visual Basic .NET(x86 専用)
Declare Function ImgWriteComparisonData Lib "IfImg.DLL"(
ByVal hDeviceHandle As Integer, ‘ デバイスハンドル
ByVal hSDRAMHandle As Integer, ‘ SDRAM 管理ハンドル
ByRef pdwWriteData( ) As byte, ‘ 比較データバッファの参照渡し
ByVal dwSize As Integer ‘ 比較データバッファのサイズ
)As Integer
Declare Function ImgWriteComparisonData Lib "IfImg.DLL"(
ByVal hDeviceHandle As Integer, ‘ デバイスハンドル
ByVal hSDRAMHandle As Integer, ‘ SDRAM 管理ハンドル
ByRef pdwWriteData( ) As Short, ‘ 比較データバッファの参照渡し
ByVal dwSize As Integer ‘ 比較データバッファのサイズ
)As Integer
Declare Function ImgWriteComparisonData Lib "IfImg.DLL"(
ByVal hDeviceHandle As Integer, ‘ デバイスハンドル
ByVal hSDRAMHandle As Integer, ‘ SDRAM 管理ハンドル
ByRef pdwWriteData( ) As Integer, ‘ 比較データバッファの参照渡し
ByVal dwSize As Integer ‘ 比較データバッファのサイズ
)As Integer
●Delphi 8
class function ImgWriteComparisonData(
hDeviceHandle: Integer; // デバイスハンドル
hSDRAMHandle: Integer; // SDRAM 管理ハンドル
pdwWriteData: IntPtr; // 比較データバッファの参照渡し
dwSise: Cardinal // 比較データバッファのサイズ
): Integer; static;
class function ImgWriteComparisonData(
hDeviceHandle: Integer; // デバイスハンドル
hSDRAMHandle: Integer; // SDRAM 管理ハンドル
pdwWriteData: array of Byte // 比較データバッファの参照渡し
dwSise: Cardinal // 比較データバッファのサイズ
): Integer; static;
class function ImgWriteComparisonData(
hDeviceHandle: Integer; // デバイスハンドル
hSDRAMHandle: Integer; // SDRAM 管理ハンドル
pdwWriteData: array of Word; // 比較データバッファの参照渡し
dwSise: Cardinal // 比較データバッファのサイズ
): Integer; static;
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
251
class function ImgWriteComparisonData(
hDeviceHandle: Integer; // デバイスハンドル
hSDRAMHandle: Integer; // SDRAM 管理ハンドル
pdwWriteData: array of Cardinal; // 比較データバッファの参照渡し
dwSise: Cardinal // 比較データバッファのサイズ
): Integer; static;
【パラメータ】
hDeviceHandle ImgOpen関数で取得したデバイスハンドルを指定してください。
hSDRAMHandle ImgAllocateSDRAM関数で取得したハンドルを指定します。
pdwWriteData 比較データバッファの先頭ポインタ
dwSize 比較データバッファのサイズ
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ
い。
【備考】
本関数で取り扱う比較用画像データは 0x00、0xFF で構成される 8bit の 2 値化されたフォーマ
ットのデータです。
比較用画像データのサイズは ImgAllocateSDRAM 関数で指定した dwXLength、dwYLength の値を
掛け合わせた値となります。
比較用画像データを用意する手段としては、ユーザが直接作成する場合と、本製品を利用して
2 値化モードによるキャプチャで比較用画像データを実際に取り込む方法があります。この場
合、奇数フィールドデータ、偶数フィールドデータを交互に配置替えする必要があります。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
252
【使用例】
●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)
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
253
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
254
●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, CmpData,
10000);
デバイス名「IFIMGPTN1」のデバイスに対して、SDRAM に 100×100 の比較用画像データ(8bit)
を格納します。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
255
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
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
256
●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 // IMGPTNCONFIG 構造体の参照渡し
): Integer; static;
【パラメータ】
hDeviceHandle ImgOpen関数で取得したデバイスハンドルを指定してください。
pPatternConfig IMGPTNCONFIG 構造体へのポインタを指定してください。
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ
い。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
257
【使用例】
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
258
●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)
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
259
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
260
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
261
●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)
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
262
●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, CmpData,
10000);
// 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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
263
デバイス名「IFIMGPTN1」のデバイスに対して、SDRAM に 100×100 の比較データ(8bit)を格納
します。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
264
33. ImgGetMatchingLevel
パターン一致における一致率を取得します。
※解像度設定が「320×240」または「160×120」の場合、パターン一致機能は使用できません。
【書式】
●C言語
INT ImgGetMatchingLevel(
HANDLE hDeviceHandle, // デバイスハンドル
PDWORD pdwPercentage, // 一致率格納用バッファのポインタ
PDWORD pdwFrameCnt // フレーム番号格納用バッファポインタ
);
●Visual Basic
Declare Function ImgGetMatchingLevel Lib "IfImg.dll"( _
ByVal hDeviceHandle As Long, _ ‘ デバイスハンドル
ByRef pdwPercentage As Long, _ ‘ 一致率格納用バッファの参照渡し
ByRef pdwFrameCnt As Long _ ‘ フレーム番号格納用バッファの
‘ 参照渡し
)As Long
●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 // フレーム番号格納用バッファポインタ
);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
265
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgGetMatchingLevel Lib "IfImg.DLL"(
ByVal hDeviceHandle As IntPtr, ‘ デバイスハンドル
ByRef pdwPercentage As Integer, ‘ 一致率格納用バッファの参照渡し
ByRef pdwFrameCnt As Integer ‘ フレーム番号格納用バッファの参
照渡し
)As Integer
●Visual Basic .NET(x86 専用)
Declare Function ImgGetMatchingLevel Lib "IfImg.DLL"(
ByVal hDeviceHandle As Integer, ‘ デバイスハンドル
ByRef pdwPercentage As Integer, ‘ 一致率格納用バッファの参照渡し
ByRef pdwFrameCnt As Integer ‘ フレーム番号格納用バッファの参
照渡し
)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 戻り値一覧』をご参照くださ
い。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
266
【使用例】
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
267
●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)
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
268
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
269
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
270
●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)
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
271
●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, CmpData,
10000);
// 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」のデバイスに対して、一致率を取得します。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
272
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
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
273
●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 00000001h 赤成分
IFIMG_INGREDIENT_GREEN 00000002h 緑成分
IFIMG_INGREDIENT_BLUE 00000003h 青成分
IFIMG_INGREDIENT_GRAY 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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
274
●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)
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
275
●Delphi 8
var
lpszName: String;
hDeviceHandle: Integer;
nRet: Integer;
lpszName := 'IFIMGMSR1';
hDeviceHandle := IFCIMG.ImgOpen(lpszName);
:
:
nRet = IFCIMG.ImgSetColorIngredient(hDeviceHandle, IFCIMG.IFIMG_INGREDIENT_RED);
デバイス名「IFIMGMSR1」のデバイスに対して、画像処理を行なう成分を赤色成分に指定しま
す。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
276
35. ImgGetMeasurementValueEx
面積値、重心座標、フェレ径、慣性主軸の角度を取得します。
キャプチャ中に呼び出した場合、フレーム番号も取得します。
※解像度の設定が「320×240」または「160×120」の場合、本関数は実行できません。
【書式】
●C言語
INT ImgGetMeasurementValueEx(
HANDLE hDeviceHandle, // デバイスハンドル
PIMGMEASURE pImgMeaSure, // IMGMEASURE 構造体
PDWORD pFrameNum // フレーム番号
);
●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; // IMGMEASURE 構造体
var pFrameNum DWORD // フレーム番号
): Integer; stdcall; external 'IfImg.dll';
●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 // フレーム番号
);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
277
●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; // IMGMEASURE 構造体
var pFrameNum Cardinal // フレーム番号
): Integer; static;
【パラメータ】
hDeviceHandle ImgOpen関数で取得したデバイスハンドルを指定してください。
pImgMeasure
IMGMEASURE 構造体へのポインタを指定してください。
構造体の説明については、『4.4 構造体』をご参照ください。
pFrameNum フレーム番号を格納するバッファポインタを指定してください。
キャプチャ未実行の状態で本関数を呼び出した場合は、0が格納されます。
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ
い。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
278
【使用例】
●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)
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
279
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
280
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
281
デバイス名「IFIMGMSR1」のデバイスに対して、2値化処理設定を行います。
2 値化対象の色成分を輝度成分、上限しきい値を 255、下限しきい値を 128、上限と下限の間の
場合、2値化データを 0xFF にします。
面積値、重心値を求める為の測定範囲を指定します。開始点(0,0)(左上)とし、開始点からの X
方向を 320、Y 方向を 240 とした測定範囲を設定します。
その後、面積値、重心値、フェレ径、慣性等価楕円の傾き角を取得します。
キャプチャ中に ImgGetMeasurementValueEx 関数を実行した場合、フレーム数を取得します。
dwFrameNum の値で何フレーム目のデータに対して測定を行ったのか、知ることができます。
※キャプチャを実行せずともカメラ等に接続している限り、取り込んでいるフレームデータに
対して、面積値、重心値を取得することも可能です。ただし、dwFrameNum の値は無効なデータ
です。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
282
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
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
283
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
284
●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)
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
285
●Delphi 8
var
lpszName: String;
hDeviceHandle: Integer;
nRet: Integer;
begin
lpszName := 'IFIMGCNV1';
hDeviceHandle := IFCIMG.ImgOpen(lpszName);
// 階調変換、フィルタ処理、膨張・収縮有効
nRet := IFCIMG.ImgSetConversionConfig(hDeviceHandle, $07);
デバイス名「IFIMGCNV1」のデバイスに対して、階調変換、フィルタ処理、膨張・収縮処理を有
効にします。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
286
37. ImgSetLUT
指定した色成分に対する階調変換テーブルを設定します。
【書式】
●C言語
INT ImgSetLUT(
HANDLE hDeviceHandle, // デバイスハンドル
PIMGLUTINFO pLutinfo // 階調変換テーブル
);
●Visual Basic
Declare Function ImgSetLUT Lib "IfImg.dll"( _
ByVal hDeviceHandle As Long, _ ‘ デバイスハンドル
RyRef pLutinfo As IMGLUTINFO _ ‘ 階調変換テーブル
)As Long
●Delphi
function ImgSetLUT (
hDeviceHandle: THandle; // デバイスハンドル
var pLutinfo: IMGLUTINFO // 階調変換テーブル
): Integer; stdcall; external 'IfImg.dll';
●Visual C# .NET(x86、x64 共用)
[DllImport("IfImg.dll")]
public static extern int ImgSetLUT(
IntPtr hDeviceHandle, // デバイスハンドル
ref IMGLUTINFO pLutinfo // IMGLUTINFO 構造体のポインタ
);
●Visual C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgSetLUT(
uint hDeviceHandle, // デバイスハンドル
ref IMGLUTINFO pLutinfo // IMGLUTINFO 構造体のポインタ
);
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgSetLUT Lib "IfImg.DLL"(
ByVal hDeviceHandle As IntPtr, ‘ デバイスハンドル
RyRef pLutinfo As IMGLUTINFO ‘ IMGLUTINFO構造体への参照渡し
)As Integer
●Visual Basic .NET(x86 専用)
Declare Function ImgSetLUT Lib "IfImg.DLL"(
ByVal hDeviceHandle As Integer, ‘ デバイスハンドル
RyRef pLutinfo As IMGLUTINFO ‘ IMGLUTINFO構造体への参照渡し
)As Integer
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
287
●Delphi 8
class function ImgSetLUT (
hDeviceHandle: Integer; // デバイスハンドル
var pLutinfo: IMGLUTINFO // IMGLUTINFO 構造体への参照渡し
): Integer; static;
【パラメータ】
hDeviceHandle ImgOpen関数で取得したデバイスハンドルを指定してください。
pLutinfo
IMGLUTINFO 構造体へのポインタを指定してください。
構造体の説明については、『4.4 構造体』をご参照ください。
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ
い。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
288
【使用例】
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
289
●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
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
290
●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;
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
291
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
292
●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
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
293
●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;
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
294
デバイス名「IFIMGCNV1」のデバイスに対して、階調変換処理した画像をキャプチャします。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
295
38. ImgSetFilter
フィルタ係数を設定します。
【書式】
●C言語
INT ImgSetFilter(
HANDLE hDeviceHandle, // デバイスハンドル
DWORD dwFilterSelect, // フィルタ選択
PIMGFILTER 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: THandle; // デバイスハンドル
dwFilterSelect: DWORD; // 使用するフィルタ
var pCoefficient: 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 "IfImg.DLL"(
ByVal hDeviceHandle As IntPtr, ‘ デバイスハンドル
RyVal dwFilterSelect As Integer, ‘ 使用するフィルタ
ByRef pCoefficient As IMGFILTER ‘ フィルタ係数
)As Integer
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
296
●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 00000001h 3×3 空間フィルタ
IFIMG_EDGE_FILTER 00000002h 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 戻り値一覧』をご参照くださ
い。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
297
【使用例 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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
298
●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
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
299
●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;
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
300
●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;
// オープン処理
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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
301
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
302
●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
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
303
●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;
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
304
【使用例 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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
305
// 1 フレームキャプチャ開始
nRet = ImgStartCapture(hDeviceHandle,1, IFIMG_DMACAPTURE_START);
// 完了まで待つ
do{
nRet = ImgGetCaptureStatus(hDeviceHandle, &Status);
}while(Status.dwCapture & 0x01);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
306
●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)
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
307
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);
// 画像情報を設定
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
308
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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
309
// フィルタ処理有効
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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
310
●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)
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
311
' キャプチャ完了まで待つ
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 画像領域確保
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
312
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 フィルタ処理をした画像をキャプチャ
します。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
313
39. ImgSetDil_Er
膨張・収縮処理の条件を設定します。段数と各段に対する膨張・収縮の選択と近傍の選択します。
【書式】
●C言語
INT ImgSetDil_Er(
HANDLE hDeviceHandle, // デバイスハンドル
PIMGDILATE_ERODE 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: THandle; // デバイスハンドル
var pDilate_Erode: 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
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
314
●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 戻り値一覧』をご参照くださ
い。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
315
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
316
●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
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
317
●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;
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
318
●Visual C# .NET
IntPtr hDeviceHandle;
int nRet;
IntPtr pSrcBuf;
uint dwBufSise;
IFCIMG_ANY.IMGCAPSTATUS Status;
IFCIMG_ANY.IMGBUFFERINFO BufInfo;
IFCIMG_ANY.IMGDILATE_ERODE DIL_ER;
IFCIMG_ANY.IMGBINCONFIG 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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
319
●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
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
320
●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」のデバイスに対して、膨張・収縮処理後の画像をキャプチャします。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
321
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 // 画像データの先頭ポインタ
);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
322
[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
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
323
●Delphi 8
class function ImgSetStillPictureData(
hDeviceHandle: Integer; // デバイスハンドル
pSrc: array of Byte // 画像データの参照渡し
): Integer; static;
class function ImgSetStillPictureData(
hDeviceHandle: Integer; // デバイスハンドル
pSrc: array of Word // 画像データの参照渡し
): Integer; static;
class function ImgSetStillPictureData(
hDeviceHandle: Integer; // デバイスハンドル
pSrc: array of Cardinal // 画像データの参照渡し
): Integer; static;
【パラメータ】
hDeviceHandle 関数で取得したデバイスハンドルを指定してください。
pSrc 書き込む画像データの先頭ポインタを指定します。
画像データのフォーマットは解像度 640×480 の RGB32bit のデータです。
データサイズは 1フレーム分です。(1228800byte)
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ
い。
【備考】
画像データのセットは ImgSetOutputMode 関数で静止画出力モードに変更した後に実行してく
ださい。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
324
●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)
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
325
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
326
●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」のデバイスに対して、静止画出力モードへセットし、静止画データ
を設定します。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
327
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 // 読み込み先バッファの先頭ポインタ
);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
328
[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
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
329
●Delphi 8
class function ImgGetStillPictureData(
hDeviceHandle: Integer; // デバイスハンドル
pDst: array of Byte // 画像データの参照渡し
): Integer; static;
class function ImgGetStillPictureData(
hDeviceHandle: Integer; // デバイスハンドル
pDst: array of Word // 画像データの参照渡し
): Integer; static;
class function ImgGetStillPictureData(
hDeviceHandle: Integer; // デバイスハンドル
pDst: array of Cardinal // 画像データの参照渡し
): Integer; static;
【パラメータ】
hDeviceHandle 関数で取得したデバイスハンドルを指定してください。
pDst 読み込み先バッファの先頭ポインタを指定してください。
読み込まれる画像データのフォーマットは解像度 640×480 の RGB32bit のデータです。
1 フレーム分のサイズのバッファを用意してください。
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ
い。
【備考】
画像データのセットは ImgSetOutputMode 関数で静止画出力モードに変更した後に実行してく
ださい。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
330
●C 言語
HANDLE hDeviceHandle;
int nRet;
PDWORD pDstBuf;
DWORD 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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
331
●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)
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
332
●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」のデバイスに対して、静止画データを読み込みます。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
333
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
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
334
●Delphi 8
class function ImgSetLabelingConfig(
hDeviceHandle: Integer; // デバイスハンドル
dwConnection: Cardinal // 連結方法の選択
): Integer; static;
【パラメータ】
hDeviceHandle 関数で取得したデバイスハンドルを指定してください。
dwConnection 4 連結と 8連結処理を選択します。
識別子 値 意味
IFIMG_FOUR_CONNECTION 00000000h 4 連結
IFIMG_EIGHT_CONNECTION 00000001h 8 連結
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ
い。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
335
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
336
●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
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
337
●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;
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
338
●Visual C# .NET
IntPtr hDeviceHandle;
int nRet;
IntPtr pSrcBuf;
uint dwBufSise;
IFCIMG_ANY.IMGCAPSTATUS Status;
IFCIMG_ANY.IMGBUFFERINFO BufInfo;
IFCIMG_ANY.IMGBINCONFIG 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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
339
●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
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
340
●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」のデバイスに対して、ラベリング処理後の画像データをキャプチャ
します。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
341
43. ImgGetMeasurementValueLBL
全ラベルか、指定したラベル番号の面積値、重心座標、フェレ径、慣性主軸の角度を取得します。
【書式】
●C言語
INT ImgGetMeasurementValueLBL(
HANDLE hDeviceHandle, // デバイスハンドル
PVOID pSrcData, // DMA 転送先バッファの先頭アドレス
DWORD dwFrameNum, // フレーム番号
PDWORD pdwLabelNum, // ラベル番号
PIMGMEASURE pImgMeaSure // 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; // DMA 転送先バッファの参照渡し
dwFrameNum, DWORD; // フレーム番号
var pdwLabelNum, DWORD; // ラベル番号
var pImgMeaSure IMGMEASURE // IMGMEASURE 構造体
): Integer; stdcall; external 'IfImg.dll';
●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 構造体
);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
342
[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 構造体
);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
343
[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 Lib "IfImg.DLL"(
ByVal hDeviceHandle, As IntPtr, ‘ デバイスハンドル
RyVal pSrcData, As IntPtr, ‘ DMA 転送先バッファの参照渡し
ByVal dwFrameNum, As Integer, ‘ フレーム番号
ByRef pdwLabelNum, As Integer, ‘ ラベル番号
ByRef pImgMeaSure As IMGMEASURE ‘ IMGMEASURE 構造体
) As Integer
Declare Function ImgGetMeasurementValueLBL Lib "IfImg.DLL"(
ByVal hDeviceHandle, As IntPtr, ‘ デバイスハンドル
RyVal pSrcData( ), As Byte, ‘ DMA 転送先バッファの参照渡し
ByVal dwFrameNum, As Integer, ‘ フレーム番号
ByRef pdwLabelNum, As Integer, ‘ ラベル番号
ByRef pImgMeaSure As IMGMEASURE ‘ IMGMEASURE 構造体
) As Integer
Declare Function ImgGetMeasurementValueLBL Lib "IfImg.DLL"(
ByVal hDeviceHandle, As IntPtr, ‘ デバイスハンドル
RyVal pSrcData( ), As Short, ‘ DMA 転送先バッファの参照渡し
ByVal dwFrameNum, As Integer, ‘ フレーム番号
ByRef pdwLabelNum, As Integer, ‘ ラベル番号
ByRef pImgMeaSure As IMGMEASURE ‘ IMGMEASURE 構造体
) As Integer
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
344
Declare Function ImgGetMeasurementValueLBL Lib "IfImg.DLL"(
ByVal hDeviceHandle, As IntPtr, ‘ デバイスハンドル
RyVal pSrcData( ), As Integer, ‘ DMA 転送先バッファの参照渡し
ByVal dwFrameNum, As Integer, ‘ フレーム番号
ByRef pdwLabelNum, As Integer, ‘ ラベル番号
ByRef pImgMeaSure As IMGMEASURE ‘ IMGMEASURE 構造体
) As Integer
●Visual Basic .NET(x86 専用)
Declare Function ImgGetMeasurementValueLBL Lib "IfImg.DLL"(
ByVal hDeviceHandle, As Integer, ‘ デバイスハンドル
RyRef pSrcData, As IntPtr, ‘ DMA 転送先バッファの参照渡し
ByVal dwFrameNum, As Integer, ‘ フレーム番号
ByRef pdwLabelNum, As Integer, ‘ ラベル番号
ByRef pImgMeaSure As IMGMEASURE ‘ IMGMEASURE 構造体
) As Integer
Declare Function ImgGetMeasurementValueLBL Lib "IfImg.DLL"(
ByVal hDeviceHandle, As Integer, ‘ デバイスハンドル
RyVal pSrcData( ), As Byte, ‘ DMA 転送先バッファの参照渡し
ByVal dwFrameNum, As Integer, ‘ フレーム番号
ByRef pdwLabelNum, As Integer, ‘ ラベル番号
ByRef pImgMeaSure As IMGMEASURE ‘ IMGMEASURE 構造体
) As Integer
Declare Function ImgGetMeasurementValueLBL Lib "IfImg.DLL"(
ByVal hDeviceHandle, As Integer, ‘ デバイスハンドル
RyVal pSrcData( ), As Short, ‘ DMA 転送先バッファの参照渡し
ByVal dwFrameNum, As Integer, ‘ フレーム番号
ByRef pdwLabelNum, As Integer, ‘ ラベル番号
ByRef pImgMeaSure As IMGMEASURE ‘ IMGMEASURE 構造体
) As Integer
Declare Function ImgGetMeasurementValueLBL Lib "IfImg.DLL"(
ByVal hDeviceHandle, As Integer, ‘ デバイスハンドル
RyVal pSrcData( ), As Integer, ‘ DMA 転送先バッファの参照渡し
ByVal dwFrameNum, As Integer, ‘ フレーム番号
ByRef pdwLabelNum, As Integer, ‘ ラベル番号
ByRef pImgMeaSure As IMGMEASURE ‘ IMGMEASURE 構造体
) As Integer
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
345
●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 フレーム番号を指定します。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
346
pdwLabelNum 取得したいラベル番号を格納している変数の先頭アドレスを指定します。
変数に 1~63 を格納した場合、そのラベル番号の画像計測結果を取得します。
64 以上を格納した場合は、実際の画像処理結果後の 大ラベル番号を取得します。
さらに、変数に格納したラベル番号が、 大ラベル番号を超えていた場合、その 大ラベ
ル番号が変数に格納されます。
pMeaSure IMGMEASURE 構造体へのポインタを指定してください。
pdwLabelNum で指定したラベル番号に対する画像処理結果が可能されます。
全てのブロックの画像処理結果を欲しい場合、pdwLabelNum で指示する変数に 64 以上の値
を格納して、pMeaSure には要素数が 64 の構造体配列の先頭ポインタ(参照渡し)を指定し
てください。
構造体の説明については、『4.4 構造体』をご参照ください。
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ
い。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
347
【使用例】
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
348
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);
// 完了まで待つ。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
349
do{
nRet = ImgGetCaptureStatus(hDeviceHandle, &Status);
}while(Status.dwCapture & 0x01);
dwLblNum = 64;
// 全ラベルの面積値、重心値、フェレ径、慣性等価楕円の傾き角の取得
nRet = ImgGetMeasurementValueLBL(hDeviceHandle, pSrcBuf, 1,&dwLblNum, pMeasure);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
350
●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))
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
351
●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))
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
352
●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);
// 完了まで待つ
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
353
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
);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
354
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;
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
355
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)のサイズ
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
356
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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
357
●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,_
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
358
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)
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
359
Loop While Status.dwCapture And &H1
LblNum = 64
‘ 全ラベルの面積値、重心値、フェレ径、慣性等価楕円の傾き角の取得
nRet = IFCIMG_ANY.ImgGetMeasurementValueLBL(hDeviceHandle, buffer, 1,_
LblNum, pMeasure(0))
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
360
●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);
// 完了まで待つ
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
361
repeat
nRet := IFCIMG.ImgGetCaptureStatus(hDeviceHandle, Status);
until (Status.dwCapture and $01) <> $01;
dwLblNum := 64;
// 全ラベルの面積値、重心値、フェレ径、慣性等価楕円の傾き角の取得
nRet := IFCIMG.ImgGetMeasurementValueLBL(hDeviceHandle,1, dwLblNum, pMeasure[0]);
デバイス名「IFIMGLBL1」のデバイスで、全ラベルの面積値、重心値、フェレ径、慣性等価楕
円の傾き角を取得します。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
362
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, // イメージの高さ
);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
363
[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, // イメージの高さ
);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
364
●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
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
365
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;
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
366
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 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
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
367
lWidth データのイメージ幅を指定します。
キャプチャしたデータ解像度によって値を以下の通りに設定します。
解像度 値
640×480 640
320×240 320
160×120 120
768×572 768
384×286 384
192×143 192
lHeight データのイメージ高さを指定します。
キャプチャしたデータ解像度によって値を以下の通りに設定します。
解像度 値
640×480 480 × n
320×240 240 × n
160×120 120 × n
768×572 572 × n
384×286 286 × n
192×143 143 × n
※ n は保存するフレーム数です。
正数指定の場合、画像データはボトムアップ形式で保存します。
負数指定の場合、画像データはトップダウン形式で保存します。
通常は正数で指定してください。負数指定で保存した場合、Paint ソフト等で開くを画像
データが逆さまに表示されます。
【戻り値】
エラー識別子 値 意味
IFSAVEFILE_ERROR_SUCCESS 0 正常終了
IFSAVEFILE_ERROR_INVALID_PARAMETER c0000010h
(-1073741808)
引数の値が正しくありま
せん。
IFSAVEFILE_ERROR_NOT_ALLOCATE_MEMORY c0000021h
(-1073741791)
作業用のメモリの確保に
失敗しました。
IFSAVEFILE_ERROR_NOT_OPENFILE c0001000h
(-1073737728)
ファイルがオープンでき
ません。
IFSAVEFILE_ERROR_INVALID_WRITEFILE c0001001h
(-1073737727)
ファイル書き込みに失敗
しました。
【備考】
本 API 関数は IfImg.dll とは別のライブラリ(IfSaveFile.dll)とヘッダーファイル
(IfSaveFile.h、IfSaveFile.bas、IfSaveFile.pas)で提供しています。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
368
【使用例】
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
369
●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)
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
370
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
371
●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)
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
372
●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 フレーム分ビットマップ保存します。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
373
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 // データ
);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
374
●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
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
375
【使用例】
●C言語
HANDLE hDeviceHandle;
int 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)
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
376
●Delphi 8
var
hDeviceHandle: Inetger;
nRet: Integer;
hDeviceHandle := IFCIMG_ANY.ImgOpen(“IFIMGST1”); :
:
nRet := IFCIMG_ANY.ImgSetDecoderConfig(hDeviceHandle, $0A, $01);
ビデオデコーダのレジスタのオフセット 0Ah 領域に 01h をセットします。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
377
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 // データ
);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
378
●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
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
379
【使用例】
●C言語
HANDLE hDeviceHandle;
int 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)
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
380
●Delphi 8
var
hDeviceHandle: Inetger;
nRet: Integer;
hDeviceHandle := IFCIMG.ImgOpen(“IFIMGST1”);
nRet := IFCIMG.ImgSetDecoderConfig(hDeviceHandle, $0A, $01);
ビデオエンコーダのレジスタのオフセット 01h 領域に 00h をセットします。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
381
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
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
382
●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 戻り値一覧』をご参照くだ
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
383
【備考】
製品搭載しているビデオエンコーダは以下になっています。
メーカ:沖電気株式会社
品名:MSM7664B
本関数はエンコーダレジスタのオフセット 0x09 番地へアクセスしてコントラスト調整を
行っています。詳細は MSM7664B のデータシートを参照ください。
本関数を実行するとビデオデコーダのゲイン調整がマニュアルモードになります。初期状態
(オートモード)に戻す場合は、ImgSetDecoderConfig 関数でオフセット 0x0A 番地に 0x00
をセットしてください。
メーカ:ラピスセミコンダクタ株式会社
品名:ML86V7666
本関数はエンコーダレジスタのオフセット 0x0C 番地へアクセスしてコントラスト調整を
行っています。詳細は ML86V7666 のデータシートを参照ください。
初期状態に戻す場合は、ImgSetDecoderConfig 関数でオフセット 0x0C 番地に 0xF4 をセッ
トしてください。
【使用例】
●C言語
HANDLE hDeviceHandle;
int 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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
384
●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 にします。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
385
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
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
386
●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 戻り値一覧』をご参照くだ
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
387
【備考】
製品搭載しているビデオエンコーダは以下になっています。
メーカ:沖電気株式会社
品名:MSM7664B
本関数はエンコーダレジスタのオフセット 0x0A 番地へアクセスしてブランキングレベル調
整を行っています。詳細は MSM7664B のデータシートを参照ください。
本関数を実行するとビデオデコーダのオフセット調整がマニュアルモードになります。
初期状態(オートモード)に戻す場合は、ImgSetDecoderConfig 関数でオフセット 0x0A 番地に
0x00 をセットしてください。
メーカ:ラピスセミコンダクタ株式会社
品名:ML86V7666
本関数はエンコーダレジスタのオフセット 0x0E 番地へアクセスしてブランキングレベル調
整を行っています。詳細は ML86V7666 のデータシートを参照ください。
初期状態に戻す場合は、ImgSetDecoderConfig 関数でオフセット 0x0E 番地に 0x3F をセット
してください。
【使用例】
●C言語
HANDLE hDeviceHandle;
int 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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
388
●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 にします。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
389
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
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
390
●Delphi 8
class function ImgSetSyncErrorDetection (
hDeviceHandle: Integer; // デバイスハンドル
Mode: Cardinal // 検出モード選択
): Integer; static;
【パラメータ】
hDeviceHandle ImgOpen 関数で取得したデバイスハンドルを指定してください。
Mode
異常状態を検出する同期信号を選択します。同期信号は以下の 3つになります。
VSYNC 信号 : カメラの垂直同期信号
VVALID 信号 : ハードウェア(FPGA)とビデオデコーダ間の垂直同期信号
HVALID 信号 : ハードウェア(FPGA)とビデオデコーダ間の水平同期信号
以下の識別子を指定する事により、各信号に対する異常検出機能の有効/無効を
設定する事ができます。
対象となる異常検出機能 識別子 値
VSYNC 検出 VVALID 検出 HVALID 検出
IFIMG_ERR_DETECTION_MODE1 00000001h 有効 有効 有効
IFIMG_ERR_DETECTION_MODE2 00000002h 有効 有効 無効
IFIMG_ERR_DETECTION_MODE3 00000003h 有効 無効 有効
IFIMG_ERR_DETECTION_MODE4 00000004h 有効 無効 無効
IFIMG_ERR_DETECTION_MODE5 00000005h 無効 有効 有効
IFIMG_ERR_DETECTION_MODE6 00000006h 無効 有効 無効
IFIMG_ERR_DETECTION_MODE7 00000007h 無効 無効 有効
IFIMG_ERR_DETECTION_MODE8 00000008h 無効 無効 無効
ImgOpen 実行後の初期状態は IFIMG_DETECTION_MODE4 となっています。
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ
い。
【注意】
ご使用になっているハードウェアのバージョンによっては、選択できる信号に制限がございま
す。検出できない信号を選択した場合、戻り値として、「IFIMG_ERROR_NOT_SUPPORTED」が返りま
す。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
391
【使用例】
●C言語
HANDLE hDeviceHandle;
int 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 信号にします。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
392
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
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
393
●Delphi 8
class function ImgGetCameraConnectionStatus (
hDeviceHandle: Integer; // デバイスハンドル
var Status: Cardinal // 接続状態
): Integer; static;
【パラメータ】
hDeviceHandle ImgOpen 関数で取得したデバイスハンドルを指定してください。
Status
カメラとの接続状態を取得します。
識別子 値 意味
IFIMG_CAMERA_NOTSUPPORTED 00000000h 機能未サポート
IFIMG_CAMERA_CONNECTION 00000001h 接続
IFIMG_CAMERA_UNCONNECTION 00000002h 未接続
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ
い。
【注意】
ご使用になっているハードウェアのバージョンによっては、本機能は対応しておりません。
未対応のハードウェア上で実行すると、戻り値として「IFIMG_ERROR_NOT_SUPPORTED」が返ります。
【使用例】
●C言語
HANDLE hDeviceHandle;
int nRet;
DWORD Status
nRet = ImgGetCameraConnectionStatus(DeviceHandle, &Status);
●Visual Basic
Dim hDeviceHandle As Long
Dim nRet As Long
Dim Status As Long
nRet = ImgGetCameraConnectionStatus(DeviceHandle, Status)
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
394
●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);
カメラとの接続状態を取得します。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
395
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
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
396
【パラメータ】
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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
397
●Visual Basic .NET
Dim DeviceHandle As IntPtr
Dim Ret As Integer
Dim Architecture As Integer
:
Ret = IFCIMG_ANY.ImgGetOsArchitecture(DeviceHandle, Architecture)
OS 情報を取得します。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
398
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 // キャプチャ条件設定
);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
399
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
400
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
401
●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);
カメラ情報とキャプチャ条件を設定します。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
402
53. ImgSetCCMode
【機能】
カメラコントロール信号(CC1~4)の動作モードを設定する。
【書式】
●C言語
INT ImgSetCCMode(
HANDLE DeviceHandle, // デバイスハンドル
DWORD CcSignal, // CC 信号
DWORD Mode, // 出力モード
DWORD Pulse // 出力パルス幅
);
●Visual Basic
Declare Function ImgSetCCMode Lib "IfImg.dll"( _
ByVal DeviceHandle As Long, _ ‘ デバイスハンドル
ByVal CcSignal, As Long, _ ‘ CC 信号
ByVal Mode, As Long, _ ‘ 出力モード
ByVal Pulse As Long ‘ 出力パルス幅
)As Long
●Delphi
function ImgSetCCMode (
DeviceHandle: THandle; // デバイスハンドル
CcSignal: DWORD; // CC 信号
Mode: DWORD; // 出力モード
Pulse: DWORD // 出力パルス幅
): Integer; stdcall; external IfImg.dll';
●VISUAL C# .NET(x86、x64 共用)
[DllImport("IfImg.dll")]
public static extern int ImgSetCCMode(
IntPtr DeviceHandle, // デバイスハンドル
uint CcSignal, // CC 信号
uint Mode, // 出力モード
uint Pulse // 出力パルス幅
);
●VISUAL C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgSetCCMode(
uint DeviceHandle, // デバイスハンドル
uint CcSignal, // CC 信号
uint Mode, // 出力モード
uint Pulse // 出力パルス幅
);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
403
●Visual Basic .NET(x86、x64 共用)
Declare Function ImgSetCCMode Lib "IfImg.dll"( _
ByVal DeviceHandle As IntPtr, _ ‘ デバイスハンドル
ByVal CcSignal, As Integer, _ ‘ CC 信号
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, _ ‘ CC 信号
ByVal Mode, As Integer, _ ‘ 出力モード
ByVal Pulse As Integer ‘ 出力パルス幅
)As Long
●Delphi 8
class function ImgSetCCMode (
DeviceHandle: Integer; // デバイスハンドル
CcSignal: Cardinal; // CC 信号
Mode: Cardinal; // 出力モード
Pulse: Cardinal // 出力パルス幅
): Integer; static;
【パラメータ】
DeviceHandle ImgOpen関数で取得したデバイスハンドルを指定してください。
CcSignal 設定する CC 信号を選択します。
識別子 値 内容
IFIMGCL_CC1 00000001h CC1 信号
IFIMGCL_CC2 00000002h CC2 信号
IFIMGCL_CC3 00000004h CC3 信号
IFIMGCL_CC4 00000008h CC4 信号
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
404
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)
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
405
【使用例】
●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 信号をインターバルタイマ割り込み周期で出力させます。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
406
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 // CC 信号
): Integer; stdcall; external IfImg.dll';
●VISUAL C# .NET(x86、x64 共用)
[DllImport("IfImg.dll")]
public static extern int ImgOutputCCPluse(
IntPtr DeviceHandle, // デバイスハンドル
uint CcSignal // CC 信号
);
●VISUAL C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgOutputCCPluse(
uint DeviceHandle, // デバイスハンドル
uint CcSignal // 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
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
407
●Delphi 8
class function ImgOutputCCPluse (
DeviceHandle: Integer; // デバイスハンドル
CcSignal: Cardinal // CC 信号
): Integer; static;
【パラメータ】
DeviceHandle ImgOpen関数で取得したデバイスハンドルを指定してください。
CcSignal 出力する CC 信号を選択します。
識別子 値 内容
IFIMGCL_CC1 00000001h CC1 信号
IFIMGCL_CC2 00000002h CC2 信号
IFIMGCL_CC3 00000004h CC3 信号
IFIMGCL_CC4 00000008h 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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
408
●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パルス出力します。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
409
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 // タイムアウト
);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
410
[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 // タイムアウト
);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
411
[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
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
412
Declare Function ImgSerialSend 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 ImgSerialSend Lib "IfImg.DLL"( _
ByVal DeviceHandle As Integer, _ ‘ デバイスハンドル
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 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
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
413
●Delphi 8
class function ImgSerialSend (
DeviceHandle: Integer; // デバイスハンドル
BuffPtr: array of Bytel; // 送信データ
var BuffSize: Cardinal; // 送信データのサイズ
TimeOut: Cardinal // タイムアウト
): Integer; static;
class function ImgSerialSend (
DeviceHandle: Integer; // デバイスハンドル
BuffPtr: array of Word; // 送信データ
var BuffSize: Cardinal; // 送信データのサイズ
TimeOut: Cardinal // タイムアウト
): Integer; static;
class function ImgSerialSend (
DeviceHandle: Integer; // デバイスハンドル
BuffPtr; array of Cardinal; // 送信データ
var BuffSize: Cardinal; // 送信データのサイズ
TimeOut: Cardinal // タイムアウト
): Integer; static;
class function ImgSerialSend (
DeviceHandle: Integer; // デバイスハンドル
BuffPtr; IntPtr; // 送信データ
var BuffSize: Cardinal; // 送信データのサイズ
TimeOut: Cardinal // タイムアウト
): Integer; static;
【パラメータ】
DeviceHandle ImgOpen関数で取得したデバイスハンドルを指定してください。
BuffPtr 送信データを格納しているバッファのポインタ(参照渡し)を指定します。
BuffSize 送信データバッファのサイズを格納している変数のポインタ(参照渡し)を指定します。
関数実行後、この変数には実際に送信したデータのサイズが格納されます。
TimeOut タイムアウト時間を ms 単位で指定します。
送信用 FIFO がフルになっている状態が、指定した時間を超えた場合、関数はタイムアウ
トエラーを返します。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
414
【戻り値】
正常終了した場合は、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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
415
●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)
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
416
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
417
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
418
STX,ETX コード付きの文字列(Interface)を送信します。
送信データのフォーマットはご使用のカメラによって異なりますので、カメラのマニュアルを参
照してください。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
419
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 // タイムアウト
);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
420
[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 // タイムアウト
);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
421
●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
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
422
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;
class function ImgSerialReceive (
DeviceHandle: Integer; // デバイスハンドル
BuffPtr; array of Word; // 受信データ
var BuffSize: Cardinal; // 受信データのサイズ
TimeOut: Cardinal // タイムアウト
): Integer; static;
class function ImgSerialReceive (
DeviceHandle: Integer; // デバイスハンドル
BuffPtr array of Cardinal; // 受信データ
var BuffSize: Cardinal; // 受信データのサイズ
TimeOut: Cardinal // タイムアウト
): Integer; static;
class function ImgSerialReceive (
DeviceHandle: Integer; // デバイスハンドル
BuffPtr IntPtr; // 受信データ
var BuffSize: Cardinal; // 受信データのサイズ
TimeOut: Cardinal // タイムアウト
): Integer; static;
【パラメータ】
DeviceHandle ImgOpen関数で取得したデバイスハンドルを指定してください。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
423
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)
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
424
●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バイト分データを受信します。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
425
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
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
426
●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 送信状態
1:送信完了 0:送信中
送信完了時に ImgSerialSend 関数でデータを送
信する事ができます。
bit4 送信用 FIFO の状態
1:フルになっている。
0:フルになっていない。
送信用 FIFO がフルになっており、ImgSerialSend
関数でデータを送信する事ができません。
bit3 予約 予約です。
bit2 受信用 FIFO 状態
1:オーバーフローした。
0:オーバーフローしていない。
受信用ハードウェア FIFO がオーバーフローして
おり、受信データを取りこぼしています。
bit1 受信状態
1:受信完了/受信待機中
0:受信中
受信中の場合、受信用ハードウェア FIFO にデー
タが入っている事を意味します。
ImgSerialReceive 関数でデータを取得する事が
できます。
bit0 受信用 FIFO 状態
1:フルになっている
0:フルになっていない
受信用ハードウェア FIFO がフルになっており、
受信データを取りこぼす可能性があります。
DataSize 受信 FIFO に格納されている受信データの容量が格納されます。(0~4096)
【戻り値】
正常終了した場合は、IFIMG_ERROR_SUCCESSが返されます。
IFIMG_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照くださ
い。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
427
【使用例】
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
428
●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);
シリアル通信状態を取得します。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
429
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
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
430
●Delphi 8
class function ImgSerialClear(
DeviceHandle: Integer; // デバイスハンドル
Fifo: Caerdinal // FIFO
): Integer; static;
【パラメータ】
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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
431
●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 の中身をクリアします。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
432
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
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
433
●Delphi 8
class function ImgOutputPower(
DeviceHandle: Integer; // デバイスハンドル
Power: Cardinal // パワーON/OFF
): Integer; static;
【パラメータ】
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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
434
●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);
カメラへ電源を供給します。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
435
60. ImgSetEncodeCntMode
【機能】
エンコーダカウンタのカウント動作を設定します。
【書式】
●C言語
INT ImgSetEncodeCntMode (
HANDLE DeviceHandle, // デバイスハンドル
DWORD SelectEncCounter, // CC 信号
PIFIMGCLENCCFG EncoderCntConfig // 出力モード
);
●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; // CC 信号
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, // CC 信号
ref IFIMGCLENCCFG EncoderCntConfig // 出力モード
);
●VISUAL C# .NET(x86 専用)
[DllImport("IfImg.dll")]
public static extern int ImgSetEncodeCntMode (
uint DeviceHandle, // デバイスハンドル
uint SelectEncCounter, // CC 信号
ref IFIMGCLENCCFG EncoderCntConfig // 出力モード
);
●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
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
436
●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; // CC 信号
var EncoderCntConfig: IFIMGCLENCCFG // 出力モード
): Integer; static;
【パラメータ】
DeviceHandle ImgOpen 関数から得られるデバイスハンドル
SelectEncCounter エンコーダカウンタ選択
識別子 値 内容
IFIMGCL_ENCCNT_DIFFRENTIAL 00000001h 差動入力方式エンコーダカウンタの設定
IFIMGCL_ENCCNT_SINGLEENDED1 00000002h シングルエンド入力方式 1 エンコーダカウ
ンタ
IFIMGCL_ENCCNT_SINGLEENDED2 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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
437
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
438
●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)
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
439
●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に設定しま
す。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
440
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 // カウンタ周期
);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
441
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
442
●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 に設定します。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
443
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
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
444
●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)
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
445
●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);
インターバルタイマカウンタを取得します。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
446
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';
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
447
●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 // 画像サイズ
);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
448
●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
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
449
【パラメータ】
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 設定無効
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
450
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 戻り値一覧』をご参照くだ
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
451
【使用例】
●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)
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
452
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
453
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
454
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 // 時刻
);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
455
●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 戻り値一覧』をご参照くだ
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
456
【使用例】
●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)
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
457
●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# .NET
IntPtr hDeviceHandle;
int nRet;
IFIMGTIME Time;
IFIMGDATE 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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
458
●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)
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
459
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 // フォントのサイズ
);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
460
●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 構造体で指定します。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
461
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 戻り値一覧』をご参照くだ
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
462
【使用例】
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
463
●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 Or IFIMG_IMPOSE_SET_TIME
OrIFIMG_IMPOSE_STRING_OUTLINE
ColorTable(0) = &HFF0000
ColorTable(1) = &H000000
nRet = ImgSetImposeDateTimeInfo(hDevice,DateInfo,TimeInfo,SetMode,ColorTable(0)、1)
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
464
●Delphi
var
hDevice: THandle;
nRet: Cardinal;
DateInfo: IFIMGDATEINFO;
TimeInfo: IFIMGTIMEINFO;
ColorTable: array[0..1] of DWORD;
beginlpszName := 'IFIMGST1';
hDevice := 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 := 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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
465
●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);
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
466
●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)
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
467
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 の値
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
468
● 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 指定バッファ領域へのポインタアドレス
■x86 環境使用時
PC のメインメモリ(ユーザアプリケーション上のバッファ)を
使用する場合はそのバッファのポインタ(参照)渡しを指定します。
■x64 環境使用時
ドライバ内で確保した物理メモリを使用する場合は、
-1 を指定します。
dwBufferSize メモリのサイズ
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
469
● IMGCAPSTATUS 構造体 ImgGetCaptureStatus関数で指定するキャプチャ状態構造体です。
●C 言語
typedef struct {
DWORD dwCapture;
DWORD dwFrameCnt;
DWORD 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;
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
470
メンバ 説明
キャプチャ状態
ビット 内容
bit31~bit11 予約
bit10~bit8 使用しているチャンネルを取得します。
多チャンネル製品シリーズ専用です。
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
bit7~bit4 予約
bit3 同期信号状態
※2
0:正常
1:異常が発生した
bit2 入力用 FIFO の状態
※1
0:Full でない
1:Full 状態
bit1 入力用 FIFO の状態
※1
0:空でない
1:空状態
bit0 キャプチャ状態 0:停止中
1:キャプチャ中
dwCapture
※ 1
入力用 FIFO が Full または空が有効の場合、映像機器からのフレー
ムデータの取りこぼしが起きている可能性があります。入力用FIFO
が Full の場合、PCI バス上でのデータ転送が遅れている可能性が
あります。入力用 FIFO が空の場合、キャプチャを開始していない。
または映像機器からデータが取り込まれていない可能性がありま
す。
※ 2
このフラグが立った場合、キャプチャ動作中にノイズ、ビデオケー
ブルの抜き差しなどの外的要因の為にカメラの映像信号と同期が
取れなくなった事を知らせます。
デバイスはキャプチャ動作を停止して、カメラとの同期を取ってキ
ャプチャ再開します。再開が始まった際にこのフラグは 0になりま
す。
この機能はお使いになっている製品のハードウェアのバージョン
よっては対応しておりません。ご注意ください。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
471
dwFrameCnt キャプチャが完了したフレーム数です。
(1~FFFFFFFFh)
※FFFFFFFFh までカウント後、1に戻ります。
複数フレーム分のバッファ領域を確保している場合、描画処理等でこのフ
レーム数の値を活用してください。
dwTrigger トリガの発生状態
ビット 内容
bit31~bit3 予約
bit2 面積 AND 重心トリガ 0:トリガ未発生
1:トリガ発生
bit1 重心トリガ 0:トリガ未発生
1:トリガ発生
bit0 面積トリガ 0:トリガ未発生
1:トリガ発生
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
472
● IMGCAPSTATUSEX 構造体 ImgGetCaptureStatusEx関数で指定するキャプチャ状態構造体です。
●C 言語
typedef struct {
DWORD dwCapture;
DWORD dwFrameCntDMA;
DWORD dwFrameCntSDRAM;
DWORD 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;
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
473
メンバ 説明
キャプチャ状態
ビット 内容
bit31~bit11 予約
bit10~bit8 使用しているチャンネルを取得します。
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
bit7~bit6 予約
bit5 同期信号状態※1 0:正常
1:異常が発生した
bit4 SDRAM データの DMA 転送
状態
0:停止中
1:転送中
bit3 SDRAM によるキャプチャ
状態
0:停止中
1:キャプチャ中
bit2 入力用 FIFO の状態
※2
0:Full でない
1:Full 状態
bit1 入力用 FIFO の状態 0:空でない
1:空状態
bit0 キャプチャ状態 0:停止中
1:キャプチャ中
dwCapture
※ 1
このフラグが立った場合、キャプチャ動作中にノイズ、ビデオケー
ブルの抜き差しなどの外的要因の為にカメラの映像信号と同期が
取れなくなった事を知らせます。
デバイスはキャプチャ動作を停止して、カメラとの同期を取ってキ
ャプチャ再開します。再開が始まった際にこのフラグは 0になりま
す。
この機能はお使いになっている製品のハードウェアのバージョン
よっては対応しておりません。
※ 2
入力用 FIFO が Full または空が有効の場合、映像機器からのフレー
ムデータの取りこぼしが起きている可能性があります。入力用FIFO
が Full の場合、PCI バス上でのデータ転送が遅れている可能性が
あります。入力用 FIFO が空の場合、キャプチャを開始していない。
または映像機器からデータが取り込まれていない可能性がありま
す。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
474
dwFrameCntDMA 「DMA 転送によるキャプチャが完了したフレーム数」または、
「SDRAM データの DMA 転送が完了したフレーム数」
(1~FFFFFFFFh)
※FFFFFFFFh までカウント後、1に戻ります。
複数フレーム分のバッファ領域を確保している場合、描画処理等でこのフ
レーム数の値を活用してください。
dwFrameCntSDRAM SDRAM キャプチャが完了したフレーム数です。
(1~FFFFFFFFh)
※FFFFFFFFh までカウント後、1に戻ります。
複数フレーム分のバッファ領域を確保している場合、描画処理等でこのフ
レーム数の値を活用してください。
dwTrigger トリガの発生状態
ビット 内容
bit31~bit5 予約
bit4 パターン一致トリガ 0:トリガ未発生
1:トリガ発生
bit3 予約
bit2 面積 AND 重心トリガ 0:トリガ未発生
1:トリガ発生
bit1 重心トリガ 0:トリガ未発生
1:トリガ発生
bit0 面積トリガ 0:トリガ未発生
1:トリガ発生
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
475
● 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;
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
476
メンバ 説明
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 通常(上限値と下限値の
間が FF、それ以外が 0)
IFIMG_BINMODE_REVERSAL 00000002h 反転(上限値と下限値の
間が 0、それ以外が FF)
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
477
● 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
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
478
●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 重心 1:有効
0:無効
bit1 重心 1:有効
0:無効
bit0 面積 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 重心トリガ 1:トリガエリア外の場合に発生
0:トリガエリア内の場合に発生
bit0 面積トリガ 1:トリガエリア外の場合に発生
0:トリガエリア内の場合に発生
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
479
● 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];
}
}
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
480
●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;
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
481
メンバ 説明
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
を代入してください。配列要素に代入する際、必ず連続で代入してく
ださい。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
482
識別子 値 チャンネル番号
IFIMG_CHANNEL_CN1 00000001 CN1/VIN1
IFIMG_CHANNEL_CN4 00000004 CN4/VIN2
IFIMG_CHANNEL_CN5 00000005 CN5/VIN3
IFIMG_CHANNEL_CN6 00000006 CN6/VIN4
IFIMG_CHANNEL_CN7 00000007 CN7/VIN5
例 1) CN6…
dwChangePattern[0] = IFIMG_CHANNEL_CN4
dwChangePattern[1] = 0
dwChangePattern[2] = 0
dwChangePattern[3] = 0
dwChangePattern[4] = 0
例 2) CN6,CN5,CN7…
dwChangePattern[0] = IFIMG_CHANNEL_CN4
dwChangePattern[1] = IFIMG_CHANNEL_CN5
dwChangePattern[2] = IFIMG_CHANNEL_CN7
dwChangePattern[3] = 0
dwChangePattern[4] = 0
例 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)
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
483
キャプチャモード対応表
キャプチャモード 5520 5521 5522 5523 5530 5531 5532 5533
IFIMG_CAPTURE_NORMAL ○ ○ ○ ○ ○ ○ ○ ○
IFIMG_CAPTURE_THINOUT ○ ○ ○ ○ ○ ○ ○ ○
IFIMG_CAPTURE_TIMER ○※ ○ ○ ○ ○ ○ ○ ○
IFIMG_CAPTURE_CH_FRAME - - - - ○ ○ ○ ○
IFIMG_CAPTURE_CH_TIMER - - - - ○ ○ ○ ○
※PCI-5520[12]C02 以降に対応しております。
版数、チェンジ番号の確認方法は User’s Manual をご参照ください。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
484
● 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;
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
485
メンバ 説明
dwDI 汎用入力割り込み
ビット 内容
bit31~bit8 予約
bit7 IN8 立ち下がり割り込み 1:有効
0:無効
bit6 IN7 立ち下がり割り込み 1:有効
0:無効
bit5 IN6 立ち下がり割り込み 1:有効
0:無効
bit4 IN5 立ち下がり割り込み 1:有効
0:無効
bit3 IN4 立ち下がり割り込み 1:有効
0:無効
bit2 IN3 立ち下がり割り込み 1:有効
0:無効
bit1 IN2 立ち下がり割り込み 1:有効
0:無効
bit0 IN1 立ち下がり割り込み 1:有効
0:無効
dwFrame キャプチャ状態割り込み
ビット 内容
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 予約
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
486
bit2 面積 AND 重心 1:有効
0:無効
bit1 重心 1:有効
0:無効
bit0 面積 1:有効
0:無効
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
487
● 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
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
488
●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 汎用入力割り込み
ビット 内容
bit31~bit8 予約
bit7 IN8 立ち下がり割り込み 1:有効
0:無効
bit6 IN7 立ち下がり割り込み 1:有効
0:無効
bit5 IN6 立ち下がり割り込み 1:有効
0:無効
bit4 IN5 立ち下がり割り込み 1:有効
0:無効
bit3 IN4 立ち下がり割り込み 1:有効
0:無効
bit2 IN3 立ち下がり割り込み 1:有効
0:無効
bit1 IN2 立ち下がり割り込み 1:有効
0:無効
bit0 IN1 立ち下がり割り込み 1:有効
0:無効
dwFrame キャプチャ状態割り込み
ビット 内容
bit31~bit4 予約
bit3 同期信号異常検知※
1:有効
0:無効
bit2 SDRAM データの DMA 転送 1:有効
0:無効
bit1 SDRAM キャプチャによる 1 フレーム
毎転送完了割り込み
1:有効
0:無効
bit0 1 フレーム毎転送完了割り込み 1:有効
0:無効
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
489
※この機能はお使いになっている製品のハードウェアのバージョン
よっては対応しておりません。
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 SDRAM キャプチャが完了したフレーム数です。
(1~FFFFFFFFh)
※FFFFFFFFh までカウント後、1に戻ります。
解像度が「320×240」または「160×120」の場合、0が返ります。
複数フレーム分のバッファ領域を確保している場合、描画処理等でこの
フレーム数の値を活用してください。
dwXcoordinates パターン一致トリガが有効の場合、パターン一致した測定対象物の X 座
標の重心値です。
解像度が「320×240」または「160×120」の場合、0が返ります。
dwPercentage パターン一致トリガが有効の場合、パターン一致した測定対象物の一致
率です。
解像度が「320×240」または「160×120」の場合、0が返ります。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
490
● 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;
}
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
491
●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 同期信号異常検知割り込み
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
492
bit13~bit12 予約
bit11 面積 AND 重心割り込み
bit10 重心トリガ割り込み
bit9 面積トリガ割り込み
bit8 フレーム転送完了割り込み
bit7 IN8 立ち下がり割り込み
bit6 IN7 立ち下がり割り込み
bit5 IN6 立ち下がり割り込み
bit4 IN5 立ち下がり割り込み
bit3 IN4 立ち下がり割り込み
bit2 IN3 立ち下がり割り込み
bit1 IN2 立ち下がり割り込み
bit0 IN1 立ち下がり割り込み
0:未発生
1:発生
WPARAM には、フレーム転送完了数が格納されます。
1 フレーム毎転送完了割り込みの有効/無効に関係なく格納されます。
hEvent イベント発生時にシグナル状態となるイベントオブジェクトのハンドル
を指定してください。
イベントオブジェクトを使用しない場合には、C 言語では NULL、Visual
Basic、Delphi では 0を指定してください。
pCallBackProc コールバック関数へのポインタ
ImgSetEventMask関数にて設定した各種割り込み発生時に呼び出されるユ
ーザ・コールバック関数のポインタを指定してください。
ユーザ・コールバック関数の呼び出しを行わない場合には、C 言語では
NULL、Visual Basic、Delphi では 0を指定してください。
dwUser(pUser) ユーザデータ
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
493
● 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;
}
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
494
●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 には以下の情報が格納されます。
ビット 内容 状態
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
495
bit31~bit15 予約
bit14 同期信号異常検知割り込み
bit13 パターン一致割り込み
bit12 予約
bit11 面積 AND 重心トリガ割り込み
bit10 重心トリガ割り込み
bit9 面積トリガ割り込み
bit8 フレーム転送完了割り込み
bit7 IN8 立ち下がり割り込み
bit6 IN7 立ち下がり割り込み
bit5 IN6 立ち下がり割り込み
bit4 IN5 立ち下がり割り込み
bit3 IN4 立ち下がり割り込み
bit2 IN3 立ち下がり割り込み
bit1 IN2 立ち下がり割り込み
bit0 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 ユーザデータ
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
496
● 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;
}
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
497
メンバ 説明
dwDataFormat データフォーマットを指定します。
画像フォーマット識別子
識別子 内容 値
IFIMG_COLOR_RGB32 RGB32 bit 1h
IFIMG_COLOR_RGB24 RGB24 bit(デフォルト) 2h
IFIMG_COLOR_RGB15 RGB15 bit 3h
IFIMG_COLOR_RGB16 RGB16 bit Bh
IFIMG_COLOR_GRAY8 GRAY8 bit 4h
IFIMG_COLOR_RED8 R 8bit 5h
IFIMG_COLOR_GREEN8 G 8bit 6h
IFIMG_COLOR_BLUE8 B 8bit 7h
IFIMG_COLOR_BIN8 2 値化処理データ 8bit 8h
IFIMG_COLOR_CMP8 比較用データ 8bit Ah
IFIMG_COLOR_GRAY10 GRAY 10bit Eh
IFIMG_COLOR_GRAY12 GRAY 12bit Fh
IFIMG_COLOR_GRAY14 GRAY 14bit 10h
IFIMG_COLOR_GRAY16 GRAY 16bit 11h
解像度識別子(OR 演算による設定)
内容
識別子 NTSC/
CameraLinkPAL
値
IFIMG_RESOLUTION_640_480 640×480 未対応 0h
IFIMG_RESOLUTION_320_240 320×240 未対応 80000000h
IFIMG_RESOLUTION_160_120 160×120 未対応 40000000h
IFIMG_RESOLUTION_768_572 未対応 768×572 8000000h
IFIMG_RESOLUTION_384_286 未対応 384×286 4000000h
IFIMG_RESOLUTION_192_143 未対応 192×143 2000000h
画像処理結果識別子(OR 演算による設定)
識別子 内容 値
IFIMG_MEASUEMENT_HSIT 濃度分布 200h
IFIMG_MEASUEMENT_PRO 射影 400h
画像拡大識別子(OR 演算による設定)
識別子 内容 値
IFIMG_DIGTALZOOM_2 縦横 2倍のサイズで拡大 100000h
IFIMG_DIGTALZOOM_4 縦横 4倍のサイズで拡大 200000h
画像データの種類(OR 演算による設定)
識別子 内容 値
IFIMG_NTSC_RESOLUTION NTSC 0h
IFIMG_CL_RESOLUTION CameraLink 10000h
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
498
dwXCoordinates 読み込み開始 X座標
dwYCoordinates 読み込み開始 Y座標
dwXLength X 方向長さ
dwYLength X 方向長さ
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
499
● 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
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
500
●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 ImgAllocateSDRAM関数で取得したハンドルを指定します。
比較エリア自動補正機能
識別子 内容 値
IFIMG_AUTO_ENABLE 自動補正有効 1h
IFIMG_AUTO_DISABLE 自動補正無効(デフォルト) 2h
dwAutoRevision
dwXCoordinates 比較開始 X座標 デフォルト 0
dwYCoordinates 比較開始 Y座標 デフォルト 0
dwPercentage 比較データとの一致率(0~100%) デフォルト 60%
dwTriggerMode パターン一致トリガの発生条件
識別子 内容 値
IFIMG_PTNMATCH_NORMAL 比較データとの一致率が
dwPercentage 以上の場合
トリガ発生 (デフォル
ト)
1h
IFIMG_PTNMATCH_REVERSAL 比較データとの一致率が
dwPercentage より下の場
合トリガ発生
2h
IFIMG_PTNMATCH_NONE トリガ発生なし 3h
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
501
● 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
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
502
●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)
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
503
● 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];
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
504
}
}
●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
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
505
●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 赤成分の階調変換データ
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
506
● 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
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
507
●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)
(フィルタ係数設定例)
0 1 0
1 -4 1
0 1 0
-1 0 1
-2 0 2
-1 0 1
ラプラシアン(4近傍) Sobel(X 近傍)
1 1 1
1 -8 1
1 1 1
ラプラシアン(8近傍)
-1 -2 -1
0 0 0
1 2 1
Sobel(Y 近傍)
-1 0 1
-1 0 1
-1 0 1
Prewitt(X 近傍)
-1 -1 -1
0 0 0
1 1 1
Prewitt(Y 近傍)
b a c
e d f
h g i
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
508
● 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 段)
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
509
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 連結
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
510
● 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より少ない解像度は利用できません。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
511
YStart 取り込み開始位置のY座標 設定範囲:0 ~ YMAX (YMAX) 使用カメラの垂直解像度-480 ※垂直解像度が 480 より少ない解像度は利用できません。
SyncMode 予約機能です。 0値固定です。
LVALInterVal 予約機能です。 0値固定です。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
512
● 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
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
513
●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 カウンタ方向を指定します。 識別子 値 内容
IFIMGCL_DIRECTION_NORMAL 00000000h 通常方向
IFIMGCL_DIRECTION_REVERSE 00000001h リバース方向
Edge カウント逓倍を指定します。 識別子 値 内容
IFIMGCL_SINGLE_EDGE 00000000h 1 逓倍
IFIMGCL_DOUBLE_EDGE 00000001h 2 逓倍
IFIMGCL_QUAD_EDGE 00000002h 4 逓倍
PulseMode カウント方式を指定します。 識別子 値 内容
IFIMGCL_SINGLE_PHASE_MODE 00000000h 差動入力方式エンコー
ダカウンタ
単相パルスカウントモ
ード
IFIMGCL_PHASE_SHIFTED_MODE 00000001h 差動入力方式エンコー
ダカウンタ
位相差パルスカウント
モード
StartMode
識別子 値 内容
IFIMGCL_CNT_START_NONE 00000000h 通常カウントモード
IFIMGCL_CNT_START_DIN1 00000001h 汎用入力DIN1がLow→
High へ変化した時
IFIMGCL_CNT_START_ZPHASE 00000002h エンコーダカウントモ
ードのみ有効
Z 相へ 1 パルス入力さ
れたらスタートする。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
514
StartCounter エンコーダカウンタ開始後の初回カウンタの周期を設定します。
これを設定すると、エンコーダカウンタは、StartCounter のカウンタ
周期後に、ImgSetCounterCycle で指定した周期でカウントアップしま
す。
FilterBaceClock エンコーダカウンタのデジタルフィルタ設定
基準クロックを設定します。
識別子 値 内容
IFIMGCL_CLOCK_100_NANO 00000000h 基準クロックを 100ns
に設定する。
IFIMGCL_CLOCK_10_MICRO 00000001h 基準クロックを 10μs
に設定する。
FilterCount エンコーダカウンタのデジタルフィルタ設定
カウント数を指定します。(1~32767)
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
515
● 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 時
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
516
● 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 年
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
517
● 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座標を指定します。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
518
● 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座標を指定します。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
519
4.5 戻り値一覧
エラー識別子 値 意味 対処方法
IFIMG_ERROR_SUCCESS 0 正常終了 -
IFIMG_ERROR_NOT_DEVICE C0000001h
(-1073741823)
ドライバを呼び出せま
せん。
指定したデバイスが見つかりません
でした。
指定したデバイス番号が存在するか
どうかを確認してください。
IFIMG_ERROR_NOT_OPEN C0000002h
(-1073741822)
ドライバを OPEN できま
せん。
デバイスのオープン時、何らかのエラ
ーが発生しました。
ドライバ内部のメモリ確保に失敗し
たなど。
IFIMG_ERROR_INVALID_DEVICE_HAND
LE
C0000003h
(-1073741821)
デバイスハンドルが正
しくありません。
不正なデバイスハンドルで呼び出し
を行おうとしました。
OPEN 関数で返されたデバイスハンド
ルを使用してください。
IFIMG_ERROR_ALREADY_OPEN C0000004h
(-1073741820)
既に OPEN されているデ
バイスです。
既に OPEN されているデバイスです。
IFIMG_ERROR_NOT_SUPPORTED C0000009h
(-1073741815)
サポートされていない
API 関数です。
使用しているインタフェースモジュ
ールではサポートされていない機能
です。
IFIMG_ERROR_INVALID_PARAMETER C00000010h
(-1073741808)
引数の値が正しくあり
ません。
設定可能範囲外または予想外のパラ
メータが渡されました。
正しい値を指定して下さい。
IFIMG_ERROR_NOT_ALLOCATE_MEMORY C0000021h
(-1073741791)
作業用のメモリの確保
に失敗しました。
メモリの空き容量を増やしてから実
行して下さい。
IFIMG_ERROR_NOW_CAPTURING C0001000h
(-1073737728)
キャプチャ(DMA 転送)
中です。
キャプチャ(DMA 転送)中の為、設定
できません。
一旦停止してから設定して下さい。
IFIMG_ERROR_NOW_STOP C0001001h
(-1073737727)
キャプチャ(DMA 転送)
停止中です。
-
IFIMG_ERROR_NULL_POINTER C0001002h
(-1073737726)
NULL ポインタを指定し
ました。
データ格納先が NULL ポインタとなっ
ています。
格納先のメモリを確保して下さい。
IFIMG_ERROR_WRITE_FAILED C0001003h
(-1073737725)
デコーダまたはエンコ
ーダに対する書き込み
に失敗しました。
-
IFIMG_ERROR_READ_FAILED C0001004h
(-1073737724)
デコーダまたはエンコ
ーダに対する読み込み
に失敗しました。
-
IFIMG_ERROR_NOBUFFER C0001005h
(-1073737723)
DMA転送先バッファを設
定していません。
ImgSetBuffer 関 数 ( ま た は
ImgSetBufferVB関数)で、バッファ領
域を指定してください。
IFIMG_ERROR_INVALID_OFFSET C0001006h
(-1073737722)
デコーダまたはエンコ
ーダに対するオフセッ
トに誤りがあります。
-
IFIMG_ERROR_SDRAM_NOW_CAPTURING C0001007h
(-1073737721)
キャプチャ(SDRAM転送)
中です。
SDRAM によるキャプチャ中に為、設定
ができません。
一旦停止してから設定してください。
IFIMG_ERROR_SDRAM_NOW_STOP C0001008h
(-1073737720)
キャプチャ(SDRAM転送)
停止中です。
-
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
520
IFIMG_ERROR_NOT_SET_COMPDATA C0001009h
(-1073737719)
比較用画像データが書
き込まれていません。
ImgWriteComparisonData 関数で比較
用画像データを書き込んでください。
IFIMG_ERROR_SDRAM_NOTSET_CAPDATA C000100ah
(-1073737718)
SDRAMキャプチャ用の領
域がセットされてませ
ん。
ImgSetSDRAM 関数でキャプチャを行
う SDRAM 領域を指定してください。
IFIMG_ERROR_NOT_COMPDATA C000100bh
(-1073737717)
指定した領域は比較用
画像データの領域では
ありません。
-
IFIMG_ERROR_INVALID_SDRAM_HANDLE C000100ch
(-1073737716)
SDRAMハンドルが正しく
ありません。
渡したハンドルに対する SDRAM 領域
が存在しません。
IFIMG_ERROR_SDRAM_NOT_CAPDATA C000100dh
(-1073737715)
指定した領域はキャプ
チャ用データではあり
ません。
確保した領域が比較用データとして
確保していると考えられます。
IFIMG_ERROR_SDRAM_NOMEMORY C000100eh
(-1073737714)
確保可能な SDRAM 領域
が見つかりませんでし
た。
必要のない SDRAM 領域を解放して、
SDRAM の空き領域を確保してくださ
い。
IFIMG_ERROR_INVALID_FORMAT C000100fh
(-1073737713)
カラーフォーマットの
設定が不正です。
現在のカラーフォマッ
トの設定では、実行でき
ません。
DMA転送によるキャプチャとSDRAMへ
のキャプチャを行う場合、両方のカラ
ーフォーマットの設定を同じにする
必要があります。
(ImgSetBuffer,ImgSetSDRAM)
IFIMG_ERROR_NOW_SDRAM_BM C0001010h
(-1073737712)
SDRAM データの DMA転送
中です。
SDRAMデータのDMA転送中に実行する
ことはできません。
IFIMG_ERROR_INVALID_FILEPARAMETER C0001013h
(-1073737709)
カメラコンフィグファ
イルのパラメータが間
違っています。
ファイル内に記載しているパラメー
タ値か、書式が不正です。テキスト形
式で開いて確認してください。
IFIMG_ERROR_NOTSET_CAMFILE C0001014h
(-1073737708)
カメラコンフィグファ
イを設定していません。
ImgSetCLCaptureConfig 関数でカメ
ラファイルを設定してください。
IFIMG_ERROR_SERIAL_TIMEOUT C0001015h
(-1073737707)
カメラとのシリアル通
信でタイムアウトが発
生した。
カメラへの送信処理が停止していま
す。カメラからの受信処理が停止して
います。
IFIMG_ERROR_SERIAL_FIFO_OVERRUN C0001016h
(-1073737706)
FIFO がオーバーランし
ています。
FIFO がオーバーランしている為、受
信データを取りこぼしている可能性
があります。
IFIMG_ERROR_FAILED_CAPTURE C0001017h
(-1073737705)
キャプチャに敗しまし
た。
ドライバ内部でキャプチャ処理に失
敗しています。再オープンするなどし
て、再度初期化してください。
IFIMG_ERROR_FAILED_CAPSTOP C0001018h
(-1073737704)
キャプチャの停止に失
敗しました。
停止処理が完了していません。
IFIMG_ERROR_FAILED_DEVIOCTL C000101Bh
(-1073737701)
デバイス I/O コントロ
ール処理に失敗しまし
た。
ドライバ処理が失敗しています。
IFIMG_ERROR_OTHER_ERR C000101Ch
(-1073737700)
何かしらの原因で動作
にエラーが発生してい
まます。
-
IFIMG_ERROR_NOW_IMPOSEDATA_WRITE C000101Dh
(-1073737699)
スーパーインポーズ画
像書き込み中。
書き込みが完了まで待機してくださ
い。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
521
4.6 動作仕様
■ キャプチャ開始、停止
キャプチャ動作は、ImgStartCapture関数実行後、次フレームからのタイミングでキャプチャが開始
されます。(カメラからの同期信号のタイミングでキャプチャが開始されます。)
下図の場合、フレーム(-1)のデータは、キャプチャされず、フレーム①のデータから実際にキャプチ
ャされます。
ImgSetEventMask関数で設定する「フレーム転送完了割り込み」とは、図の青い矢印(↓)を表しま
す。割り込み発生する時間タイミングは約 33ms毎です。つまり、1 秒間に約 30 フレーム分のデータ
をキャプチャします。
ImgStopCapture関数にて、1フレーム単位での停止を実行した場合、その時のフレーム転送が完了し
た時点で停止します。(図の場合、フレーム④の転送が完了した時点で停止します)
フレーム
②
フレーム
③
フレーム
①
フレーム
(-1)
フレーム
④
フレーム
(-1)
フレーム
①
フレーム
②
ImgStartCaputure 関数 実行
フレーム転送完了割り込み発生 A
ImgStopCaputure 関数実行 ImgStartCaputure 関数
約 33ms 約 33ms 約 33ms 約 33ms 約 33ms約 33ms
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
522
■ キャプチャデータの転送(バスマスタ)
画像入力インタフェースモジュールはユーザが指定したバッファ領域に対してバスマスタ転送方
式でキャプチャデータを直接転送します。
ImgStartCapture関数にてフレーム転送数を指定する事が可能です。指定数が 0 の場合は、
ImgStopCapture関数を実行するまで転送します。
ユーザが指定したバッファ領域のサイズが、フレーム転送数分のサイズより小さい場合、リングバッ
ファ形式によりバッファ領域の先頭から上書き転送されます。
※キャプチャ実行中における注意事項
■ キャプチャデータの転送(SDRAM)
画像入力インタフェースモジュールは、ImgAllocateSDRAM関数で確保し、ImgSetSDRAM関数にて指
定したSDRAM領域に対してキャプチャデータを転送します。
ImgStartCapture関数にてフレーム転送数を指定する事が可能です。指定数が 0 の場合は、
ImgStopCapture関数を実行するまで転送します。
ユーザが指定した SDRAM 領域のサイズが、フレーム転送数分のサイズより小さい場合、リングバッフ
ァ形式により SDRAM 領域の先頭から上書き転送されます。
ImgStartCapture関数を呼び出し、キャプチャ(バスマスタ転送)を実行している
中は、絶対に指定バッファ領域を解放しないでください。
ImgStopCapture関数でキャプチャ停止を行い、ImgGetCaptureStatus関数で、キャプ
チャが停止いていることを確認した後、バッファ領域を解放してください。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
523
■ SDRAM 使用時における注意(PCI/CTP/CPZ-55x1,55x3 使用時)
PCI/CTP/CPZ-55x1,55x3 のキャプチャ操作にあたり、外部から入力したデータの流れは以下のよ
うになっています。
カラーフォーマット
2 値化処理
重心・面積算出
SDRAM
DMAC
PCI I/F
FIFO
PCI Bus
A
BD
入力チャンネル
C
※PCI/CTP/CPZ-55x1 には 2値化処理は含まれません。
経路 内容 制御関数
A 入力データを DMA 転送によりメインメモリへ転送しま
す。
(DMA 転送によるキャプチャ)
ImgSetBuffer
ImgStartCapture
B 入力データを SDRAM へ転送します。
(SDRAM へのキャプチャ)
ImgAllocateSDRAM
ImgSetSDRAM
ImgStartCapture
C SDRAM 領域内のデータを取得します。 ImgReadCaptureData
D SDRAM 領域内のデータを DMA 転送によりメインメモリへ
転送します。
(SDRAM データの DMA 転送)
ImgSetBuffer
ImgBmCapture
※1 A,B は同時に制御可能。
※2 D は単独で実行する必要があります。A,B,C の何れとも同時に制御出来ません。
※3 B,C は同時に制御できません。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
524
■ 画像データのフォーマットについて
ImgSetBuffer関数(または ImgSetBufferVB関数)にて設定したメモリ領域へ転送される画像データ
のフォーマットを説明します。
カラーフォーマットの設定により、データ形式が異なります。
デフォルト設定値は RGB24 bit です。
RGB32bit 形式で動作させた場合、バスマスタ転送中の PCI バス占有率が大きくなるため、動作が不
安定になる可能性がありますので、RGB24bit 形式を推奨します。
Pixcel Data Format1※
bit31~bit24 bit23~bit16 bit15~bit8 bit7~bit0
RGB32 予約 R G B
B1 R0 G0 B0
G2 B2 R1 G1
RGB24
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
Pixcel Data Format
bit31
~
bit27
bit26
~
bit21
bit20
~
bit16
bit15
~
bit11
bit10
~
bit5
bit4
~
bit0
RGB162※ R1 G1 B1 R0 G0 B0
Pixcel Data Format
bit31 bit30
~
bit26
bit25
~
bit21
bit20
~
bit16
bit15
bit14
~
bit10
bit9
~
bit5
bit4
~
bit0
RGB153※ 0 R1 G1 B1 0 R0 G0 B0
※1 R:赤成分データ G;緑成分データ B:青成分データ Y:輝度データ
※2 R1/R0, G1/G0, B1/B0 は、RGB32 のデータに対して上位 5bit(bit7~bit3)のデータ
です。
※3 R1/R0, G1/G0, B1/B0 は、RGB32 のデータに対して、R成分と B成分は上位 5bit
(bit7~bit3)のデータです。G成分は上位 6bit(bit7~bit2)のデータです。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
525
■ 解像度について 解像度を指定するにあたり、キャプチャデータの構造が異なります。
NTSC 対応画像入力製品と PAL 対応画像入力製品では、取り扱い解像度が異なります。
● 大解像度
NTSC の 大解像度は 640×480 となります。
・水平ラインデータは、640pixel です。
・垂直ラインデータは、
①画像データの奇数フィールド(240 ライン)
②画像データの偶数フィールド(240 ライン)
の順番になります。
ライン 3(奇)
ライン 5(奇)
…
…
ライン 1(奇)
ライン 476(偶)
ライン 478(偶)
ライン 480(偶)
垂直ラインデータ
1 2 648 639 640
水平ラインデータ
PAL の 大解像度は 768×572 となります。
・水平ラインデータは、768pixel です。
・垂直ラインデータは、
①画像データの奇数フィールド(286 ライン)
②画像データの偶数フィールド(286 ライン)
の順番になります。
ライン 3(奇)
ライン 5(奇)
…
…
ライン 1(奇)
ライン 568(偶)
ライン 570(偶)
ライン 572(偶)
垂直ラインデータ
1 2 766 767 768
水平ラインデータ
例えば、NTSC 製品で「RGB32」(解像度:640×480)のデータは以下のようになっています。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
526
640 (pixel)
480 (pixel)
1 (pixel) = 4 byte
奇数フィールドデータ
偶数フィールドデータ
1
240241
480
奇数フィールドデータと偶数フィールドデータを交互に配置することで、フレームデータとなります。
ライン フィールド バッファ内のデータ位置
1 奇数フィールドデータ 1 番目
2 偶数フィールドデータ 241 番目
3 奇数フィールドデータ 2 番目
4 偶数フィールドデータ 242 番目
5 奇数フィールドデータ 3 番目
6 偶数フィールドデータ 243 番目
7 奇数フィールドデータ 4 番目
8 偶数フィールドデータ 244 番目
… … …
479 奇数フィールドデータ 240 番目
480 偶数フィールドデータ 480 番目
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
527
●1/2 解像度
NTSC の 1/2 解像度は 320×240 となります。
・水平ラインデータは、解像度 640×480 の 1 フレームデータを 1pixel おきに間引いたデータです。
・垂直ラインデータは、解像度 640×480 の 1 フレームデータを 1ラインおきに間引いたデータです。
(奇数フィールドラインデータをメインメモリへ転送します。)
ライン 3
ライン 5
…
…
ライン 1
ライン 475
ライン 477
ライン 479
垂直ラインデータ
1 3 635 637 639
水平ラインデータ
PAL の 1/2 解像度は 384×286 となります。
・水平ラインデータは、解像度 768×572 の 1 フレームデータを 1pixel おきに間引いたデータです。
・垂直ラインデータは、解像度 768×572 の 1 フレームデータを 1ラインおきに間引いたデータです。
(奇数フィールドラインデータをメインメモリへ転送します。)
ライン 3
ライン 5
…
…
ライン 1
ライン 567
ライン 569
ライン 571
垂直ラインデータ
1 3 763 765 767
水平ラインデータ
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
528
●1/4 解像度
NTSC の 1/4 解像度は 160×120 となります。
・水平ラインデータは、解像度 320×240 の 1 フレームデータをさらに 1pixel おきに間引いたデータ
です。
・垂直ラインデータは、解像度 320×240 の 1 フレームデータをさらに 1 ラインおきに間引いたデー
タです。
ライン 5
ライン 9
…
…
ライン 1
ライン 469
ライン 473
ライン 477
垂直ラインデータ
1 5 629 633 637
水平ラインデータ
PAL の 1/2 解像度は 192×143 となります。
・水平ラインデータは、解像度 384×286 の 1 フレームデータをさらに 1pixel おきに間引いたデータ
です。
・垂直ラインデータは、解像度 384×286 の 1 フレームデータをさらに 1 ラインおきに間引いたデー
タです。
ライン 5
ライン 9
…
…
ライン 1
ライン 571
ライン 575
ライン 579
垂直ラインデータ
1 5 757 761 765
水平ラインデータ
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
529
■ フレームサイズについて
1 フレームのサイズは、カラーフォーマット、解像度の設定によって以下のようになっています。
フレームサイズ(byte) = 1 ラインの Pixel 数 × 垂直ライン数 × 1pixel のバイト数
NTSC 製品
Format 640×480 320×240 160×120
RGB32 640×480×4 = 1228800 320×240×4 = 307200 160×120×4 = 76800
RGB24 640×480×3 = 921600 320×240×3 = 230400 160×120×3 = 57600
RGB15 640×480×2 = 614400 320×240×2 = 153600 160×120×2 = 38400
GRAY8 640×480×1 = 307200 320×240×1 = 76800 160×120×1 = 19200
RED8 640×480×1 = 307200 320×240×1 = 76800 160×120×1 = 19200
GREEN8 640×480×1 = 307200 320×240×1 = 76800 160×120×1 = 19200
BLUE8 640×480×1 = 307200 320×240×1 = 76800 160×120×1 = 19200
2 値化 640×480×1 = 307200 320×240×1 = 76800 160×120×1 = 19200
PAL 製品
Format 768×572 384×286 192×143
RGB32 768×572×4 = 1757184 384×286×4 = 439296 192×143×4 = 109824
RGB24 768×572×3 = 1317888 384×286×3 = 329472 192×143×3 = 82368
RGB15 768×572×2 = 878592 384×286×2 = 219648 192×143×2 = 54912
GRAY8 768×572×1 = 439296 384×286×1 = 109824 192×143×1 = 27456
RED8 768×572×1 = 439296 384×286×1 = 109824 192×143×1 = 27456
GREEN8 768×572×1 = 439296 384×286×1 = 109824 192×143×1 = 27456
BLUE8 768×572×1 = 439296 384×286×1 = 109824 192×143×1 = 27456
■ 確保するバッファのサイズの制限について ImgSetBuffer関数(または ImgSetBufferVB関数)で指定するバッファサイズには制限があります。
(x86 環境の場合)
大 63.97MB まで。
(x64 環境の場合)
大 256MB まで。
※ Windows Xp/Server2003 の 64bitOS の場合は約 32MB まで。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
530
■ 2 値画像処理とキャプチャ処理 二値画像処理機能対応の画像入力インタフェースモジュールの操作にあたり、二値画像処理とキャ
プチャ処理の方法を説明します。
① PCI/CTP/CPZ-55x2、CBI/CSI/PEX/LPC-530215 の場合
データフォーマット選択
VideoDecoder
NTSC信号入力
CN
DMA 転送
制御
キャプチャデータ
格納バッファ領域
ImgSetTriggerConfig 関数
ImgSetEventMask 関数
ImgGetCaotureStatus 関数
ImgGetMeasurementValue 関数
2 値化データ
ImgSetBinarizationConfig 関数 2 値化演算処理
重心値
トリガ割り込みの設定
重心トリガ割り込み
面積トリガ割り込み
面積 AND 重心トリガ割り込み
トリガステータスの取得
重心トリガステータス
面積トリガステータス
面積 AND 重心トリガステータス
色成分の選択
R/G/B/Y
2 値化処理
画像データ
2 値画像
2 値化データ 8bit
カラー画像
RGB32/24/16/15bit GRAY8bit(Y)
R 8bit G 8bit B 8bit
ImgSetBuffer 関数
RGB24 カラー
格納バッファ領域の指定
面積値
RGB カラー
② PCI/CTP/CPZ-55x3 の場合
データフォーマット選択
VideoDecoder
NTSC信号入力
CN
DMA 転送
制御
キャプチャデータ
格納バッファ領域
ImgSetTriggerConfig 関数
ImgSetEventMask 関数
ImgGetCaotureStatus 関数
ImgGetMeasurementValue 関数
2 値化データ
ImgSetBinarizationConfig 関数 2 値化演算処理
重心値
トリガ割り込みの設定
重心トリガ割り込み
面積トリガ割り込み
面積 AND 重心トリガ割り込み
トリガステータスの取得
重心トリガステータス
面積トリガステータス
面積 AND 重心トリガステータス
色成分の選択
R/G/B/Y
2 値化処理
画像データ
2 値画像
2 値化データ 8bit
カラー画像
RGB32/24/16/15bit GRAY8bit(Y)
R 8bit G 8bit B 8bit
ImgSetBuffer 関数
RGB24 カラー
格納バッファ領域の指定
面積値
RGB カラー
ImgAllocateSDRAM 関数
ImgSetSDRAM 関数
キャプチャデータ
SDRAM 領域
SDRAM 転送
制御
SDRAM 領域の指定
③ PCI/CTP/CPZ-55x4 の場合
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
531
データフォーマット選択
VideoDecoder
NTSC信号入力
CN
DMA 転送
制御
キャプチャデータ
格納バッファ領域
ImgSetTriggerConfig 関数
ImgSetEventMask 関数
ImgGetCaotureStatus 関数
ImgGetMeasurementValue 関数
2 値化データ
ImgSetBinarizationConfig 関数 2 値化演算処理
トリガ割り込みの設定
重心トリガ割り込み
面積トリガ割り込み
面積 AND 重心トリガ割り込み
トリガステータスの取得
重心トリガステータス
面積トリガステータス
面積 AND 重心トリガステータス
色成分の選択
R/G/B/Y
2 値化処理
画像データ
2 値画像
2 値化データ 8bit
カラー画像
RGB32/24/16/15bit GRAY8bit(Y)
R 8bit G 8bit B 8bit
ImgSetBuffer 関数
RGB24 カラー
格納バッファ領域の指定
RGB カラー
フェレ径
慣性等価楕円の傾き角
画像処理データ
濃度分布データ
射影データ
面積値
重心値
【バスマスタによるキャプチャの設定】
キャプチャ可能なデータは、RGB/GRAY データ、2値化処理データのどちらか一方です。
ImgSetBuffer関数(または ImgSetBufferVB関数)で、転送先バッファを設定します。
また、2値化処理データをキャプチャする場合、ImgSetBinarizationConfig関数で設定した色成分で
処理したデータをキャプチャします。
【SDRAM によるキャプチャの設定】
キャプチャ可能なデータは、RGB/GRAY データ、2値化処理データのどちらか一方です。
ImgAllocateSDRAM関数でSDRAM領域を確保して、ImgSetSDRAM関数でキャプチャしたい領域を指定しま
す。
また、2値化処理データをキャプチャする場合、ImgSetBinarizationConfig関数で設定した色成分で
処理したデータをキャプチャします。
※バスマスタ、SDRAM を同時にキャプチャする際は必ず、同じキャプチャモードを選択してください。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
532
【2 値化処理の設定】
しきい値、2値化対象色成分の選択などの 2値化処理の設定は ImgSetBinarizationConfig関数で実
行します。
2 値化は、8bit のデータに対し、しきい値を設定して行います。
しきい値には、上限値と下限値の2つを設定します。
2 値化結果は、上限値と下限値の間が「白(データ FFh)」、それ以
外が「黒(データ 00h)」となります。
(IMGBINCONFIG 構造体のメンバ変数 dwBinarizationMode に
IFIMG_BINMOED_REVERSAL を指定する事により、白黒の反転を行う
ことができます。)
通常しきい値を 1つだけ使用するときは、上限値を「255」にして下限値のみを調整します。
本製品は 2値化処理した画像データから、面積値と重心値を求めています。
上限閾値を 255、下限閾値を A とした場合
しきい値
255
0
下限 A
B
白(データ FFh)
黒(データ 00h)
しきい値 B
しきい値 A
上限閾値を 255, 下限閾値を B とした場合
255
0
A
下限 B
白(データ FFh)
黒(データ 00h)
しきい値
上限閾値を A 、下限閾値を B に設定した場合
255
0
上限 A
下限 B
黒(データ 00h)
白(データ FFh)
しきい値
黒(データ 00h)
しきい値(上限)
しきい値(下限)
2値化結果
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
533
【測定範囲の指定】
面積値、重心値は、カメラなどの機器より取り込んだフレームデータに対して 2値化処理を行い。
処理データに対して、測定します。
ImgSetMeasurementRange関数で、フレーム内の測定範囲を指定します。
(0,0)
↓dwStartingPointXdwStartingPointY→
測定エリア
(639,479)
対象物体
dwXLength
dwYLength
【2 値画像処理結果の取得】
ImgGetMeasurementValue関数、ImgGetMeasurementValueEx関数で、測定対象物の 2値画像処理結果を
取得します。
フレーム
n-1
フレーム
nフレーム
n-2
ImgGetMeasurementValue 実行
フレーム(n-1)に対するする 2 値画像処理結果を取得します
キャプチャ中のフレーム
また、ImgStartCapture関数で、実際にキャプチャを実行してない場合でも、映像入力機器からのフ
レームデータに対する面積値、重心値を取得することが可能です。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
534
【トリガの設定】
ImgSetTriggerConfig関数で、トリガ発生の有効/無効の設定と発生条件の設定を行います。無効に設
定すると、トリガは発生しません。
トリガ発生の有無は ImgGetCaptureStatus関数,または ImgGetCaptureStatusEx関数でトリガ状態の
取得、またはトリガ発生による割り込みイベントで確認することができます。
【トリガ発生割り込み】
トリガ発生による割り込み通知の有効/無効は ImgSetEventMask関数で設定します。
割り込み通知が無効な状態でも、ImgSetTriggerConfig関数でトリガが有効に設定している場合はト
リガ自身は動作しています。この場合、ImgGetCaptureStatus関数でトリガ発生の有無を確認するこ
とが可能です。
【トリガ発生タイミング】
トリガ発生の有無は ImgGetCaptureStatus関数,または ImgGetCaptureStatusEx関数で取得する
IMGCAPSTATUS構造体またはIMGCAPSTATUSEX構造体のメンバ変数dwTriggerで確認します。
このdwTriggerの更新のタイミングは1フレーム転送完了割り込みマスクとトリガ発生割り込みマス
ク状態の有無により、異なります。
1 フレーム転送完了割り込み
マスク アンマスク
マスク タイミング①参照 トリガ発生
割り込み アンマスク タイミング②参照 タイミング③参照
(タイミング①)
ImgGetCaptureStatus関数,または ImgGetCaptureStatusEx関数が実行されるまで、dwTrigerの状態は
保持されたままです。
約 33ms
トリガ
約 33ms 約 33ms 約 33ms
dwTrogger 内のフラグ
約 33ms
ImgGetCaptureStatus 関数(ImgGetCaptureStatusEX 関数)を実
行された場合フラグがクリアされます。
何時の状態のトリガ状態なのか、知ることが出来ない可能性があり
ます。
(タイミング②)
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
535
トリガ発生した同じタイミングで割り込みイベントが通知されます。
ただし、ImgGetCaptureStatus関数,または ImgGetCaptureStatusEx関数が実行されるまで、dwTriger
の状態はそのまま保持されたままです。
約 33ms
トリガ
約 33ms 約 33ms 約 33ms
dwTrogger 内のフラグ
約 33ms
トリガ発生割り込みイベントは
トリガ発生時と同じタイミング
で発生します。
ImgGetCaptureStatus関数(ImgGetCaptureStatusEX関数)で dwTrigger を読み出した場合、フラグはクリアされます。
(タイミング③)
1 フレーム転送完了割り込みと同じタイミングで、トリガ発生イベントが通知されます。
約 33ms
トリガ
約 33ms 約 33ms 約 33ms
dwTrogger 内のフラグ
約 33ms
トリガ発生割り込みイベントは
1 フレーム転送完了割り込みと
同じタイミングで発生します。
ImgGetCaptureStatus 関数
(ImgGetCaptureStatusEX 関数)でdwTrigger を読み出した場合、フラ
グはクリアされます。
1 フレーム転送完了の割り込みタイ
ミングで dwTrigger内のフラグも更
新します。
■ 2 値画像処理機能の説明 ① 面積値
測定エリア内の有効画素数をカウントすることで、注目する対象物体の面積 Sを求めます。
面積 Sの 大値は、307,200(=640×480)です。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
536
Y
X
面積 S
測定エリア
② 重心値
測定エリア内の有効画素の各座標値を順次加算し(Σx,Σy)、それを面積 S で除算すると、重心
座標(XG,YG)が求められます。
重心座標(Xg,Yg)
測定エリアY
X
③ フェレ径
測定エリア内の対象物体を水平線と垂直線で囲んだときの 小長方形を外接長方形といい、外接長
方形の水平辺および垂直辺の長さをフェレ径といいます。
小矩形の 小 X座標(XMIN)、 大 X座標(XMAX)、 小 Y座標(YMIN)、 大 Y座標(YMAX)と、水平
方向の長さ(FeretH)と垂直方向の長さ(FeretV)を求めます。
外接長方形の辺は対象物体上にあります。
YMAX
YMIN
XMAXXMIN
FeretH
FeretV
測定エリアY
X
④ 慣性等価楕円の傾き角
測定エリア内における対象物体の慣性等価楕円の長軸とX軸が交わる角度をθとします。
本ドライバソフトウェアはθを-π/2~π/2 の範囲で出力します。
θは原点が左上の画像座標系による傾きです。時計回りは正の向きとなります。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
537
θ
傾き角θ
長軸
測定エリア
Y
X
慣性等価楕円
⑤ 濃度分布
測定エリア内での各濃度値の画素数を求めます。
指定した色成分に対する濃度値 0~255 の各画素数を取得します。
指定できる色成分は R成分、G成分、B成分、輝度成分です。
0 255
画 素 数
⑥ 射影
測定エリア内の対象物体の座標値を X座標および Y座標ごとに画素数をカウントしたものです。
測定エリア以外の座標値の画素数は全て 0となります。
測定エリア
0
479
0 639
Y
X
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
538
■ 画像処理データの取得方法 (CTP/CPZ/PCI-5524,5525,5534,5535 使用時) CTP/CPZ/PCI-5524,5525,5534,5535 での画像処理結果の取得方法は以下のようになります。
画像処理 取得方法
濃度分布 バスマスタ転送方式による指定バッファへの直接転送
射影 バスマスタ転送方式による指定バッファへの直接転送
面積 ImgGetMeasurementValueEx 関数で取得
重心 ImgGetMeasurementValueEx 関数で取得
フェレ径 ImgGetMeasurementValueEx 関数で取得
慣性等価楕円の傾き角 ImgGetMeasurementValueEx 関数で取得
濃度分布データと射影データは、ImgSetBuffer 関数で指定したバッファ領域に対してバスマスタ
転送によって取得します。キャプチャ処理と同様の制御です。
バスマスタ転送後のデータ配置を以下に示します。
(濃度分布のデータ配置) Data サイズ
bit31~bit24 bit23~bit16 bit15~bit8 bit7~bit0
1 フレーム目 濃度値 0の画素数
:
:
1024byte
未使用領域
1 フレーム目 濃度値 255 の画素数
:
:
:
:
N フレーム目 濃度値 0の画素数
:
:
1024byte
未使用領域
N フレーム目 濃度値 255 の画素数
(射影のデータ配置) Data サイズ
bit31~bit24 bit23~bit16 bit15~bit8 bit7~bit0
1 フレーム目 Y 座標 0の画素数 1 フレーム目 X 座標 0の画素数
1 フレーム目 Y 座標 1の画素数 1 フレーム目 X 座標 1の画素数
: :
1 フレーム目 Y 座標 479 の画素数 1 フレーム目 X 座標 479 の画素数
1 フレーム目 X 座標 480 の画素数
:
2560byte
未使用領域(無効データ)
1 フレーム目 X 座標 640 の画素数
:
:
:
:
N フレーム目 Y 座標 0の画素数 N フレーム目 X 座標 0の画素数
N フレーム目 Y 座標 1の画素数 N フレーム目 X 座標 1の画素数
: :
N フレーム目 Y 座標 479 の画素数 N フレーム目 X 座標 479 の画素数
N フレーム目 X 座標 480 の画素数
:
2560byte
未使用領域(無効データ)
N フレーム目 X 座標 640 の画素数
※測定エリア外の座標の射影データは 0データとなります。
キャプチャ処理と併用して取得する場合、濃度分布と射影データは画像データの後部に配置されます。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
539
Data
bit31~bit24 bit23~bit16 bit15~bit8 bit7~bit0
1 フレーム目の画像データ
1 フレーム目:濃度値 0 の画素数
:
未使用領域
1 フレーム目:濃度値 255 の画素数
1 フレーム目 Y 座標 0の画素数 1 フレーム目 X 座標 0の画素数
1 フレーム目 Y 座標 1の画素数 1 フレーム目 X 座標 1の画素数
: :
1 フレーム目 Y 座標 479 の画素数 1 フレーム目 X 座標 479 の画素数
1 フレーム目 X 座標 480 の画素数
:
未使用領域(無効データ)
1 フレーム目 X 座標 640 の画素数
:
:
N フレーム目の画像データ
N フレーム目 濃度値 0の画素数
:
未使用領域
N フレーム目 濃度値 255 の画素数
N フレーム目 Y 座標 0の画素数 N フレーム目 X 座標 0の画素数
N フレーム目 Y 座標 1の画素数 N フレーム目 X 座標 1の画素数
: :
N フレーム目 Y 座標 479 の画素数 N フレーム目 X 座標 479 の画素数
N フレーム目 X 座標 480 の画素数
:
未使用領域(無効データ)
N フレーム目 X 座標 640 の画素数
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
540
■ 画像変換機能の説明(CTP/CPZ/PCI-5525,5535) PCI/CPZ-55x5 の画像処理機能のブロック図と各画像処理の処理内容を説明します。
データフォーマット選択
VideoDecoder
NTSC信号入力
CN
指定バッファ領域
2 値化データ
ImgSetBinarizationConfig 関数
色成分の選択
R/G/B/Y
画像データ
2 値画像
2 値化データ 8bit
カラー画像
RGB32/24/16/15bit GRAY8bit(Y)
R 8bit/ G 8bit/ B 8bit
ImgSetBuffer 関数
RGB24 カラー
指定バッファ領域と
カラーフォーマットの指定
RGB24 カラー
画像処理データ
濃度分布データ
射影データ
階調変換
フィルタデータ 8bit
ImgSetTriggerConfig 関数
ImgSetEventMask 関数
ImgGetCaotureStatus 関数
ImgGetMeasurementValue 関数
2 値化演算処理
トリガ割り込みの設定
重心トリガ割り込み
面積トリガ割り込み
面積 AND 重心トリガ割り込み
トリガステータスの取得
重心トリガステータス
面積トリガステータス
面積 AND 重心トリガステータス
フェレ径
慣性等価楕円の傾き角
面積値
重心値
フィルタデータ
2 値化処理 膨張・収縮フィルタ処理
ImgSetColorgredient 関数
ImgSetLUT 関数
ImgSetFilter 関数 ImgSetDil_Er 関数
カメラから得られたRGB24bitカラー(もしくはモノクロ 8bit)の画像データは、ImgSetLUT関数で設定
した階調変換テーブルデータを元に階調変換されます。
その後、ImgSetColorIngredient関数で指定した色成分の画像データは、フィルタ処理、2 値化、膨
張・収縮処理の順番で画像処理されます。
フィルタ処理は ImgSetFilter関数で設定したフィルタ係数で処理します。膨張・収縮処理は
ImgSetDil_Er関数で設定した条件で処理します。
変換処理後の画像を元に、面積値、重心値、フェレ径、慣性等価楕円の傾き角、射影の算出を行ない
ます。
階調変換、フィルタ、膨張・収縮処理の有効と無効の選択は ImgSetConversionConfig関数で行ないま
す。
変換処理後の画像をキャプチャする場合、ImgSetBuffer関数(ImgSetBufferVB関数)でキャプチャした
い画像を選択する事ができます。
階調変換画像をキャプチャする場合は、通常のカラーモード(もしくはモノクロ)を指定します。
フィルタ処理後の画像をキャプチャしたい場合は、IFIMG_COLOR_FIL8 を指定します。
膨張・収縮処理後の画像をキャプチャしたい場合は、2値画像モードを指定します。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
541
本製品は、ImgSetConversionConfig関数で階調変換、フィルタ、膨張・収縮処理を組み合わせて、画
像をキャプチャしたり画像処理する事ができますが、以下の条件に限られます。
ImgSetConversinConfig 関数の
有効設定
キャプチャ出来る画像
階調変換 フィルタ 膨張・収縮 RGB 全般 GRAY8 2 値 フィルタ
2値画像処理
※
濃度分布
- - - ○ ○ ○ × ○ ○
○ - - ○ ○ ○ × ○ ○※
○ ○ - × × × ○ ○ ○
○ - ○ × × ○ × ○ ×
○ ○ ○ × × ○ × ○ ×
- ○ - × × ○ ○ ○ ○※
- ○ ○ × × ○ × ○ ×
- - ○ × × ○ × ○ ×
※ 2 値画像をキャプチャする場合は動作保証外です。フィルタ画像をキャプチャする場合は、フィル
タ画像に対する濃度分布処理となります。
フィルタ処理または膨張・収縮処理を有効にした場合、処理時間は約 2フレーム分時間を費やします。
キャプチャされる画像はカメラから取り込んだタイミングから 2 フレーム分遅れて転送される事に
なります。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
542
画像変換機能の詳細に関して以下に説明します。
① 階調変換
IMGLUTINFO 構造体にて R 成分、G 成分、B 成分の階調変換テーブルを設定します。 各色のテーブル(LUT)には 256 階調の 8bit データを格納します。
GRAY8bit 画像の階調変換を行なう場合、G 成分の LUT を使用してください。
インタフェースモジュールは R,G,B の各 8bit、またはモノクロ 8bit の画像データの値に相当する
テーブル番地に格納している値を参照することで階調変換を行ないます。
R
元画素データ
:0x10
:
:
:
:
0xDF
:
R 成分
G B
0x25 0x10 0xDF
0xDA
:
0x25
:
0xFF
:
:
:
G 成分
:
:
:
:
0x20
:
:
:
B 成分
:: : :R G B
0xDA 0xFF 0x20
変換後画素データ
② 3×3 空間フィルタ
注目する画素とその周囲 8 画素の 3×3 領域に対して、IMGFILTER 構造体で定義したフィルタ係数
を掛け合わせ、その総和を注目画素のフィルタ処理結果とします。
フィルタ係数は、-15~15 までの任意の整数を割り当てることが可能です。
フィルタ処理結果が 0以下のときは 0,255 以上のときは 255 とします。 ・
・
・
・
・
・
・
0xC3
0xC4
0xC0
・
・
0xCF
0xFF
0xC4
・
・
0xC9
0xCE
0xFF
・
・
・
・
・
・
0
1
0
1
-4
1
0
1
0
・
・
・
・
・
・
・
・
・
・
・
・
0xD7
・
・
・
・
・
・
・
・
・
・
・
・
3×3空間フィルタ係数
(0×0xC3) + (1×0xCF) + (0×0xC9) + (1×0xC4)+ (-4×0xFF)
+ (1×0xCE) + (0×0xC0) + (1×0xC4) + (0×0xFF) = 0xD7
元画素データ フィルタ処理後データ
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
543
画像の四隅または辺の画素に対するフィルタ処理は、近傍のデータを 0x00 として計算します。
0
1
0
1
-4
1
0
1
0
3×3空間フィルタ係数
(0×0x00) + (1×0x00) + (0×0x00) + (1×0x00)+ (-4×0x3F)
+ (1×0xCE) + (0×0x00) + (1×0xC4) + (0×0xFF) = 0x93
0x00
0x00
0x00
0x00
0x3F
0xC4
・
0x00
0xCE
0xFF
・
・
・
・
・・
・
・
・0x93
・
・
・
・
・
・
・
・
・
・
元画素データ(端の画素) フィルタ処理後データ
・ ・ ・
・
・
・
・
③ 3×3 差分型エッジ検出フィルタ
注目する画素とその周囲 8 画素の 3×3 領域に対して、IMGFILTER 構造体で定義したx方向フィル
タ係数で掛け合わせた結果 fx と、y方向フィルタ係数で掛け合わせた結果 fy とします。
フィルタの計算方法は 3×3空間フィルタと同様です。
|fx|+|fy|が注目画素の処理結果となります。|fx|+|fy|が 255 以上のときは 255 とします。
各フィルタ係数は、-15~15 までの任意の整数を割り当てることが可能です。重み係数の設定次
第で、Roberts, Prewitt, Sobel といったエッジ検出オペレータや、独自のフィルタを構成する事が
できます。
・
・
・
・
・
・
・
0xC3
0xC4
0xC0
・
・
0xCF
0xFF
0xC4
・
・
0xC9
0xCE
0xFF
・
・
・
・
・
・
-1
-2
-1
0
0
0
1
2
1
・
・
・
・
・
・
・
・
・
・
・
・
0x76
・
・
・
・
・
・
・
・
・
・
・
・
X 方向フィルタ係数
fx = (-1×0xC3)+(0×0xCF)+(1×0xC9)
+(-2×0xC4)+(0×0xFF)+(2×0xCE)
+(-1×0xC0)+(0×0xC4)+(1×0xFF)
= 0x59
元画素データ フィルタ処理後データ
Y方向フィルタ係数
-1
0
1
-2
0
2
-1
0
1 fy = (-1×0xC3)+(-2×0xCF)+(-1×0xC9)
+(0×0xC4)+(0×0xFF)+(0×0xCE)
+(1×0xC0)+(2×0xC4)+(1×0xFF)
= 0x1D
f = fx+fy = 0x59+0x1D = 0x76
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
544
④ 膨張・収縮
2 値化された画像に対して、膨張・収縮処理を行ないます。
膨張処理は、注目画素の近傍に一つでも 0xFF(白)の画素データがあれば、注目画素データは 0xFF
になります。逆に収縮処理は、注目画素の近傍に一つでも 0x00(黒)の画素データがあれば、注目
画素データは 0x00 になります。
この処理は、全画素(640×480)エリアに対して行ないます。
近傍の設定は 8連結(周囲 8画素)または 4連結(上下左右 4画素)の 2通りを選択できます。
膨張・収縮処理後の画像は更にフィードバックすることができ、 大 8回まで可能です。
IMGDILATE_ERODE 構造体でフィードバック条件を設定します。
フィードバック回数と各フィードバックに対する膨張・収縮の選択、そして近傍の設定を行なう事
ができます。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
545
■ ラベリング機能の説明(CTP/CPZ/PCI-5526,5536) PCI/CPZ-55x6 の画像処理機能のブロック図と各画像処理の処理内容を説明します。
データフォーマット選択
VideoDecoder
NTSC信号入力
CN
指定バッファ領域
2 値化データ
ImgSetBinarizationConfig 関数
色成分選択
画像データ
2 値画像 8bit
カラー画像
RGB32/24/16/15bit GRAY8bit(Y)
R 8bit/ G 8bit/ B 8bit ImgSetBuffer 関数
RGB24 カラー
指定バッファ領域と
カラーフォーマットの指定
RGB24 カラー
画像処理データ
濃度分布データ
射影データ
階調変換
フィルタ画像 8bit
ImgSetTriggerConfig 関数
ImgSetEventMask 関数
ImgGetCaotureStatus 関数
ImgGetMeasurementValueEx関数
2 値化演算処理
トリガ割り込みの設定
重心トリガ割り込み
面積トリガ割り込み
面積 AND 重心トリガ割り込み
トリガステータスの取得
重心トリガステータス
面積トリガステータス
面積 AND 重心トリガステータス
フェレ径
慣性等価楕円の傾き角
面積値
重心値
フィルタデータ
2 値化 膨張・収縮フィルタ
ImgSetColorgredient 関数
ImgSetLUT 関数
ImgSetFilter 関数 ImgSetDil_Er 関数
ラベリング
ラベリング画像の演算処理
フェレ径
慣性等価楕円の傾き角
面積値
重心値
ラベリング画像 8bit
ImgGetMeasurementValueLBL 関数
ImgSetLabelingConfig 関数
ラベリングは 2値化された画像データに対して処理されます。
ラベリング処理後の画像をキャプチャする場合、ImgSetBuffer関数(ImgSetBufferVB関数)の識別子を
IFIMG_COLOR_LABEL8 に指定します。
ImgSetLabelingConfig関数で 4連結と 8連結の選択が可能です。
ラベリング画像のキャプチャと同時に、ラベル数と各ブロックの面積値、重心値、フェレ径、慣性等
価楕円の傾き角を得ることができます。
ImgSetBuffer関数(ImgSetBufferVB関数)のdwBufferFormat引数にIFIMG_COLOR_LABEL8 識別子と同時
に必要な画像処理識別子を指定します。
キャプチャが完了したら、ImgGetMeasurementValueLBL関数にて取得する事ができます。
また、測定エリア指定による 2値画像処理も並行して行なう事ができます。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
546
■ キャプチャモード IMGCAPCONFIG 構造体のメンバ変数、dwMode を設定することにより、フレームの間引きによるキャ
プチャや、チャンネル切り換えによるキャプチャを実行します。
この機能はバスマスタ転送時のみ有効です。SDRAM 転送時には反映されません。
①タイマ周期による、1フレーム毎のキャプチャ(1Ch 使用時限定)
IMGCAPCONFIG 構造体のメンバ変数 dwMode に「IFIMG_CAPTURE_TIMER」を設定します。
IMGCAPCONFIG構造体のメンバ変数のdwTimerCycleの間隔で1フレーム毎キャプチャします。ただし、
誤差として 0~+約 33ms 程度の誤差を生じます。
また、タイマ周期は約 66ms 以上を設定してください。
Cnt=1
フレーム
(-1)
ImgStartCaputure 関数 キャプチャ再スタート キャプチャ再スタート
T(ms)
約 33ms
T(ms)
Cnt=2
フレーム
(-1)
T(ms)
約 33ms
Cnt=3
フレーム
(-1)
↓ :1 フレーム転送完了割り込み
Cnt :IMGCAPSTATUS 構造体の dwFrameCnt の値
T :IMGCAPCONFIG 構造体の dwTimerCycle の値
約 33ms
②フレーム間引きによる、1フレーム毎のキャプチャ(1Ch 使用時限定)
IMGCAPCONFIG 構造体のメンバ変数 dwMode に「IFIMG_CAPTURE_THINOUT」を設定します。
IMGCAPCONFIG 構造体のメンバ変数 dwThinFrameCnt にフレーム数(N)を設定すると、Nフレームに一回
のキャプチャを実行します。
Cnt =1
フレーム
(-1)
ImgStartCaputure 関数
約 33ms
Cnt =2
約 33ms
Cnt =N
約 33ms
Cnt =N+1
約 33ms
Cnt =N+2
約 33ms
Cnt =2N+1
約 33ms
Cnt =2N
約 33ms
↓ :1 フレーム転送完了割り込み
Cnt :IMGCAPSTATUS 構造体の dwFrameCnt の値
N :IMGCAPCONFIG 構造体の dwThinFrameCnt の値
ImgSetBuffer関数(または ImgSetBufferVB関数)で設定したバッファ領域に間引きしたフレームデ
ータが転送されます。
上図の場合、1、N+1,2N+1…のフレームデータがバッファ領域に転送されます。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
547
③ 指定フレーム数毎によるチャンネル切り換え (多 Ch 使用時限定)
IMGCAPCONFIG 構造体のメンバ変数 dwMode に「IFIMG_CAPTURE_CH_FRAME」を設定します。
IMGCAPCONFIG 構造体のメンバ変数 dwChFrameCnt にフレーム数(N)を設定すると、Nフレーム分キャプ
チャしたタイミングで、チャンネルを切り換えます。
ドライバ内部が切り換え処理を行い、2フレーム分間隔をとってキャプチャを開始するため、各チャ
ンネルの 初の 2~3フレーム分はキャプチャされません。
ハードウェアが、チャンネルを切り換えて正常にキャプチャできるようになるには、約 2フレーム分
の時間間隔を要する為です。
ImgStartCaputure 関数
33ms
Cnt =1
Cnt =2
Cnt =N
Cnt =( -1)
Cnt =1
Cnt =2
Cnt =N
Cnt =( -1)
Cnt =( -1)
Cnt =1
Cnt =2
Cnt =N
チャンネルA
チャンネルの切り換え処理
チャンネルB
チャンネル C
↓ :1 フレーム転送完了割り込み
Cnt :IMGCAPSTATUS 構造体の dwFrameCnt の値
N :IMGCAPCONFIG 構造体の dwChFrameCnt の値Cnt =( -1)
Cnt =(-1)
Cnt =( -1)
Cnt =( -1)
Cnt =( -1)
Cnt =(-1)
チャンネル設定間隔
チャンネル設定間隔
チャンネル設定間隔
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
548
④ タイマ周期によるチャンネル切り換え (多 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
ImgStartCaputure 関数
33ms
Cnt =1
Cnt =2
Cnt =N
Cnt =(-1)
チャンネルA
チャンネルの切り換え処理
チャンネルB
T(ms) ↓ :1 フレーム転送完了割り込み
T :IMGCAPCONFIG 構造体の dwTimerCycle の値
Cnt :IMGCAPSTATUS 構造体の dwFrameCnt の値
N :IMGCAPCONFIG 構造体の dwChFrameCnt の値Cnt =(-1)
Cnt =(-1)
Cnt =1
Cnt =2
Cnt =N
Cnt =(-1)
Cnt =(-1)
Cnt =(-1)
T(ms)
チャンネル C
Cnt =1
Cnt =2
Cnt =N
Cnt =(-1)
Cnt =(-1)
Cnt =(-1)
T(ms)
チャンネル設定間隔
チャンネル設定間隔
チャンネル設定間隔
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
549
複数チャンネル使用時の転送先バッファ内のデータの配置は下図のようになります。
データの並びは、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 の値
※ データ転送先のバッファ領域が、(チャンネル数×フレーム数)分のサイズを満たさない
場合、データは先頭から上書きされます。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
550
■ SDRAM の領域確保について(CTP/CPZ/PCI-55x1、CTP/CPZ/PCI-55x3 使用時)
本製品は SDRAM を取り扱う際は ImgAllocateSDRAM 関数より、使用する SDRAM 領域を確保します。
関数実行後、管理用ハンドルを取得し、このハンドルを用いて、キャプチャデータの読み出し、比
較用画像データの書き込みを実行します。
SDRAM の全サイズは約 64MB です。
解像度 640×480 での 大確保フレーム数は以下の通りです。
データフォーマット 大確保フレーム数
RGB32bit 54 フレーム確保可能
RGB24bit 72 フレーム確保可能
RGB15bit/RGB16bit 109 フレーム確保可能
GRAY8bit
R 成分 8bit
G 成分 8bit
B 成分 8bit
2 値化 8bit
218 フレーム確保可能
確保できる空き領域が存在する限り、複数の領域を確保する事が可能です。
空き領域
+0h
+3FF_FFFFh
+0h
+3FF_FFFFh
領域①の確保
SDRAM 領域の空き領域を見つ
け次第確保します。
ボードオープン時
空き領域
領域①
空き領域
領域①
領域②
領域②の確保 領域③の確保
空き領域
領域①
領域②
領域③
領域④の確保
+0h
+3FF_FFFFh
+0h
+3FF_FFFFh
+0h
+3FF_FFFFh
SDRAM SDRAM SDRAM SDRAM SDRAM空き領域
領域①
領域②
領域③
領域④
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
551
その領域が必要なくなった場合、ImgFreeSDRAM 関数で領域を解放してください。解放したことに
より、空き領域が増えます。新規に領域を確保することが可能です。
+0h
+3FF_FFFFh
SDRAM空き領域
領域①
領域②
領域③
領域④
領域③の解放
+0h
+3FF_FFFFh
SDRAM空き領域
領域①
領域②
領域③
(空き領域)
領域④
領域⑤の確保
領域⑤
+0hSDRAM空き領域
領域①
領域②
領域③
(空き領域)
領域④
領域⑤
+3FF_FFFFh
領域⑤のサイズが領域③(空き領域)のサイ
ズより以下の場合、領域の確保は可能です。
ただし、空き領域のガーベージ処理は行いませんので、空き領域は不連続の状態になることがあり、
空き領域サイズが次に確保したい領域より大きい場合でも、領域確保が出来ない場合があります。
+0h
+3FF_FFFFh
SDRAM空き領域
領域①
領域②
領域③
領域④
領域③の解放
+0h
+3FF_FFFFh
SDRAM空き領域
領域①
領域②
領域③
(空き領域)
領域④
領域⑤の確保
領域⑤
+0hSDRAM空き領域
領域①
領域②
領域③
(空き領域)
領域④
+3FF_FFFFh
領域⑤が確保できるサイズの空き領域が内
場合、領域⑤は確保できません。
この場合、領域②または領域③を解放して、
領域⑤のサイズを満たす連続した空き領域
を作成する必要があります。
領域⑤
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
552
■ パターン一致機能について(CTP/CPZ/PCI-55x3 使用時)
1 フレーム(640×480)内の任意の矩形領域を対象として、2 値化した画像に対するパターン一致検
出が可能です。
SDRAM 領域に書き込まれた比較領域に対してカメラから取り込んだキャプチャデータと一致率を
照らし合わせます。
IMGPTNCONFIG 構造体のメンバ変数 dwXCoordinates, dwYCoordinates の設定により、比較開始座標
点を設定します。この比較開始座標点から、比較用画像データ領域分に対してキャプチャデータと
比較用画像データの一致率を求めます。
この状態でパターン一致検出が行われる。
(0,0)
(639,479)
比較データ(639,479)
測定対象物
(0,0)
比較開始座標点を元にデータを重ね合わせて比較
Xc
Yc
Xc:ImgAllocateSDRAM 関数で確保した際の
X 方向長さ(dwXLength)
Yc:ImgAllocateSDRAM 関数で確保した際の
Y 方向長さ(dwYLength)
比較開始座標
一致率のしきい値を IMGPTNCONFIG 構造体のメンバ変数 dwPercentage で設定し、設定した一致率よ
り上回る(または下回る)際にトリガが発生します。
トリガの検知方法は割り込みによるイベント検知と ImgGetCaptureStatusEx 関数で得られるステ
ータス値で確認します。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
553
■ 比較用画像データについて (CTP/CPZ/PCI-55x3 使用時)
本製品のパターン一致検出機能は 2 値化した画像に対する機能なので、比較用画像データも 00h
データ、FFh データからなる、2値化データとなります。
比較データの作成方法として、本製品より比較元となる対象物を 2 値化モードでキャプチャして、
そのキャプチャデータを比較用データとするのも1つの手段です。その際、キャプチャしたデータ
は 640×480 なので ImgClipData 関数で、比較対象物の部分だけ抜き出して比較用画像データとし
て保存します。
■ パターン一致機能における自動補正について(CTP/CPZ/PCI-55x3 使用時)
パターン一致検出を行う場合、1フレーム(640×480)領域内のどの位置で比較を行うかが重要とな
ります。
本インタフェースモジュールでは1つ前のフレームの重心位置を基準として、比較する領域の位置
を自動的に補正することができます。
その為自動補正モードで行う前にあらかじめ、ImgSetMeasurementRange 関数で比較対象物の重心
値を求める為、測定範囲を設定する必要があります。
この状態でパターン一致検出が行われる。
(639,479)
比較データ
比較データの重心
1 つ前のフレームの重心(639,479)
測定対象物の重心値(XG,YG)(0,0)
現在のフレーム
(0,0)
(639,479)
1 つ前のフレームの重心位置に合わせて比較領域の位置を決定
前フレームの重心
比較
XG
YG
(0,0)
XG
YG
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
554
■ 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
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
555
②カメラ接続について
CameraLink カメラの画像データは、NTSC 信号ととがって、解像度とフォーマットはカメラの
機種によります。よって、制御上、カメラ情報が記載されたカメラコンフィグファイル(拡張子
が cfg)を読み込む処理が必要となります。
ImgSetCLCaptureConfig 関数でカメラコンフィルファイルを指定してください。
カメラコンフィグファイルのフォーマットは以下の通りです。ご使用になるカメラに合わせて
ファイル作成を行ってください。使用するカメラの仕様に合わせて設定値を決定してください。
書式 設定値
[CamType]
TYPE = 設定値
POCL = 設定値
CONF = 設定値
カメラのタイプを指定します。
TYPE
0:エリアカメラ(固定)
POCL
0:カメラは PoCL 規格でない。
1:カメラは PoCL 規格である。
CONF
0:Base Configuration(固定)
[AreaSet]
H_CNT = 設定値
H_BLK = 設定値
V_CNT = 設定値
V_BLK = 設定値
有効画像エリアの指定です。※1
H_CNT 水平有効期間
H_BLK 水平無効期間
V_CNT 垂直有効期間
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
[CC]
CC1 = 設定値
CC2 = 設定値
CC3 = 設定値
CC4 = 設定値
カメラコントロール信号の使用の有無です。
0 : 使用
1 : 未使用
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
556
※ 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 = 0
CC2 = 0
CC3 = 0
CC4 = 0
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
557
③取り込みエリア
PCI-5526 機能互換の為、取り込み画像の解像度は 640×480 に固定となります。
640×480 を超える解像度のカメラを接続する際は、取り込み開始座標を指定する事ができます。
開始座標は ImgSetCLCaptureConfig 関数で設定できます。
④カメラ制御
CameraLink カメラのオリジナル機能として、外部トリガ(CC 信号)制御、シリアル通信制御、
カメラの電源供給があります。これらの機能制御は以下 API 関数で制御可能です。
機能 API 関数
外部トリガ(CC 信号)制御 ImgSetCCMode
ImgOutputCCPluse
シリアル通信制御 ImgSerialSend
ImgSerialReceive
ImgGetSerialStatus
ImgSerialClear
カメラの電源供給 ImgOutputPower
⑤カウンタ機能
PEX-H531322 には、インターバルタイマカウンタ、エンコーダパルスカウンタ機能が搭載され
ています。各カウンタの周期、カウンタを取得する事ができます。なお、エンコーダパルスのカ
ウント方法を設定する事もできます。
制御を行う関数は、ImgSetEncodeCntMode 関数、ImgSetCounterCycle 関数、ImgGetCounterValue
関数となります。
640
480 開始座標
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
558
⑥チャンネル切替え
PEX-H531322 は 2ch 入力製品ですが、チャンネル切替え方式となっています。ImgSetChannel 関
数で制御するチャンネルを切替える事ができます。キャプチャ動作中にチャンネルを切替える事は
できません。
NTSC 画像入力の 5ch は全てのチャンネルに同じ内容の動作設定ですが、PEX-H531322 は各チャン
ネルに対して動作設定が可能となっています。
以下の関数は ImgSetChannel 関数で切り替えたチャンネルに対して設定/制御を行う事が可能で
す。
API 関数 設定/制御内容
ImgGetCaptureStatus キャプチャ状態を取得できます。
ImgGetCaptureStatusEx キャプチャ状態を取得できます。
ImgStartCapture キャプチャを開始します。
ImgStopCapture キャプチャを停止します。
ImgSetBuffer データ転送先バッファを設定できます。
ImgGetMemPtrValue メモリポインタを取得する事ができます。
ImgSetBinarizationConfig 2 値化条件を設定できます。
ImgSetMeasurementRange 測定範囲を設定できます。
ImgGetMeasurementValue 面積、重心値を取得できます。
ImgSetTriggerConfig トリガ条件を設定できます。
ImgSetColorIngredient 画像処理の色成分を指定できます。
ImgGetMeasurementValueEx 面積、重心値、フェレ径、傾き角を取得できます。
ImgSetConversionConfig 画像変換処理の有効/無効を設定できます。
ImgSetLUT 階調変換用の LUT テーブルデータを設定できます。
ImgSetFilter フィルタ係数を設定できます。
ImgSetDil_Er 膨張・収縮の設定ができます。
ImgSetLabelingConfig ラベリングの設定ができます。
ImgGetMeasurementValueLBL ラベリング結果を取得できます。
ImgSetCLCaptureConfig 接続カメラの設定、取り込み領域を設定できます。
ImgSetCCMode CC 信号の出力方式を設定します。
ImgOutputPluse CC 信号を 1パルス分出力します。
ImgSerialSend シリアル通信方式でカメラへデータを送信します。
ImgSerialReceive シリアル通信方式でカメラからのデータを受信します。
ImgGetSerialStatus シリアル通信方式によるデータ受信状態を取得します。
ImgSerialClear シリアル通信用の FIFO をクリアします。
ImgOutputPower PoCL 規格カメラに外部電源を供給します。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
559
⑦キャプチャ制御
・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 重心トリガ割り込みは各チャンネル個別設定となります。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
560
■ スーパーインポーズ機能
GPC-5520 はスーパーインポーズデバイスに対して主に以下の制御を行います。
・ユーザアプリケーション上で作成した画像データをスーパーインポーズ画像として
デバイスのオンボードメモリへ書き込む。
・スーパーインポーズ処理の設定。
・スーパーインポーズ用の時刻、日付の設定。
1. スーパーインポーズ画像の設定
RGB24bit ビットマップ形式の画像データスーパーインポーズ画像として設定する事ができます。
ボードメモリ上にスーパーインポーズ画像用の領域を 8 画面分確保しており、 大 8 種類の画像
を設定することができます。
画像データは番号で管理する為、指定した番号に任意のスーパーインポーズ画像を割り当てる事
ができます。
PCI-540111 オンボードメモリ
インポーズ画像を転送
画像データ
キャプチャデータ保存領域
スーパーインポーズ画像領域①
スーパーインポーズ画像領域②
スーパーインポーズ画像領域③
スーパーインポーズ画像領域④
スーパーインポーズ画像領域⑤
スーパーインポーズ画像領域⑥
スーパーインポーズ画像領域⑦
スーパーインポーズ画像領域⑧
文字列 XXXX
ImgSetImposeImage 関数でセットする事ができます。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
561
■スーパーインポーズ画像の反映タイミング
スーパーインポーズ画像が反映されるタイミングは、以下のようになっています。
モニタ出力
1
2
3
・
・
・
スーパーインポーズ画像の演算方法
を上書きに設定
次のフレームからスーパーインポー
ズ画像が反映される。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
562
2. スーパーインポーズ画像の設定
スーパーインポーズする画像と演算処理を選択する事ができます。
上書き、加算、減算、XOR 演算処理を指定する事ができます。演算は画素毎に施す事ができます。
SprSetImposeImage 関数で指定する事ができます。スーパーインポーズの有効/無効を切替える事
ができます。
●上書き
インポーズ画像データをカメラ画像に上書きする。白(R:FF G:FF B:FFh)は透過させま
す。
●加算
2つの画像を単純に足し合わせる。全体的に明るく(白っぽく)なります。
●減算
スーパーインポーズ画像のデータからカメラ画像を引きます。全体的に暗く(黒っぽく)なり
ます。同一画像の場合、真っ黒になります。
AND =
入力画像 スーパーインポーズ用画像 出力画像
+ =
入力画像 スーパーインポーズ用画像 出力画像
- =
入力画像 スーパーインポーズ用画像 出力画像
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
563
●XOR
スーパーインポーズ画像のデータとカメラ画像の XOR(排他論理和)をとります。
●透過
2つの画像を単純に足し合わせる。加算と比較して全体的に明るく(白っぽく)はなりません。
XOR =
入力画像 スーパーインポーズ用画像 出力画像
+ =
入力画像 スーパーインポーズ用画像 出力画像
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
564
第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
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
565
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」をクリックします。
ウィンドウにキャプチャデータが描画されます。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
566
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」をクリックします。ウィンドウにキャプチャデータが描画されま
す。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
567
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」のメッセージが表示されます。※メッセージは、割り
込みイベント(コールバック関数、またはメッセージイベント)で表示しています。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
568
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」をクリックします。ウィンドウにキャプチャデータが描画されま
す。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
569
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」のメッセージが表示されます。
※メッセージは、割り込みイベント(コールバック関数、またはメッセージイベント)で表
示しています。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
570
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」をクリックすることで、キャプチャを停止する事ができます。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
571
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 のデータフォーマット指定時に、濃度分布、射影データを選択した場合、各画像処理結
果を確認する事ができます。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
572
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」をクリックします。ウィンドウにキャプチャデータが描画されます。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
573
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」をクリックします。ウィンドウにキャプチャデータが描画されます。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
574
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」をクリックします。ウィンドウにキャプチャデータが描画されます。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
575
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に対する画像処理データを表示します。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
576
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 となります。 大サイズの範
囲内でファイル保存を行なってください。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
577
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 関数でポーリン
グしながら待機します。
キャプチャが完了したら、ビットマップファイルに画像を保存します。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
578
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」を開き、ビルドしてく
ださい。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
579
第6章 ユーティリティ
以下、各ユーティリティの概要を説明します。
6.1 画像キャプチャユーティリティ
本ユーティリティは、カメラからの映像入力機器から取り込んだ、画像データを描画するアプリ
ケーションです。
(注意) PCI-540111,PEX-H540111,CPZ-540111 ではご使用できません。
【使用方法】
1. ソフトウェア(GPC-5520)のインストール完了後、「スタート」メニューより「プログラム」
-「Interface GPC-5520」-「ImgCapture」を起動します。
2. メニューの「ファイル」-「デバイスオープン」を選択すると、インストールされているデ
バイスの一覧が表示されます。その中から、使用したいインタフェースモジュールを選択
し、「OK」ボタンをクリックします。
3. 画面説明(メイン)
② ③
①
表示画面
④
⑤
図 1. 実行画面
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
580
名称 説明
デバイスオープン オープン画面が起動します。
使用可能なデバイスの一覧が表示され
ます。
デバイスを選択します。
開く Bmp 形式ファイルを開きます。
保存 画面に表示している画像データをbmp形
式ファイルで保存します。
デバイスクローズ 使用しているデバイスをクローズしま
す。
カメラファイル PEX-H531322 専用です。使用するカメラ
コンフィグファイルを読み込みます。
フ ァ イ
ル
終了 アプリケーションを終了します。
表示 ステータスバー ステータスバーの表示を設定します。
オ プ シ
ョン
出力モード 映像出力端子(チャンネル 2)からの出
力モードを切り換えます。
【スルーモード】
映像入力端子から入力した画像をその
まま出力します。
【カラーバーモード】
映像出力端子(チャンネル 2)からのカ
ラーバー画像を出力します。
【静止画出力】
カメラ画像をそのまま静止画として出
力します。
① メニューバー
ヘルプ バージョン情報 アプリケーションのバージョンを表示
します。
②キャプチャ開始 キャプチャを開始して、キャプチャデー
タを画面に表示します。
③キャプチャ停止 キャプチャを停止します。
④設定 キャプチャ、2 値化、トリガ処理、パタ
ーン一致処理、階調変換、フィルタ、膨
張・収縮を設定する、タブコントローラ
ーです。
⑤ステータスバー 2 値化画像処理の結果です、パターン一
致率を表示します。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
581
4. 画面説明(キャプチャ設定)
①
②
③
④
⑤
⑥
⑦
名称 説明
①キャプチャフレーム数 キャプチャするフレーム数を設定しま
す。値を 0に指定した場合、停止ボタン
が押されるまでキャプチャします。
RGB 32bit 32 ビットフォーマットを指定します。
RGB 24bit 24 ビットフォーマットを指定します。
RGB 15bit 15 ビットフォーマットを指定します。
GRAY 8bit 8 ビットグレイスケールフォーマットを
指定します。
R 成分 8bit 赤成分8bitフォーマットを指定します。
G成分 8bir 緑成分8bitフォーマットを指定します。
B成分 8bit 青成分8bitフォーマットを指定します。
2値化 2値化 8bitフォーマットを指定します。
②データフォーマット
フィルタ 8bit フィルタ 8bit フォーマットを指定しま
す。
640×480 640×480 の解像度(NTSC 製品専用)
320×240 320×240 の解像度(NTSC 製品専用)
160×120 160×120 の解像度(NTSC 製品専用)
768×572 768×572 の解像度(PAL 製品専用)
384×286 384×286 の解像度(PAL 製品専用)
③フレームサイズ
192×143 192×143 の解像度(PAL 製品専用)
④使用チャンネル 使用するチャンネルを設定します。
(多チャンネル製品専用)
⑤開始位置 画像の開始位置を設定します。
「設定」ボタンで、設定を行います。
⑥グリッド表示 キャプチャ停止後の画像に対して、グリ
ッドラインを表示します。
「表示」ボタンで表示します。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
582
名称 説明
X グリッドライン(実線)となるX座標を設
定します。
Y グリッドライン(実線)となるX座標を設
定します。
グリッド幅 設定した幅の間隔でグリッドラインを
引きます。
1 目盛りの値 1 目盛りの値を設定します。
設定した値が画面上の「X/div」の?の
箇所に反映され表示します。
色設定 グリッドラインの色を設定します。
⑦カメラ電源 ON PEX-H531322 を使用する場合は、このボ
タンが有効になります。
カメラへの電源の ON/OFF を行います。
ただし、PoCL 規格のカメラ用のカメラコ
ンフィグファイルを読み込んでいない
と動作しません。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
583
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値化測定範囲に指定」を選択します。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
584
6. 画面説明(トリガ設定)
⑤
⑥
①
②
③
⑦
④
名称 説明
①面積トリガ有効 チェックボックスにチェックを付けると
面積トリガが有効になります。
上限値 面積の上限値を設定します。 ②面積トリガ範囲
下限値 面積の下限値を設定します。
③面積トリガ発生条件 面積トリガ発生条件にて範囲内発生か範囲外発生を指定します。
④重心トリガ有効 チェックボックスにチェックを付けると
重心トリガが有効になります。
開始点 X座標 開始点の X座標です。(0~639)
開始点 Y 座標 開始点の X座標です。(0~479)
X 方向長さ 開始点から X方向への長さを指定します。
⑤重心トリガ※
Y 方向長さ 開始点から Y方向への長さを指定します。
⑥重心トリガ発生条件 重心トリガ発生条件にて範囲内発生か範囲外発生を指定します。
⑦トリガ範囲の画面表示 表示画面のトリガ範囲の枠を表示します。「色設定」ボタンで枠の
色を指定できます。
※ 面積トリガ、重心トリガのチェックボックス両方を付けた場合、「面積 AND 重心トリガ」
も有効となります。
※ マウスドラッグによる指定も可能です。マウスの左ボタンで画面上をドラッグして範囲指
定を行ってください。(四角の枠が表示されます。)
その後、右クリックで「トリガ範囲に指定」を選択します。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
585
7. 画面説明(パターン一致)
⑤
⑥
①
②
④
③
名称 説明
①ファイル 比較用データをファイルから読み込みます。
②データ一致率 データの一致率を設定します。
③パターン一致回数 パターン一致を検出する回数を指定します。
指定した回数に達したら、再キャプチャを実行する
まで、パターン一致によるメッセージ表示は行われ
ません。
④自動補正 自動補正機能使用に有無を指定します。
自動補正機能を使用する場合は、2値化処理設定と
測定範囲の指定を行ってください。
⑤パターン一致トリガ発生条件 パターン一致する条件を設定します。
⑥比較開始座標 自動補正機能を使用しない場合に設定します。
データの比較を開始する座標を指定してください。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
586
8. パターン一致機能の使用方法
① 2 値化の設定
「2 値化処理」のタブコントロール上で 2 値化処理条件を設定し、「適応」ボタンをクリック
します。
② 比較データの指定
まず、比較データを指定します。指定方法は 2通りです。
ファイルからの読み込み 「パターン一致」のタブコントロールの「ファイル」ボタ
ンより Bmp 形式の比較データファイルを読み込みます。
必ず「モノクロビットマップ」で保存されたファイルを指
定してください。また、画像データは「黒」と「白」の色
データです。
キャプチャ後のデータから指定 データフォーマットを「2値化 8bit」に指定して、比較元
となる対象物をキャプチャします。マウスの左ボタンで画
面上をドラッグしながら、比較データを選択してくださ
い。(四角の枠が表示されます。)。その後、右クリックで
「比較データに指定」を選択します。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
587
③ パターン一致機能の設定
「パターン一致」のタブコントロール上でパターン一致条件を設定し、「適応」ボタンをクリ
ックします。
④ キャプチャ実行
キャプチャを開始します。パターン一致機能は 2 値化されたデータを比較対象としますので、
データフォーマットが「2値化 8bit」によるキャプチャで実行したほうが、状況が把握しやす
いでしょう。
⑤ パターン一致検出
パターン一致が検出された時、メッセージボックスが表示されます。
そのときの一致率も表示されます。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
588
9. 画面説明(階調変換)
⑤
①②
④
③
名称 説明
①階調変換有効 チェックを付けると階調変換処理が有効
となります。
②階調変換データ選択 階調変換データを選択します。
スルー、反転、4階調、8階調、16 階調、
32 階調、64 階調を選択可能です。
③LUT セット ②で選択した階調変換データを更新しま
す。
④R/G/B/GRAY チェックを付けた色成分の階調変換テー
ブルが更新されます。
⑤階調変換データ ②で選択した階調変換テーブルデータが
表示されます。
また、直接編集する事も可能です。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
589
10. 画面説明(フィルタ処理)
①
③
②
④
名称 説明
①フィルタ処理有効 チェックを付けるとフィルタ処理が有効
となります。
②空間フィルタ係数 空間フィルタ係数の値を直接入力する事
ができます。
③差分型エッジフィルタ係数 差分型空間フィルタ係数の値を直接入力
する事ができます。
④フィルタ選択 選択したフィルタ係数の値が②と③に反
映されます。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
590
11. 画面説明(膨張・収縮処理)
①③
②
④
名称 説明
①膨張・収縮処理有効 チェックを付けると膨張・収縮処理が有効となります。
②段選択 段数を選択します。
③膨張/収縮 各段の膨張・収縮処理を選択します。
②で選択した段までの設定が反映されます。
④4連結/8 連結 各段の近傍を選択します。
②で選択した段までの設定が反映されます。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
591
12. 画面説明(物理メモリ設定)
x64 環境専用の機能です。x64 環境下で確保された物理メモリサイズの確認と、サイズの
変更を行う事ができます。
PEX-H531322 をご使用の場合は、各チャンネルに対して物理メモリを割り当てる必要があ
ります。キャプチャ設定画面上の「使用チャンネル」を切り替えることで設定ができます。
①
①のサイズ欄に確保済の物理メモリのサイズを表示しています。
サイズ欄に確保したいサイズ(16 進数)を入力して「適用」ボタンをクリックしてください。
サイズ変更処理が成功すると、以下のようなメッセージが表示されます。
サイズ変更を反映させるには、ImgCapture.exe を終了し OS の再起動を行ってください。OS 再
起動後、ImgCapture.exe を起動し、「Memory Setting」ダイアログ上に確保されたサイズが表示
されています。
(注意)
ご使用の PC 環境によっては、指定したサイズで物理メモリを確保できるとは限りません。
お客様自身で 適なサイズを確保していただきますようお願い致します。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
592
13. 画面説明(ステータスバー)
① ② ③ ④ ⑤ ⑥ ⑦
名称 説明
①カーソル マウスのカーソル座標を表示します。
②面積値 測定対象物の面積値を表示します。
③重心値 測定対象物の重心値を表示します。
④測定範囲 2 値化処理の測定範囲を表示します。
(X 座標,Y 座標) X:X 方向の長さ Y:Y 方向の長さ
⑤トリガ範囲 トリガ範囲を表示します。
(X 座標,Y 座標) X:X 方向の長さ Y:Y 方向の長さ
⑥トリガ状態 トリガの状態を表示します。
ON でトリガ発生、OFF でトリガ未発生です。
⑦一致率 パターン一致機能によるデータの一致率を表示します。
※ ②~⑦は 1フレーム毎に表示されます。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
593
6.2 自己診断プログラム
汎用入出力の動作確認を行う為のプログラムです。
※本プログラムでは、チャンネル 1,チャンネル 2の診断は行えません。
【使用方法】
1. ソフトウェア(GPC-5520)のインストール完了後、「スタート」メニューより「プログラム」-
「Interface GPC-5520」-「ImgDiag」を起動します。
2. プログラムを起動すると、「インタフェースモジュールの選択」ダイアログボックスが表示
されます。
「ボード検索」をクリックします。システムに実装されているデバイスが一覧されるので、
診断を行うデバイスを選択し、「OK」をクリックして下さい。
図 2.ボード選択画面
※このユーティリティで同時に複数のインタフェースモジュールをオープンすることはできま
せん。
※同一型式のインタフェースモジュールを複数枚使用する場合には、RSW1,RSW2 の設定値をイ
ンタフェースモジュール毎で異なる値に
設定してください。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
594
3. 画面上に現在の入力信号の状態、出力信号の状態が表示されます。
汎用入力 汎用入力の状態表示されます。
汎用出力 画面上に表示されているボタンをクリックすると、出力信号の ON/OFF
を切り替えることができます。
図 3.実行画面
ON
OFF
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
595
第7章 重要な情報
保証の内容と制限
弊社は本ドキュメントに含まれるソースプログラムの実行が中断しないこと、またはその実行に
誤りが無いことを保証していません。
本製品の品質や使用に起因する、性能に起因するいかなるリスクも使用者が負うものとします。
弊社はドキュメント内の情報の正確さに万全を期しています。万一、誤記または誤植などがあっ
た場合、弊社は予告無く改訂する場合があります。ドキュメントまたはドキュメント内の情報に
起因するいかなる損害に対しても弊社は責任を負いません。
ドキュメント内の図や表は説明のためであり、ユーザ個別の応用事例により変化する場合があり
ます。
著作権、知的所有権
弊社は本製品に含まれるおよび本製品に対する権利や知的所有権を保持しています。
本製品はコンピュータ ソフトウェア、映像/音声(例えば図、文章、写真など)を含んでいます。
医療機器/器具への適用における注意
弊社の製品は人命に関わるような状況下で使用される機器に用いられる事を目的として設計、製
造された物では有りません。
弊社の製品は人体の検査などに使用するに適する信頼性を確保する事を意図された部品や検査機
器と共に設計された物では有りません。
医療機器、治療器具などの本製品の適用により、製品の故障、ユーザ、設計者の過失などにより、
損傷/損害を引き起こす場合が有ります。
複製の禁止
弊社の許可なく、本ドキュメントの全て、または一部に関わらず、複製、改変などを行うことは
できません。
責任の制限
弊社は、弊社または再販売者の予見の有無にかかわらず発生したいかなる特別損害、偶発的損害、
間接的な損害、重大な損害について、責任を負いません。
本製品(ハードウェア,ソフトウェア)のシステム組み込み、使用、ならびに本製品から得られる
結果に関する一切のリスクについては、本製品の使用者に帰属するものとします。
本製品に含まれるバグ、あるいは本製品の供給(納期遅延)、性能もしくは使用に起因する付帯的
損害もしくは間接的損害に対して、弊社に全面的に責がある場合でも、弊社はその製品に対する
改良(正常に動作する)、代品交換までとし、金銭面での賠償の責任は負わないものとしますので、
予めご了承ください。
本製品(ソフトウェアを含む)は、日本国内仕様です。本製品を日本国外で使用された場合、弊
社は一切責任を負いかねます。また、弊社は本製品に関し、海外での保守サービスおよび技術サ
ポート等は行っておりません。
GPC-5520 Help for Windows
© 2003, 2016 Interface Corporation. All rights reserved.
596
商標/登録商標
本書に掲載されている会社名、製品名は、それぞれ各社の商標または登録商標です。