gpc-5520 - · pdf...

597
IMAGE(PCI/C-PCI) www.interface.co.jp GPC-5520 カラー画像入力インタフェースモジュール用 Windows ドライバ Help for Windows

Upload: trantram

Post on 15-Mar-2018

265 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

IMAGE(PCI/C-PCI)

www.interface.co.jp

GPC-5520 カラー画像入力インタフェースモジュール用 Windows ドライバ

Help for Windows

Page 2: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 3: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 をサポートしていますので、開発中に関数の詳細説明な

ど、簡単に参照することができます

●インタフェースモジュールの自己診断を行うプログラムが付属しています。

Page 4: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)

フレーム転送完了

Page 5: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

GPC-5520 Help for Windows

© 2003, 2016 Interface Corporation. All rights reserved.

4

面積トリガ

重心トリガ

面積 AND 重心トリガ

パターン一致検出

同期ズレ発生

Page 6: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 ラベリング処理サンプルプログラム

Page 7: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 を使用し

て作成しています。

Page 8: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 分確保

物理メモリ空間

カーネル空間 ユーザ空間

ユーザアプリケーション

ポインタ変数

論理メモリへマッピング

Page 9: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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. 画面説明(物理メモリ設定)」を参照してく

ださい。

Page 10: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 の制御方法」

の内容も参照してください。

Page 11: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 以上に設定した場合は、設定値のフレーム数をキャプチャした後、自動停止し

ます。

Page 12: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 関数でデバイスの終了処理を行います。アプリケーションでは、必ずクローズ処理を

行ってから終了してください。

Page 13: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 関数を実行するまでキャプチャします。

Page 14: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 関数でデバイスの終了処理を行います。アプリケーションでは、必ずクローズ処理を

行ってから終了してください。

Page 15: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 関数でデバイスの終了処理を行います。アプリケーションでは、必ずクローズ処理を

行ってから終了してください。

Page 16: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 関数でキャプチ

ャの停止を実行します。

Page 17: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 関数でデバイスの終了処理を行います。アプリケーションでは、必ずクローズ処理を

行ってから終了してください。

Page 18: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 関数でデバイスの終了処理を行います。アプリケーションでは、必ずクローズ処理を

行ってから終了してください。

Page 19: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 関数でデバイスの終了処理を行います。アプリケーションでは、必ずクローズ処理を

行ってから終了してください。

Page 20: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 関数でデバイスの終了処理を行います。アプリケーションでは、必ずクローズ処理を

行ってから終了してください。

Page 21: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 関数でデバイスの終了処理を行います。アプリケーションでは、必ずクローズ処理を

行ってから終了してください。

Page 22: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 関数でデバイスの終了処理を行います。アプリケーションでは、必ずクローズ処理を

行ってから終了してください。

Page 23: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 関数でデバイスの終了処理を行います。アプリケーションでは、必ずクローズ処理を

行ってから終了してください。

Page 24: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 関数でデバイスの終了処理を行います。アプリケーションでは、必ずクローズ処理を

行ってから終了してください。

Page 25: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 関数でデバイスの終了処理を行います。アプリケーションでは、必ずクローズ処理を

行ってから終了してください。

Page 26: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 関数でデバイスの終了処理を行います。アプリケーションでは、必ずクローズ処理を

行ってから終了してください。

Page 27: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 関数でデバイスの終了処理を行います。アプリケーションでは、必ずクローズ処理を

行ってから終了してください。

Page 28: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 29: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 30: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 31: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 32: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 33: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 34: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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(コールバック関数を使用する場合)

Page 35: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

GPC-5520 Help for Windows

© 2003, 2016 Interface Corporation. All rights reserved.

34

■参照渡しする変数について

各関数はアンマネージ DLL 関数です。マネージオブジェクトの参照渡しをする際は、

GCHandle 構造体を使用してマネージオブジェクトがコレクトされるのを防いでください。

■構造体について

StructLayoutクラスのオプションに「LayoutKind.Sequential」を指定しています。

Page 36: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 領域に対して、キャプチャデータを取り出します。

Page 37: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 規格カメラに外部電源を供給します。

Page 38: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 スーパーインポーズする日時の設定を行います。

Page 39: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 - - - - - - ○ - - -

Page 40: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 - - - - - - - - - ○

Page 41: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 版 以降 ○ ○ ○ ○ ○ ○ -

Page 42: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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"(

Page 43: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)が返されます。

Page 44: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)でも確認で

きます。

Page 45: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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」のデバイスをオープンします。

Page 46: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 47: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)

Page 48: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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」のデバイスのクローズ処理を行います。

Page 49: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 構造体

へのポインタ

);

Page 50: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 戻り値一覧』をご参照くださ

い。

Page 51: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 52: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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」のデバイス情報を取得します。

Page 53: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 構造体

へのポインタ

);

Page 54: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 戻り値一覧』をご参照くださ

い。

Page 55: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 56: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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」のキャプチャ状態を取得します。

Page 57: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 構造体

へのポインタ

);

Page 58: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 戻り値一覧』をご参照くださ

い。

Page 59: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 60: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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」のキャプチャ状態を取得します。

Page 61: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 // カラーフォーマット

);

Page 62: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 専用です。

Page 63: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 - - - - ○

Page 64: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 以降のインタフェースモジュールが対応しています。

Page 65: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 戻り値一覧』をご参照くださ

い。

Page 66: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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』を参照ください。

Page 67: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 68: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 です。

Page 69: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 確保されたメインメモリのポインタを取得する変数へのポインタを指定してください。

Page 70: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)

Page 71: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 72: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)

メインメモリから先頭アドレスを取得します。

Page 73: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 // キャプチャ開始モード

);

Page 74: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 戻り値一覧』をご参照くださ

い。

Page 75: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)

Page 76: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 動作仕様』 を参照ください。

Page 77: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 78: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 79: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)

Page 80: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 転送によるキャプチャを開始します。

Page 81: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 82: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 にフレーム単位での転送停止を指定した場合、関数から戻っても、キャプチャは動

作しています。(フレーム転送が完了するまで)

即停止が有効となります。

Page 83: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 84: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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」のデバイスに対してキャプチャを停止します。

Page 85: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 // 垂直位置

);

Page 86: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 戻り値一覧』をご参照くださ

い。

Page 87: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 88: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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」の設定を行

います。

Page 89: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 90: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 値化、フィルタ処理した画像がキャ

プチャされます。

映像出力端子から出力される画像も同様に処理されます。

Page 91: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 92: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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をカラーバー出力に設定します。

Page 93: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 94: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 95: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 96: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)

Page 97: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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”にします。

Page 98: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 方向)

);

Page 99: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)

Page 100: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 101: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 102: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)

Page 103: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 とした測定範囲を設定します。

Page 104: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 // フレーム数

);

Page 105: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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座標を格納するバッファポインタを指定してください。

Page 106: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

);

Page 107: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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_

)

Page 108: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

);

Page 109: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

);

Page 110: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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_

)

Page 111: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 の値は無効なデータ

です。

Page 112: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 113: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 戻り値一覧』をご参照くださ

い。

Page 114: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 115: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)

Page 116: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 117: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 118: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)

Page 119: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

とした測定範囲を設定します。

Page 120: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

GPC-5520 Help for Windows

© 2003, 2016 Interface Corporation. All rights reserved.

119

※キャプチャを実行せずとも、カメラ等の映像機器に接続している限り、取り込んでいるフレ

ームデータに対して、トリガ発生状態を取得することが可能です。ImgGetCaptureStatus関数

で、トリガ発生状態を取得する事が可能です。また、ImgSetEventMask関数で割り込み発生を

有効にすることにより、割り込みイベントによる検知も可能です。

Page 121: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 122: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 123: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)

Page 124: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 に格納します)

Page 125: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 126: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 127: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)

Page 128: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 出力に設定します。

Page 129: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 構造体

へのポインタ

);

Page 130: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 131: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 132: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 割り込み」「フレーム転送完了割り込み」

をアンマスク(有効に)します。

Page 133: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 134: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 によるキャプチャでのフレーム転送完了割り

込みのアンマスクが実行されます。

Page 135: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 136: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 重心トリガ」

は条件を満たしていれば割り込みは発生します。

Page 137: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 138: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 139: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)

Page 140: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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」のデバイスの割り込みマスク設定を取得します。

Page 141: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 構造体

へのポインタ

);

Page 142: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 戻り値一覧』をご参照くださ

い。

Page 143: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 専用)

Page 144: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 型となります。

Page 145: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 146: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 147: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)

Page 148: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 149: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 150: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)

Page 151: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)を実行。

Page 152: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 構造体

へのポインタ

);

Page 153: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 戻り値一覧』をご参照くださ

い。

Page 154: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 155: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 156: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 157: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)

Page 158: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 159: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 160: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)

Page 161: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)を実行。

Page 162: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 163: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 ほどの同期時間を設ける事により回避してください。

Page 164: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)

Page 165: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 に設定します。

Page 166: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 構造体

へのポインタ

);

Page 167: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 戻り値一覧』をご参照くださ

い。

Page 168: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 169: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)

Page 170: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 171: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 172: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)

Page 173: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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」のデバイスに対して、間引きによるキャプチャ、または多チャンネ

ル切り換え時の設置を行います。

Page 174: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 175: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 176: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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関数で取得したデバイスハンドルを指定してください。

Page 177: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 各ブロックの面積

Page 178: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 179: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 戻り値一覧』をご参照くださ

い。

Page 180: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)

Page 181: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 にします。

Page 182: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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';

Page 183: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 184: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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を指定して下さい。

Page 185: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 186: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 187: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 フレーム分確保して、ハンドル値を取得します。

Page 188: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 189: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)を確保してハンドルを取得します。

Page 190: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 191: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 192: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 193: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 領域を解放します。

Page 194: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 195: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 196: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 197: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 領域を指定しま

す。

Page 198: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 // 格納先バッファのサイズ

);

Page 199: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 // 格納先バッファのサイズ

);

Page 200: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 201: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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;

Page 202: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 戻り値一覧』をご参照くださ

い。

Page 203: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 204: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)

Page 205: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 206: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 からキャプチャデータを取り出します。

Page 207: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 // 転送開始位置

);

Page 208: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 ハンドルを指定してください。

Page 209: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 関数にて知ること

が可能です。

Page 210: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 211: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 212: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 213: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)

Page 214: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 215: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 216: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 217: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)

Page 218: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 からキャプチャデータを取り出します。

Page 219: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 構造体のポインタ

);

Page 220: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

GPC-5520 Help for Windows

© 2003, 2016 Interface Corporation. All rights reserved.

219

Page 221: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 構造体のポインタ

);

Page 222: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 構造体のポインタ

);

Page 223: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 構造体のポインタ

);

Page 224: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 構造体のポインタ

);

Page 225: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 226: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 227: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 228: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 229: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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;

Page 230: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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;

Page 231: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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;

Page 232: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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;

Page 233: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 読み込み元のバッファのポインタを指定します。

Page 234: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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倍のサイズで拡大します。

Page 235: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

GPC-5520 Help for Windows

© 2003, 2016 Interface Corporation. All rights reserved.

234

【備考】

psrc で指定するキャプチャデータの解像度が 640×480(PAL 製品の場合は 768×572)の場合、

奇数フィールド、偶数フィールドに分離された状態のデータを指定してください。

本関数は解像度が 640×480(PAL 製品の場合は 768×572)のデータに対しては奇数フィールド

と偶数フィールドを交互に配置した状態のデータを返します。

奇数ィールドデータ

偶数フィールドデータ

奇数フィールドデータ

偶数フィールドデータ

の交互

読み込み元のバッファ 格納先のバッファ

Page 236: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 );

Page 237: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 )

Page 238: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 239: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 );

Page 240: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 )

Page 241: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

領域を取り出します。

Page 242: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 );

Page 243: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 )

Page 244: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 245: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 );

Page 246: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 )

Page 247: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 からキャプチャデータを取り出します。

Page 248: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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(

Page 249: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

GPC-5520 Help for Windows

© 2003, 2016 Interface Corporation. All rights reserved.

248

IntPtr hDeviceHandle, // デバイスハンドル

IntPtr hSDRAMHandle, // SDRAM 管理ハンドル

uint[] pdwWriteData, // 比較データバッファのポインタ

uint dwSize // 比較データバッファのサイズ

);

Page 250: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 251: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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;

Page 252: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 値化モードによるキャプチャで比較用画像データを実際に取り込む方法があります。この場

合、奇数フィールドデータ、偶数フィールドデータを交互に配置替えする必要があります。

Page 253: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)

Page 254: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 255: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)

を格納します。

Page 256: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 257: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 戻り値一覧』をご参照くださ

い。

Page 258: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 259: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)

Page 260: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 261: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 262: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)

Page 263: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 264: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

GPC-5520 Help for Windows

© 2003, 2016 Interface Corporation. All rights reserved.

263

デバイス名「IFIMGPTN1」のデバイスに対して、SDRAM に 100×100 の比較データ(8bit)を格納

します。

Page 265: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 // フレーム番号格納用バッファポインタ

);

Page 266: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 戻り値一覧』をご参照くださ

い。

Page 267: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 268: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)

Page 269: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 270: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 271: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)

Page 272: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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」のデバイスに対して、一致率を取得します。

Page 273: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 274: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 275: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)

Page 276: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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」のデバイスに対して、画像処理を行なう成分を赤色成分に指定しま

す。

Page 277: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 // フレーム番号

);

Page 278: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 戻り値一覧』をご参照くださ

い。

Page 279: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)

Page 280: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 281: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 282: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 の値は無効なデータ

です。

Page 283: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 284: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 285: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)

Page 286: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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」のデバイスに対して、階調変換、フィルタ処理、膨張・収縮処理を有

効にします。

Page 287: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 288: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 戻り値一覧』をご参照くださ

い。

Page 289: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 290: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 291: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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;

Page 292: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 293: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 294: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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;

Page 295: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

GPC-5520 Help for Windows

© 2003, 2016 Interface Corporation. All rights reserved.

294

デバイス名「IFIMGCNV1」のデバイスに対して、階調変換処理した画像をキャプチャします。

Page 296: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 297: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 戻り値一覧』をご参照くださ

い。

Page 298: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 299: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 300: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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;

Page 301: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 302: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

GPC-5520 Help for Windows

© 2003, 2016 Interface Corporation. All rights reserved.

301

Page 303: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 304: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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;

Page 305: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 306: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 307: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)

Page 308: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

// 画像情報を設定

Page 309: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 310: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 311: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)

Page 312: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 画像領域確保

Page 313: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 フィルタ処理をした画像をキャプチャ

します。

Page 314: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 315: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 戻り値一覧』をご参照くださ

い。

Page 316: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 317: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 318: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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;

Page 319: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 320: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 321: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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」のデバイスに対して、膨張・収縮処理後の画像をキャプチャします。

Page 322: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 // 画像データの先頭ポインタ

);

Page 323: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 324: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 関数で静止画出力モードに変更した後に実行してく

ださい。

Page 325: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)

Page 326: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 327: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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」のデバイスに対して、静止画出力モードへセットし、静止画データ

を設定します。

Page 328: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 // 読み込み先バッファの先頭ポインタ

);

Page 329: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 330: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 関数で静止画出力モードに変更した後に実行してく

ださい。

Page 331: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 332: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)

Page 333: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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」のデバイスに対して、静止画データを読み込みます。

Page 334: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 335: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 戻り値一覧』をご参照くださ

い。

Page 336: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 337: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 338: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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;

Page 339: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 340: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 341: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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」のデバイスに対して、ラベリング処理後の画像データをキャプチャ

します。

Page 342: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 構造体

);

Page 343: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 構造体

);

Page 344: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 345: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 346: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 フレーム番号を指定します。

Page 347: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 戻り値一覧』をご参照くださ

い。

Page 348: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 349: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

// 完了まで待つ。

Page 350: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 351: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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))

Page 352: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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))

Page 353: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

// 完了まで待つ

Page 354: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

);

Page 355: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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;

Page 356: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)のサイズ

Page 357: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 358: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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,_

Page 359: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)

Page 360: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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))

Page 361: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

// 完了まで待つ

Page 362: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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」のデバイスで、全ラベルの面積値、重心値、フェレ径、慣性等価楕

円の傾き角を取得します。

Page 363: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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, // イメージの高さ

);

Page 364: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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, // イメージの高さ

);

Page 365: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 366: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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;

Page 367: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 368: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)で提供しています。

Page 369: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 370: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)

Page 371: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 372: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)

Page 373: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 フレーム分ビットマップ保存します。

Page 374: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 // データ

);

Page 375: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 376: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)

Page 377: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 をセットします。

Page 378: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 // データ

);

Page 379: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 380: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)

Page 381: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 をセットします。

Page 382: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 383: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 戻り値一覧』をご参照くだ

Page 384: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 385: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 にします。

Page 386: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 387: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 戻り値一覧』をご参照くだ

Page 388: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 389: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 にします。

Page 390: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 391: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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」が返りま

す。

Page 392: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 信号にします。

Page 393: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 394: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)

Page 395: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

カメラとの接続状態を取得します。

Page 396: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 397: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 398: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 情報を取得します。

Page 399: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 // キャプチャ条件設定

);

Page 400: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 401: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 402: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

カメラ情報とキャプチャ条件を設定します。

Page 403: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 // 出力パルス幅

);

Page 404: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 信号

Page 405: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)

Page 406: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 信号をインターバルタイマ割り込み周期で出力させます。

Page 407: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 408: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 409: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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パルス出力します。

Page 410: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 // タイムアウト

);

Page 411: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 // タイムアウト

);

Page 412: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 413: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 414: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 がフルになっている状態が、指定した時間を超えた場合、関数はタイムアウ

トエラーを返します。

Page 415: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 416: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)

Page 417: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 418: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 419: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

GPC-5520 Help for Windows

© 2003, 2016 Interface Corporation. All rights reserved.

418

STX,ETX コード付きの文字列(Interface)を送信します。

送信データのフォーマットはご使用のカメラによって異なりますので、カメラのマニュアルを参

照してください。

Page 420: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 // タイムアウト

);

Page 421: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 // タイムアウト

);

Page 422: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 423: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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関数で取得したデバイスハンドルを指定してください。

Page 424: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)

Page 425: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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バイト分データを受信します。

Page 426: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 427: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 戻り値一覧』をご参照くださ

い。

Page 428: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 429: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

シリアル通信状態を取得します。

Page 430: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 431: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 432: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 の中身をクリアします。

Page 433: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 434: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 435: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

カメラへ電源を供給します。

Page 436: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 437: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 438: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 439: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)

Page 440: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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に設定しま

す。

Page 441: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 // カウンタ周期

);

Page 442: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 443: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 に設定します。

Page 444: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 445: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)

Page 446: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

インターバルタイマカウンタを取得します。

Page 447: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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';

Page 448: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 // 画像サイズ

);

Page 449: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 450: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 設定無効

Page 451: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 戻り値一覧』をご参照くだ

Page 452: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)

Page 453: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 454: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 455: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 // 時刻

);

Page 456: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 戻り値一覧』をご参照くだ

Page 457: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)

Page 458: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 459: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)

Page 460: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 // フォントのサイズ

);

Page 461: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 構造体で指定します。

Page 462: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 戻り値一覧』をご参照くだ

Page 463: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 464: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)

Page 465: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 466: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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);

Page 467: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)

Page 468: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 の値

Page 469: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 メモリのサイズ

Page 470: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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;

Page 471: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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になりま

す。

この機能はお使いになっている製品のハードウェアのバージョン

よっては対応しておりません。ご注意ください。

Page 472: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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:トリガ発生

Page 473: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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;

Page 474: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 が空の場合、キャプチャを開始していない。

または映像機器からデータが取り込まれていない可能性がありま

す。

Page 475: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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:トリガ発生

Page 476: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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;

Page 477: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)

Page 478: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 479: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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:トリガエリア内の場合に発生

Page 480: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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];

}

}

Page 481: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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;

Page 482: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

を代入してください。配列要素に代入する際、必ず連続で代入してく

ださい。

Page 483: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)

Page 484: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 をご参照ください。

Page 485: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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;

Page 486: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 予約

Page 487: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

GPC-5520 Help for Windows

© 2003, 2016 Interface Corporation. All rights reserved.

486

bit2 面積 AND 重心 1:有効

0:無効

bit1 重心 1:有効

0:無効

bit0 面積 1:有効

0:無効

Page 488: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 489: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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:無効

Page 490: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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が返ります。

Page 491: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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;

}

Page 492: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 同期信号異常検知割り込み

Page 493: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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) ユーザデータ

Page 494: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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;

}

Page 495: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 には以下の情報が格納されます。

ビット 内容 状態

Page 496: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 ユーザデータ

Page 497: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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;

}

Page 498: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 499: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

GPC-5520 Help for Windows

© 2003, 2016 Interface Corporation. All rights reserved.

498

dwXCoordinates 読み込み開始 X座標

dwYCoordinates 読み込み開始 Y座標

dwXLength X 方向長さ

dwYLength X 方向長さ

Page 500: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 501: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 502: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 503: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)

Page 504: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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];

Page 505: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 506: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 赤成分の階調変換データ

Page 507: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 508: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 509: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 段)

Page 510: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 連結

Page 511: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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より少ない解像度は利用できません。

Page 512: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

GPC-5520 Help for Windows

© 2003, 2016 Interface Corporation. All rights reserved.

511

YStart 取り込み開始位置のY座標 設定範囲:0 ~ YMAX (YMAX) 使用カメラの垂直解像度-480 ※垂直解像度が 480 より少ない解像度は利用できません。

SyncMode 予約機能です。 0値固定です。

LVALInterVal 予約機能です。 0値固定です。

Page 513: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 514: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 パルス入力さ

れたらスタートする。

Page 515: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)

Page 516: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 時

Page 517: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 年

Page 518: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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座標を指定します。

Page 519: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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座標を指定します。

Page 520: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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転送)

停止中です。

-

Page 521: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)

スーパーインポーズ画

像書き込み中。

書き込みが完了まで待機してくださ

い。

Page 522: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 523: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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関数で、キャプ

チャが停止いていることを確認した後、バッファ領域を解放してください。

Page 524: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

BD

入力チャンネル

※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 は同時に制御できません。

Page 525: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)のデータです。

Page 526: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)のデータは以下のようになっています。

Page 527: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 番目

Page 528: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

水平ラインデータ

Page 529: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

水平ラインデータ

Page 530: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 まで。

Page 531: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 の場合

Page 532: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 を同時にキャプチャする際は必ず、同じキャプチャモードを選択してください。

Page 533: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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値化結果

Page 534: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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関数で、実際にキャプチャを実行してない場合でも、映像入力機器からのフ

レームデータに対する面積値、重心値を取得することが可能です。

Page 535: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 関数)を実

行された場合フラグがクリアされます。

何時の状態のトリガ状態なのか、知ることが出来ない可能性があり

ます。

(タイミング②)

Page 536: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)です。

Page 537: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 の範囲で出力します。

θは原点が左上の画像座標系による傾きです。時計回りは正の向きとなります。

Page 538: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 539: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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データとなります。

キャプチャ処理と併用して取得する場合、濃度分布と射影データは画像データの後部に配置されます。

Page 540: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 の画素数

Page 541: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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値画像モードを指定します。

Page 542: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

GPC-5520 Help for Windows

© 2003, 2016 Interface Corporation. All rights reserved.

541

本製品は、ImgSetConversionConfig関数で階調変換、フィルタ、膨張・収縮処理を組み合わせて、画

像をキャプチャしたり画像処理する事ができますが、以下の条件に限られます。

ImgSetConversinConfig 関数の

有効設定

キャプチャ出来る画像

階調変換 フィルタ 膨張・収縮 RGB 全般 GRAY8 2 値 フィルタ

2値画像処理

濃度分布

- - - ○ ○ ○ × ○ ○

○ - - ○ ○ ○ × ○ ○※

○ ○ - × × × ○ ○ ○

○ - ○ × × ○ × ○ ×

○ ○ ○ × × ○ × ○ ×

- ○ - × × ○ ○ ○ ○※

- ○ ○ × × ○ × ○ ×

- - ○ × × ○ × ○ ×

※ 2 値画像をキャプチャする場合は動作保証外です。フィルタ画像をキャプチャする場合は、フィル

タ画像に対する濃度分布処理となります。

フィルタ処理または膨張・収縮処理を有効にした場合、処理時間は約 2フレーム分時間を費やします。

キャプチャされる画像はカメラから取り込んだタイミングから 2 フレーム分遅れて転送される事に

なります。

Page 543: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

元画素データ フィルタ処理後データ

Page 544: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 545: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 構造体でフィードバック条件を設定します。

フィードバック回数と各フィードバックに対する膨張・収縮の選択、そして近傍の設定を行なう事

ができます。

Page 546: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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値画像処理も並行して行なう事ができます。

Page 547: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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…のフレームデータがバッファ領域に転送されます。

Page 548: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)

チャンネル設定間隔

チャンネル設定間隔

チャンネル設定間隔

Page 549: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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)

チャンネル設定間隔

チャンネル設定間隔

チャンネル設定間隔

Page 550: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 の値

※ データ転送先のバッファ領域が、(チャンネル数×フレーム数)分のサイズを満たさない

場合、データは先頭から上書きされます。

Page 551: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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空き領域

領域①

領域②

領域③

領域④

Page 552: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

領域⑤が確保できるサイズの空き領域が内

場合、領域⑤は確保できません。

この場合、領域②または領域③を解放して、

領域⑤のサイズを満たす連続した空き領域

を作成する必要があります。

領域⑤

Page 553: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 関数で得られるステ

ータス値で確認します。

Page 554: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 555: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 556: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 : 未使用

Page 557: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 558: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 開始座標

Page 559: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 規格カメラに外部電源を供給します。

Page 560: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 重心トリガ割り込みは各チャンネル個別設定となります。

Page 561: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

GPC-5520 Help for Windows

© 2003, 2016 Interface Corporation. All rights reserved.

560

■ スーパーインポーズ機能

GPC-5520 はスーパーインポーズデバイスに対して主に以下の制御を行います。

・ユーザアプリケーション上で作成した画像データをスーパーインポーズ画像として

デバイスのオンボードメモリへ書き込む。

・スーパーインポーズ処理の設定。

・スーパーインポーズ用の時刻、日付の設定。

1. スーパーインポーズ画像の設定

RGB24bit ビットマップ形式の画像データスーパーインポーズ画像として設定する事ができます。

ボードメモリ上にスーパーインポーズ画像用の領域を 8 画面分確保しており、 大 8 種類の画像

を設定することができます。

画像データは番号で管理する為、指定した番号に任意のスーパーインポーズ画像を割り当てる事

ができます。

PCI-540111 オンボードメモリ

インポーズ画像を転送

画像データ

キャプチャデータ保存領域

スーパーインポーズ画像領域①

スーパーインポーズ画像領域②

スーパーインポーズ画像領域③

スーパーインポーズ画像領域④

スーパーインポーズ画像領域⑤

スーパーインポーズ画像領域⑥

スーパーインポーズ画像領域⑦

スーパーインポーズ画像領域⑧

文字列 XXXX

ImgSetImposeImage 関数でセットする事ができます。

Page 562: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

GPC-5520 Help for Windows

© 2003, 2016 Interface Corporation. All rights reserved.

561

■スーパーインポーズ画像の反映タイミング

スーパーインポーズ画像が反映されるタイミングは、以下のようになっています。

モニタ出力

1

2

3

スーパーインポーズ画像の演算方法

を上書きに設定

次のフレームからスーパーインポー

ズ画像が反映される。

Page 563: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

GPC-5520 Help for Windows

© 2003, 2016 Interface Corporation. All rights reserved.

562

2. スーパーインポーズ画像の設定

スーパーインポーズする画像と演算処理を選択する事ができます。

上書き、加算、減算、XOR 演算処理を指定する事ができます。演算は画素毎に施す事ができます。

SprSetImposeImage 関数で指定する事ができます。スーパーインポーズの有効/無効を切替える事

ができます。

●上書き

インポーズ画像データをカメラ画像に上書きする。白(R:FF G:FF B:FFh)は透過させま

す。

●加算

2つの画像を単純に足し合わせる。全体的に明るく(白っぽく)なります。

●減算

スーパーインポーズ画像のデータからカメラ画像を引きます。全体的に暗く(黒っぽく)なり

ます。同一画像の場合、真っ黒になります。

AND =

入力画像 スーパーインポーズ用画像 出力画像

+ =

入力画像 スーパーインポーズ用画像 出力画像

- =

入力画像 スーパーインポーズ用画像 出力画像

Page 564: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

GPC-5520 Help for Windows

© 2003, 2016 Interface Corporation. All rights reserved.

563

●XOR

スーパーインポーズ画像のデータとカメラ画像の XOR(排他論理和)をとります。

●透過

2つの画像を単純に足し合わせる。加算と比較して全体的に明るく(白っぽく)はなりません。

XOR =

入力画像 スーパーインポーズ用画像 出力画像

+ =

入力画像 スーパーインポーズ用画像 出力画像

Page 565: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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

Page 566: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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」をクリックします。

ウィンドウにキャプチャデータが描画されます。

Page 567: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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」をクリックします。ウィンドウにキャプチャデータが描画されま

す。

Page 568: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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」のメッセージが表示されます。※メッセージは、割り

込みイベント(コールバック関数、またはメッセージイベント)で表示しています。

Page 569: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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」をクリックします。ウィンドウにキャプチャデータが描画されま

す。

Page 570: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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」のメッセージが表示されます。

※メッセージは、割り込みイベント(コールバック関数、またはメッセージイベント)で表

示しています。

Page 571: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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」をクリックすることで、キャプチャを停止する事ができます。

Page 572: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 のデータフォーマット指定時に、濃度分布、射影データを選択した場合、各画像処理結

果を確認する事ができます。

Page 573: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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」をクリックします。ウィンドウにキャプチャデータが描画されます。

Page 574: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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」をクリックします。ウィンドウにキャプチャデータが描画されます。

Page 575: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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」をクリックします。ウィンドウにキャプチャデータが描画されます。

Page 576: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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に対する画像処理データを表示します。

Page 577: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 となります。 大サイズの範

囲内でファイル保存を行なってください。

Page 578: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 関数でポーリン

グしながら待機します。

キャプチャが完了したら、ビットマップファイルに画像を保存します。

Page 579: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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」を開き、ビルドしてく

ださい。

Page 580: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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. 実行画面

Page 581: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

GPC-5520 Help for Windows

© 2003, 2016 Interface Corporation. All rights reserved.

580

名称 説明

デバイスオープン オープン画面が起動します。

使用可能なデバイスの一覧が表示され

ます。

デバイスを選択します。

開く Bmp 形式ファイルを開きます。

保存 画面に表示している画像データをbmp形

式ファイルで保存します。

デバイスクローズ 使用しているデバイスをクローズしま

す。

カメラファイル PEX-H531322 専用です。使用するカメラ

コンフィグファイルを読み込みます。

フ ァ イ

終了 アプリケーションを終了します。

表示 ステータスバー ステータスバーの表示を設定します。

オ プ シ

ョン

出力モード 映像出力端子(チャンネル 2)からの出

力モードを切り換えます。

【スルーモード】

映像入力端子から入力した画像をその

まま出力します。

【カラーバーモード】

映像出力端子(チャンネル 2)からのカ

ラーバー画像を出力します。

【静止画出力】

カメラ画像をそのまま静止画として出

力します。

① メニューバー

ヘルプ バージョン情報 アプリケーションのバージョンを表示

します。

②キャプチャ開始 キャプチャを開始して、キャプチャデー

タを画面に表示します。

③キャプチャ停止 キャプチャを停止します。

④設定 キャプチャ、2 値化、トリガ処理、パタ

ーン一致処理、階調変換、フィルタ、膨

張・収縮を設定する、タブコントローラ

ーです。

⑤ステータスバー 2 値化画像処理の結果です、パターン一

致率を表示します。

Page 582: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 製品専用)

④使用チャンネル 使用するチャンネルを設定します。

(多チャンネル製品専用)

⑤開始位置 画像の開始位置を設定します。

「設定」ボタンで、設定を行います。

⑥グリッド表示 キャプチャ停止後の画像に対して、グリ

ッドラインを表示します。

「表示」ボタンで表示します。

Page 583: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 規格のカメラ用のカメラコ

ンフィグファイルを読み込んでいない

と動作しません。

Page 584: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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値化測定範囲に指定」を選択します。

Page 585: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 重心トリガ」

も有効となります。

※ マウスドラッグによる指定も可能です。マウスの左ボタンで画面上をドラッグして範囲指

定を行ってください。(四角の枠が表示されます。)

その後、右クリックで「トリガ範囲に指定」を選択します。

Page 586: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

GPC-5520 Help for Windows

© 2003, 2016 Interface Corporation. All rights reserved.

585

7. 画面説明(パターン一致)

名称 説明

①ファイル 比較用データをファイルから読み込みます。

②データ一致率 データの一致率を設定します。

③パターン一致回数 パターン一致を検出する回数を指定します。

指定した回数に達したら、再キャプチャを実行する

まで、パターン一致によるメッセージ表示は行われ

ません。

④自動補正 自動補正機能使用に有無を指定します。

自動補正機能を使用する場合は、2値化処理設定と

測定範囲の指定を行ってください。

⑤パターン一致トリガ発生条件 パターン一致する条件を設定します。

⑥比較開始座標 自動補正機能を使用しない場合に設定します。

データの比較を開始する座標を指定してください。

Page 587: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

GPC-5520 Help for Windows

© 2003, 2016 Interface Corporation. All rights reserved.

586

8. パターン一致機能の使用方法

① 2 値化の設定

「2 値化処理」のタブコントロール上で 2 値化処理条件を設定し、「適応」ボタンをクリック

します。

② 比較データの指定

まず、比較データを指定します。指定方法は 2通りです。

ファイルからの読み込み 「パターン一致」のタブコントロールの「ファイル」ボタ

ンより Bmp 形式の比較データファイルを読み込みます。

必ず「モノクロビットマップ」で保存されたファイルを指

定してください。また、画像データは「黒」と「白」の色

データです。

キャプチャ後のデータから指定 データフォーマットを「2値化 8bit」に指定して、比較元

となる対象物をキャプチャします。マウスの左ボタンで画

面上をドラッグしながら、比較データを選択してくださ

い。(四角の枠が表示されます。)。その後、右クリックで

「比較データに指定」を選択します。

Page 588: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

GPC-5520 Help for Windows

© 2003, 2016 Interface Corporation. All rights reserved.

587

③ パターン一致機能の設定

「パターン一致」のタブコントロール上でパターン一致条件を設定し、「適応」ボタンをクリ

ックします。

④ キャプチャ実行

キャプチャを開始します。パターン一致機能は 2 値化されたデータを比較対象としますので、

データフォーマットが「2値化 8bit」によるキャプチャで実行したほうが、状況が把握しやす

いでしょう。

⑤ パターン一致検出

パターン一致が検出された時、メッセージボックスが表示されます。

そのときの一致率も表示されます。

Page 589: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

GPC-5520 Help for Windows

© 2003, 2016 Interface Corporation. All rights reserved.

588

9. 画面説明(階調変換)

①②

名称 説明

①階調変換有効 チェックを付けると階調変換処理が有効

となります。

②階調変換データ選択 階調変換データを選択します。

スルー、反転、4階調、8階調、16 階調、

32 階調、64 階調を選択可能です。

③LUT セット ②で選択した階調変換データを更新しま

す。

④R/G/B/GRAY チェックを付けた色成分の階調変換テー

ブルが更新されます。

⑤階調変換データ ②で選択した階調変換テーブルデータが

表示されます。

また、直接編集する事も可能です。

Page 590: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

GPC-5520 Help for Windows

© 2003, 2016 Interface Corporation. All rights reserved.

589

10. 画面説明(フィルタ処理)

名称 説明

①フィルタ処理有効 チェックを付けるとフィルタ処理が有効

となります。

②空間フィルタ係数 空間フィルタ係数の値を直接入力する事

ができます。

③差分型エッジフィルタ係数 差分型空間フィルタ係数の値を直接入力

する事ができます。

④フィルタ選択 選択したフィルタ係数の値が②と③に反

映されます。

Page 591: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

GPC-5520 Help for Windows

© 2003, 2016 Interface Corporation. All rights reserved.

590

11. 画面説明(膨張・収縮処理)

①③

名称 説明

①膨張・収縮処理有効 チェックを付けると膨張・収縮処理が有効となります。

②段選択 段数を選択します。

③膨張/収縮 各段の膨張・収縮処理を選択します。

②で選択した段までの設定が反映されます。

④4連結/8 連結 各段の近傍を選択します。

②で選択した段までの設定が反映されます。

Page 592: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 環境によっては、指定したサイズで物理メモリを確保できるとは限りません。

お客様自身で 適なサイズを確保していただきますようお願い致します。

Page 593: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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フレーム毎に表示されます。

Page 594: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

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 の設定値をイ

ンタフェースモジュール毎で異なる値に

設定してください。

Page 595: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

GPC-5520 Help for Windows

© 2003, 2016 Interface Corporation. All rights reserved.

594

3. 画面上に現在の入力信号の状態、出力信号の状態が表示されます。

汎用入力 汎用入力の状態表示されます。

汎用出力 画面上に表示されているボタンをクリックすると、出力信号の ON/OFF

を切り替えることができます。

図 3.実行画面

ON

OFF

Page 596: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

GPC-5520 Help for Windows

© 2003, 2016 Interface Corporation. All rights reserved.

595

第7章 重要な情報

保証の内容と制限

弊社は本ドキュメントに含まれるソースプログラムの実行が中断しないこと、またはその実行に

誤りが無いことを保証していません。

本製品の品質や使用に起因する、性能に起因するいかなるリスクも使用者が負うものとします。

弊社はドキュメント内の情報の正確さに万全を期しています。万一、誤記または誤植などがあっ

た場合、弊社は予告無く改訂する場合があります。ドキュメントまたはドキュメント内の情報に

起因するいかなる損害に対しても弊社は責任を負いません。

ドキュメント内の図や表は説明のためであり、ユーザ個別の応用事例により変化する場合があり

ます。

著作権、知的所有権

弊社は本製品に含まれるおよび本製品に対する権利や知的所有権を保持しています。

本製品はコンピュータ ソフトウェア、映像/音声(例えば図、文章、写真など)を含んでいます。

医療機器/器具への適用における注意

弊社の製品は人命に関わるような状況下で使用される機器に用いられる事を目的として設計、製

造された物では有りません。

弊社の製品は人体の検査などに使用するに適する信頼性を確保する事を意図された部品や検査機

器と共に設計された物では有りません。

医療機器、治療器具などの本製品の適用により、製品の故障、ユーザ、設計者の過失などにより、

損傷/損害を引き起こす場合が有ります。

複製の禁止

弊社の許可なく、本ドキュメントの全て、または一部に関わらず、複製、改変などを行うことは

できません。

責任の制限

弊社は、弊社または再販売者の予見の有無にかかわらず発生したいかなる特別損害、偶発的損害、

間接的な損害、重大な損害について、責任を負いません。

本製品(ハードウェア,ソフトウェア)のシステム組み込み、使用、ならびに本製品から得られる

結果に関する一切のリスクについては、本製品の使用者に帰属するものとします。

本製品に含まれるバグ、あるいは本製品の供給(納期遅延)、性能もしくは使用に起因する付帯的

損害もしくは間接的損害に対して、弊社に全面的に責がある場合でも、弊社はその製品に対する

改良(正常に動作する)、代品交換までとし、金銭面での賠償の責任は負わないものとしますので、

予めご了承ください。

本製品(ソフトウェアを含む)は、日本国内仕様です。本製品を日本国外で使用された場合、弊

社は一切責任を負いかねます。また、弊社は本製品に関し、海外での保守サービスおよび技術サ

ポート等は行っておりません。

Page 597: GPC-5520 -  · PDF fileキャプチャした画像データに対して、2値化処理が行えます。 ... ImgLut 階調変換処理サンプル ... Delphi 5/6/7 Studio

GPC-5520 Help for Windows

© 2003, 2016 Interface Corporation. All rights reserved.

596

商標/登録商標

本書に掲載されている会社名、製品名は、それぞれ各社の商標または登録商標です。