HDevEngineによる結果を評価

機能

このステップは、事前定義済みのHalconビジョンプログラムを実行し、計算結果をMech-Visionに出力します。

使用シーン

Halconのアルゴリズムの一部を呼び出す必要がある場合は、このステップを使用できます。

入力と出力

  • 入力: パラメータ 入力ポート名 に入力されたデータ型によって決定されます。

  • 出力: パラメータ 出力ポート名 に入力されたデータ型によって決定されます。

パラメータ説明

プログラムの設定

設定可能なパラメータは下図の通りです。

evaluate results by hdevengine parameter 1
hDevプログラムのパス

パラメータ説明:このパラメータは、hDevプログラムのパス(Halconのメインプログラムのパス)を設定するために使用されます。

外部プロシージャフォルダ

パラメータ説明:このパラメータは、Halconの外部関数に格納されているフォルダのパスを設定するために使用されます(セミコロン「;」で区切られた複数のパスを含めることができます)。

プロシージャ名

パラメータ説明:このパラメータは、外部関数名を設定するために使用されます。パラメータドロップダウンリストから選択できます。

デバッグ設定

設定可能なパラメータは下図の通りです。

evaluate results by hdevengine parameter 2
オンラインデバッグ

パラメータ説明:このパラメータにチェックを入れると、デバッグサーバーが起動されます。ユーザーは、Halconソフトウェア内で、Mech-Visionから受信したデータをリアルタイムで表示し、プログラムをデバッグすることができます。

初期値:チェックを入れない。

調整説明:オンラインデバッグにチェックを入れた後、Halconソフトウェアのメニューバーで実行  プロセスへのアタッチを選択し、ポップアップウィンドウでOKをクリックする必要があります。そうしないと、Halconでデバッグサーバーを起動できません。Halconソフトウェアでデバッグサーバーが起動されないと、Mech-Vision実行中にラグが発生することがあります。

調整アドバイス:実際の状況に応じて設定してください。

入力設定

設定可能なパラメータは下図の通りです。

evaluate results by hdevengine parameter 3

入力設定は、プロシージャ名が設定された後にのみ設定可能です。

入力ポート名

パラメータ説明:このパラメータは、このステップの入力ポートのデータ型を設定するために使用されます。

入力制御変数名

パラメータ説明:このパラメータは、入力制御変数パラメータの名前リストを設定するために使用されます。

入力画像変数名

パラメータ説明:このパラメータは、入力画像変数パラメータの名前リストを設定するために使用されます。

出力設定

設定可能なパラメータは下図の通りです。

evaluate results by hdevengine parameter 4
出力ポート名

パラメータ説明:このパラメータは、このステップの出力ポートのデータ型を設定するために使用されます。

出力制御変数名

パラメータ説明:このパラメータは、出力制御変数パラメータの名前リストを設定するために使用されます。

出力画像変数名

パラメータ説明:このパラメータは、出力画像変数パラメータの名前リストを設定するために使用されます。

使用説明

事前準備

このステップを使用するには、以下の要件を満たす必要があります。いずれかの条件を満たさない場合、このステップがステップライブラリに表示できません。

  1. ライセンス付きのHalconソフトウェアがコンピューターにインストールされています。

  2. Halconソフトウェアの インストールディレクトリ\bin\x64-win64 からdllファイル(下図に示す)をMech-Visionのインストールディレクトリにコピーします。Mech-Visionが起動されている場合、Mech-Visionを再起動しないと有効になりません。

    evaluate results by hdevengine dll file

対応可能なHalconプログラムの呼び出し方式

  • Mech-VisionでHDevメインプログラムを呼び出し、メインプログラムには外部関数はありません。

  • Mech-VisionでHDevメインプログラムを呼び出し、メインプログラムにはいくつかの外部関数があります。

  • Mech-Visionで外部関数を1つだけ呼び出します。

対応可能なHalconデータ型の変換説明

Mech-Visionプロジェクトでは、他のステップはこのステップにデータを入力する際に、Mech-Visionデータ型はHalconデータに変換されます。このステップは他のステップにデータを出力する際に、Halconデータ型はMech-Visionデータ型に変換されます。

対応可能なデータ型の変換説明は以下の通りです。

  • 画像変数型

Halconデータ型 Mech-Visionデータ型 詳細

Image

Image

Mech-Visionデータ型とHalconデータ型との相互変換が可能です。

  • 制御変数型

Halconデータ型 Mech-Visionデータ型 詳細

Tuple

NumberList、String、StringList、Variant、VariantList

他のステップはこのステップにデータを入力する際に、入力したMech-Visionデータ型は複数型のTupleデータ型に変換することができます。このステップは他のステップにデータを出力する際に、単一型のTupleデータ型をMech-Visionデータ型に変換することに対応しますが、複数型のデータ型の変換は対応していません。

integer

NumberList

このステップが他のステップにデータを出力するときのみ、Halconデータ型はMech-Visionデータ型に変換されることに対応します。

real

NumberList

このステップが他のステップにデータを出力するときのみ、Halconデータ型はMech-Visionデータ型に変換されることに対応します。

string

String

このステップが他のステップにデータを出力するときのみ、Halconデータ型はMech-Visionデータ型に変換されることに対応します。

注意事項

「HDevEngineによる結果を評価」を使用してHalconを実行する場合、以下のことにご注意ください。

  • メインプログラムのみを実行する場合、入力設定は不要です。

  • メインプログラムと外部関数の同時実行はサポートされていません。

  • Halconプログラムをデバッグまたは修正する必要がある場合、プロジェクトを実行するたびにHalconプログラムを再読み込むために、 実行フラグ パラメータ群から「必要なファイルを再読み込み」にチェックを入れます。チェックを入れないと、プロジェクト実行時に修正前のプログラムが読み込まれます。

用途例

例1:HDevメインプログラムを呼び出し、メインプログラムには外部関数がない場合

使用されるHalconプログラムは以下の通りです。

read_image (Image, 'fabrik')

regiongrowing (Image, Regions, 1, 1, 3, 200)

area_center (Regions, Area, Row, Column)

上記のプログラムをHalconソフトウェアに保存したら、Mech-Visionで保存したプログラムを呼び出すことができます。操作手順は以下の通りです。

  1. メインプログラムのパスを設定します。hDevプログラムのパスパラメータでメインプログラムのパスを設定します。

  2. 出力ポートを設定します。Halcon変数型に応じて、出力ポート名を設定します。

  3. 出力変数名を設定します。Halconの変数名に応じて、出力制御変数名出力画像変数名を設定します。

上記の設定が完了すると、ステップパラメータは下図のようになります。

evaluate results by hdevengine example main paramter

対応するMech-Visionプロジェクトを下図に示します。各出力ポートのデータフローをダブルクリックして、出力結果を確認できます。

evaluate results by hdevengine example main

例2:HDevメインプログラムを呼び出し、メインプログラムにはいくつかの外部関数がある場合

使用されるHalconプログラムは以下の通りです。

* atoms.hdev: Locates irregularities in an atomic grid structure
*
dev_close_window ()
dev_update_window ('off')
* ****
* Acquire image
* ****
read_image (Image, 'atoms')
get_image_size (Image, Width, Height)
crop_rectangle1 (Image, Image, Height / 2, 0, Height - 1, Width - 1)
get_image_size (Image, Width, Height)
*dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowID)
*set_display_font (WindowID, 14, 'mono', 'true', 'false')
dev_set_draw ('margin')
dev_set_line_width (2)
dev_display (Image)
*disp_message (WindowID, 'Original image', 'window', 12, 12, 'black', 'true')
*disp_continue_message (WindowID, 'black', 'true')
stop ()
* ****
* Segment image
* ****
* -> Using watershed
gauss_filter (Image, ImageGauss, 5)
watersheds (ImageGauss, Basins, Watersheds)
dev_display (Image)
dev_set_colored (12)
dev_display (Watersheds)
*disp_message (WindowID, 'Watersheds', 'window', 12, 12, 'black', 'true')
*disp_continue_message (WindowID, 'black', 'true')
stop ()
* ****
* Process regions
* ****
* -> Skip regions at the border of the image
smallest_rectangle1 (Basins, Row1, Column1, Row2, Column2)
select_shape (Basins, SelectedRegions1, 'column1', 'and', 2, Width - 1)
select_shape (SelectedRegions1, SelectedRegions2, 'row1', 'and', 2, Height - 1)
select_shape (SelectedRegions2, SelectedRegions3, 'column2', 'and', 1, Width - 3)
select_shape (SelectedRegions3, Inner, 'row2', 'and', 1, Height - 3)
* -> Select irregularly shaped atoms
select_shape (Inner, Irregular, ['moments_i1','moments_i1'], 'or', [0,9.5e8], [1.5e8,1e10])
dev_display (Image)
dev_set_line_width (1)
dev_set_color ('white')
dev_display (Inner)
dev_set_line_width (3)
dev_set_color ('red')
dev_display (Irregular)
*disp_message (WindowID, 'Defects', 'window', 12, 12, 'black', 'true')

上記のプログラムをHalconソフトウェアに保存したら、Mech-Visionで保存したプログラムを呼び出すことができます。操作手順は以下の通りです。

  1. メインプログラムのパスを設定します。hDevプログラムのパスパラメータでメインプログラムのパスを設定します。

  2. 外部関数のフォルダパスを設定します。外部プロシージャフォルダパラメータで外部関数のフォルダパスを設定します。

  3. 出力ポートを設定します。Halcon変数型に応じて、出力ポート名を設定します。

  4. 出力変数名を設定します。Halconの変数名に応じて、出力制御変数名出力画像変数名を設定します。

上記の設定が完了すると、ステップパラメータは下図のようになります。

evaluate results by hdevengine example procedure paremter

対応するMech-Visionプロジェクトを下図に示します。各出力ポートのデータフローをダブルクリックして、出力結果を確認できます。

evaluate results by hdevengine example procedure

例3:外部関数を1つだけ呼び出す場合

使用されるHalconプログラムは以下の通りです。

gauss_filter(Image, Image_Gauss, Kernel_Size)

regiongrowing (Image_Gauss, Regions, 1, 1, 3, 200)

area_center (Regions, Area, Row, Column)

return ()

上記のプログラムをHalconソフトウェアに保存したら、Mech-Visionで保存したプログラムを呼び出すことができます。操作手順は以下の通りです。

  1. 外部関数のフォルダパスを設定します。外部プロシージャフォルダパラメータで外部関数のフォルダパスを設定します。

  2. 外部関数名を設定します。プロシージャ名パラメータのドロップダウンリストから外部関数名を選択します。

  3. 入力ポートを設定します。外部関数のパラメータリストに応じて、入力ポート名を設定します。

  4. 入力変数名を設定します。Halconの変数名に応じて、入力制御変数名入力画像変数名を設定します。

  5. 出力ポートを設定します。Halcon変数型に応じて、出力ポート名を設定します。

  6. 出力変数名を設定します。Halconの変数名に応じて、出力制御変数名出力画像変数名を設定します。

上記の設定が完了すると、ステップパラメータは下図のようになります。

evaluate results by hdevengine example procedure name paramter

対応するMech-Visionプロジェクトを下図に示します。各出力ポートのデータフローをダブルクリックして、出力結果を確認できます。

evaluate results by hdevengine example procedure name