save-images
このサンプルプラグインでは、データコンテナ API の使用法を示しています。プラグインを実行すると、MVApp 結果 に含まれる画像データが、ディスク上の構成可能なディレクトリに自動的に保存されます。このプラグインは、画像フォーマット、出力ディレクトリ構造、画像を出力する条件などをカスタマイズするための豊富な構成オプションを提供します。このプラグインのソースコードは、MERLIC インストールディレクトリの「examples\communication_plugins\save-images」ディレクトリにあります。
プラグインの使用方法
このプラグインは、「action-sender」サンプルプラグインと組み合わせてテストできます。「action-sender」プラグインでアクションを送信し、「save-images」プラグインで画像結果をディスクに保存できます。
レシピで参照する MERLIC Vision App は、画像結果を表す少なくとも 1 つの MVApp 結果 が必要であることに留意してください。画像結果が MVApp 結果 に追加されていない場合、サンプルプラグインから画像を取得することはできません。
- MERLIC RTE Setup を開き、「レシピ」タブに移動します。
- 画像結果を表す少なくとも 1 つの MVApp 結果 を含む MERLIC Vision App を参照するレシピをインポートします。テスト用に、サンプルレシピの「verify_chip_number_recipe.mrcp」を使用することもできます。
- レシピをデフォルトのレシピとして設定します。プラグインの起動時にこのステップをスキップしてレシピがデフォルトとして設定されていない場合は、「action-sender」プラグインからコマンド「python.exe comm-send.py PrepareRecipe <Recipe ID>」を使用して、つまりステップ 9 以降に、手動でレシピを読み込む必要があります。
- 「通信」タブに切り替え、MERLIC RTE を起動します。MERLIC RTE の実行中はプラグインの構成サービスを使用できます。
- 左側にあるプラグインインスタンスのリストに「save-images」プラグインを追加します。

- プラグインの構成を確認します。詳細については、「プラグインの構成」セクションを参照してください。
- MERLIC RTE Setup の下部にある「
プラグインの起動」ボタンをクリックするか、左側のプラグインインインスタンスリストの各メニューから、プラグインの実行を開始します。プラグインを開始する方法と停止する方法の詳細については、「通信プラグインの開始および停止」を参照してください。
- 「save-images」プラグインと同様に「action-sender」プラグインを追加・起動します。
- コマンドプロンプトを開き、「action-sender」プラグインのディレクトリ、つまり MERLIC のインストールディレクトリの「examples\communication_plugins\action-sender」ディレクトリに移動します。
- Python スクリプト「comm-send.py」を使用して、以下のように 1 回の実行を開始します。MVApp が 1 回実行されると画像の結果が取得され、定義されたディレクトリに保存されます。「python.exe comm-send.py --help」と入力して、詳細な使い方を確認することもできます。コピー
python.exe comm-send.py StartSingleJob - 「save-images」プラグインの構成で定義したディレクトリに保存された画像を確認します。
プラグインの構成
サンプルプラグインは、MERLIC RTE Setup の「通信」タブで構成できます。MERLIC RTE Setup を開いてプラグインを追加するだけで、プラグインで使用できる構成項目が表示されます。構成を有効にするには、まず MERLIC RTE を起動する必要があることに留意してください。
「通信」タブの右側には、選択したプラグインのパラメーターが表示されます。以下では、セクション「User parameters」のパラメーターのみを説明します。構成可能なのはこれだけです。
Image Settings
Image format
|
フォーマット |
説明 |
|---|---|
|
PNG |
画像が PNG 画像として保存されます。このフォーマットを選択する場合、パラメーター PNG compression が有効になって構成できます。 |
|
JPEG |
画像が JPEG 画像として保存されます。このフォーマットを選択する場合、次の追加パラメーターが有効になります: |
|
HALCON Serialized Item |
画像が HALCON Serialized Item として保存され、ファイル名には .hse 拡張子が付きます。これはプロプライエタリフォーマットなので、MVTec HALCON も扱っているユーザーでなければ使用できません。HDevelop でこのフォーマットのファイルを読み込みたい場合は、次のようなコードスニペットを使用する方法かがあります。 open_file('<file path to .hse>', 'input_binary', FileHandle) fread_serialized_item(FileHandle, SerializedItemHandle) deserialize_object(Object, SerializedItemHandle) |
一般に的に「byte」、「int1」、「uint2」、「int2」、「int4」、「int8」、「real」タイプの画像はすべて、MVApp 結果 としてエクスポートでき、使用可能な画像フォーマットに変換できます。ただし、タイプ「real」の画像は「HALCON Serialized Item」フォーマットにしか変換できないため、例外です。画像フォーマットとそれぞれのピクセル変換の詳細については、通信プラグインの構成の画像の結果セクションを参照してください。
Use progressive JPEG
このパラメーターは、「Image format」が「JPEG」に設定されている場合にのみ使用可能です。
JPEG quality
このパラメーターは、「Image format」が「JPEG」に設定されている場合にのみ使用可能です。JPEG に圧縮する際の画質をパーセントで定義します。デフォルト設定値は 50% です。
PNG compression
このパラメーターは、「Image format」が「PNG」に設定されている場合にのみ使用可能です。PNG に圧縮する際のレベルで定義します。設定可能な値は 0~9 です。デフォルト設定値は 6 です。
Image zoom mode
このパラメータでは、結果の偽造のサイズを変更できます。利用可能なオプションは下の表のとおりです。選択したモードによっては、追加のパラメーターも構成可能になります。パラメーターの設定値はデフォルトで「None」です。
|
モード |
説明 |
|---|---|
|
None |
画像がズームなしに元のサイズで保存されます。 |
|
Fixed width and height |
画像は、パラメーター Image width および Image height で指定されたサイズに変更されます。 |
|
Zoom factor |
画像は、パラメーター Image zoom factor で係数に応じた縦横比でサイズが変更されます。 |
Image width
このパラメーターは、「Image zoom mode」が「Fixed width and height」に設定されている場合にのみ使用可能です。結果の画像の幅を定義します。
Image height
このパラメーターは、「Image zoom mode」が「Fixed width and height」に設定されている場合にのみ使用可能です。結果の画像の高さを定義します。
Image zoom factor
このパラメーターは、「Image zoom mode」が「Zoom factor」に設定されている場合にのみ使用可能です。縦横の比を維持して画像のサイズを変更する際に使用されるパーセンテージを定義します。100% 以上の値を指定できます。デフォルト設定値は 100% で、元の画像サイズが維持されます。
Conditional Output
Output condition
このパラメーターは、特定の MVApp 結果 の値に基づいて画像の検索結果を取得するかどうかを定義します。デフォルトでは「Always」に設定されており、画像は MVApp 結果 の値にかかわらず保存されます。このオプションはさまざまなユースケースに使用できます。たとえば、品質検査の場合、悪い品質が検出された反復の画像のみを保存したい場合などです。
|
条件 |
説明 |
|---|---|
|
Always |
画像の結果は、MVApp 結果 の値にかかわらず常に保存されます。 |
|
On result true |
特定の MVApp 結果 の値が「true」の場合のみ、画像の結果が保存されます。値の確認が必要な MVApp 結果 の名前は、パラメーター Result name で定義できます。「Output condition」が「On result true」に設定されると同時に利用可能になります。 結果の値のタイプによって、出力条件が「true」に設定されるケースは異なります。
|
|
On result false |
特定の MVApp 結果 の値が「false」の場合のみ、画像の結果が保存されます。値の確認が必要な MVApp 結果 の名前は、パラメーター Result name で定義できます。「Output condition」が「On result false」に設定されると同時に利用可能になります。 結果の値のタイプによって、出力条件が「false」に設定されるケースは異なります。
|
Result name
このパラメーターは、パラメーター「Output condition」が「On result false」または「On result true」に設定されている場合にのみ使用可能です。値の確認が必要な MVApp 結果 の名前を入力できます。「Output condition」のパラメーター設定の条件に値が一致する場合、画像が取得して保存されます。
Output
Image result filter mode
このパラメーターを使用すると、どの画像の結果を取得するかを決定するフィルターを有効化できます。以下のオプションから選択できます。デフォルト設定値は「None」です。
|
モード |
説明 |
|---|---|
|
None |
フィルタリングは適用されず、すべての結果の画像が取得されます。 |
|
Regular expression |
パラメーター Result name filter regex で指定された正規表現に一致する名前の結果の画像のみが取得されます。 |
Result name filter regex
Base directory
このパラメーターは、画像の結果を保存するディレクトリを定義します。 ボタンを介してファイルシステムからディレクトリを選択することも (ローカルシステムの場合)、テキストフィールドに直接パスを入力することもできます。デフォルトでは、Windows システムでは「%LOCALAPPDATA%/Temp」に、Linux システムでは「/tmp」に設定されています。また、画像の結果を特定フォーマットのサブディレクトリに保存することもできます。これは、パラメーター Subdirectory format で行うことができます。
Subdirectory format
このパラメーターは、画像の結果を保存するサブディレクトリのフォーマットを定義します。デフォルト設定値は「Recipe ID」です。
|
フォーマット |
説明 |
|---|---|
|
None |
サブディレクトリは作成されません。画像の結果は、パラメーター「Base directory」で定義された場所に直接保存されます。 |
|
Recipe ID |
サブディレクトリは現在準備されているレシピの ID、つまり実行される MVApp を参照するレシピの名前です。 |
|
Date |
サブディレクトリ名は実行時点の日付に従って付けられます。日付は次のようなフォーマットです: {year}-{month:02}-{day:02} (たとえば「2022-07-18」)。 |
|
Date and recipe ID |
サブディレクトリ名は、現在の日付と現在準備されているレシピの ID に従って付けられます。結果として、ディレクトリ名は次のようにフォーマットされます: {year}-{month:02}-{day:02}--{recipeId} (たとえば「2022-07-18--6」)。 |
|
Custom |
このオプションでは、ディレクトリの名前にカスタムフォーマットを使用できます。使用するフォーマットは、パラメーター Subdirectory format string で定義でき、これは「Custom」を選択するとすぐに使用可能になります。 |
Subdirectory format string
このパラメーターは、「Subdirectory format」が「Custom」に設定されている場合にのみ使用可能です。このパラメーターを使用すると、画像の結果を保存するサブディレクトリの名前をカスタムフォーマットで定義できます。サブディレクトリの名前を入力フィールドに入力するか、レシピ ID などの特定の値を表すプレースホルダーを使用して名前を定義できます。このようなプレースホルダーは、中括弧で定義する必要があり、そのように定義しなかった場合は通常の文字列として解釈されます。
次の表は使用可能なプレースホルダーのまとめです。
|
フォーマット文字列のプレースホルダー |
データフォーマット |
説明 |
|---|---|---|
|
{recipeId} |
String |
現在準備中のレシピの ID。 |
|
{resultId} |
Integer |
取得された画像結果の ID。 |
|
{resultName} |
String |
それぞれの MVApp 画像の結果の名前、つまり MERLIC Creator の MVApp 結果 に画像の結果を追加する際に定義された名前です。MVApp 画像の結果が複数ある場合は、複数のサブディレクトリが作成されます。それぞれの MVApp 画像の結果に対して、それぞれの名前が付けられます。 |
|
{dataIndex} |
Integer |
MVApp 画像の結果のインデックス。MERLIC Creator の「MVApp パラメーターおよび結果」パネルで MVApp 画像の結果に割り当てられている位置番号に対応し ます。 |
|
{year} |
Integer |
実行時点の年。 |
|
{month} |
Integer |
実行時点の月。 |
|
{day} |
Integer |
実行時点の日。 |
|
{hour} |
Integer |
実行時点の時。 |
|
{minute} |
Integer |
実行時点の分。 |
|
{second} |
Integer |
実行時点の秒。 |
|
{millisecond} |
Integer |
実行時点のミリ秒。 |
|
{<NAME_OF_MVAPP_RESULT>} |
String |
"<NAME_OF_MVAPP_RESULT>" という名前で MVApp 結果 として定義されている指定ツール結果の値です。このフォーマットは、サブディレクトリの名前に含まれるツール結果の値を使ったり、追加したりしたい場合に有効でて。したがって、画像を表さない MVApp 結果 の名前しか指定できません。このフォーマット文字列を使用するときは、それぞれのツール結果の名前ではなく、MVApp 結果 の名前を使用するように留意してください。 |
|
{measId} |
String |
画像結果を生成したジョブに割り当てられている測定 ID、または何も指定されていない場合は「ヌル」。 |
|
{partId} |
String |
画像結果を生成したジョブに割り当てられているパーツ ID、または何も指定されていない場合は「ヌル」。 |
時間指定のプレースホルダーはすべて UTC 時間です。プレースホルダーには、追加のフォーマット指定子、つまり {<placeholder>:<format specifier>} を使用して、正確な名前を構成することもできます。たとえば、「Subdirectory format」を「Date」に設定した場合、以下のようなプレースホルダーとフォーマット指定子が使用されます。{year}-{month:02}-{day:02}.使用可能なフォーマット指定子の詳細については、{fmt}フォーマットライブラリのドキュメンテーションを参照してください。
File name format
このパラメーターは、保存された画像の結果のファイル名のフォーマットを定義します。デフォルト設定値は「Result ID and data index」です。
|
フォーマット |
説明 |
|---|---|
|
Result ID and data index |
ファイル名は結果 ID とデータインデックスで構成されます。 |
|
Time and data index |
ファイル名は、現在の UTC 時刻とデータインデックスで構成されます (たとえば「13-20-00-831--0.jpg」)。 |
|
Time and result name |
ファイル名は、現在の UTC 時刻とそれぞれの MVApp 画像で構成されます (たとえば「13-20-00-831--Heatmap.jpg」)。 |
|
Result ID and result name |
ファイル名は、それぞれの画像の結果の結果 ID と、対応する MVApp 画像結果の名前で構成されます (たとえば「37-Heatmap.jpg」)。 |
|
Custom |
このオプションでは、ファイル名前カスタムフォーマットを使用できます。使用するフォーマットは、パラメーター File name format string で定義でき、これは「Custom」を選択するとすぐに使用可能になります。 |
File name format string
このパラメーターは、「File name format」が「Custom」に設定されている場合にのみ使用可能です。このパラメーターを使用すると、画像の結果のファイル名にカスタムフォーマットを定義することができます。ファイル名を入力フィールドに入力するか、レシピ ID などの特定の値を表すプレースホルダーを使用して名前を定義できます。このようなプレースホルダーは、中括弧で定義する必要があり、そのように定義しなかった場合は通常の文字列として解釈されます。使用可能なプレースホルダーの詳細については、パラメーター Subdirectory format string の説明を参照してください。