save-images
Dieses Beispiel veranschaulicht die Verwendung der Datencontainer-APIs. Wenn das Plugin ausgeführt wird, werden die in MVApp-Ergebnissen enthaltenen Bilddaten automatisch in einem konfigurierbaren Verzeichnis auf dem Datenträger gespeichert. Das Plugin bietet eine Vielzahl von Konfigurationsoptionen, mit denen das Bildformat, die Struktur des Ausgabeverzeichnisses und die Bedingungen für die Ausgabe eines Bildes angepasst können. Der Quellcode für dieses Plugin steht im Verzeichnis „examples\communicator_plugins\save-images“ im MERLIC-Installationsverzeichnis zur Verfügung.
Verwendung des Plugins
Das Plugin kann zusammen mit dem Beispiel-Plugin „action-sender“ getestet werden. Über das Plugin „action-sender“ können Sie Aktionen senden, und das Plugin „save-images“ speichert die Bildergebnisse auf dem Datenträger.
Beachten Sie, dass die MERLIC-Vision-App, auf die im Rezept verwiesen wird, mindestens ein MVApp-Ergebnis enthalten muss, das ein Bildergebnis darstellt. Wenn kein Bildergebnis zur MVApp-Ergebnisse hinzugefügt wurde, kann kein Bild aus dem Beispiel-Plugin abgerufen werden.
- Öffnen Sie das MERLIC RTE Setup und wählen Sie die Registerkarte „Rezepte“ aus.
- Importieren Sie ein Rezept, das auf eine MERLIC-Vision-App verweist, die mindestens ein MVApp-Ergebnis enthält, das ein Bildergebnis darstellt. Zum Testen können Sie auch das Beispielrezept „verify_chip_number_recipe.mrcp“ verwenden.
- Legen Sie das Rezept als Standardrezept fest. Wenn Sie diesen Schritt überspringen und das Rezept beim Starten der Plugins nicht als Standardrezept festgelegt ist, müssen Sie das Rezept manuell über das „action-sender“-Plugin mit dem Befehl „python.exe comm-send.py PrepareRecipe <Recipe ID>“ laden, d. h. nach Schritt 9.
- Starten Sie MERLIC RTE und den MERLIC Communicator über den Windows-Startmenüeintrag „MERLIC 5 RTE with Frontend + Communicator“. Für die folgenden Schritte ist das MERLIC Frontend nicht erforderlich. Daher können Sie das Frontend-Fenster ggf. schließen. Da dies jedoch die einfachste Möglichkeit ist, um MERLIC RTE und den MERLIC Communicator gleichzeitig zu starten, wird die Verwendung des Startmenüeintrags empfohlen.
- Wechseln Sie im MERLIC RTE Setup zur Registerkarte „Kommunikation“, und fügen Sie das Plugin „save-images“ zur Liste der Plugin-Instanzen auf der linken Seite hinzu.

- Überprüfen Sie die Konfiguration des Plugins. Weitere Informationen zu den verfügbaren Konfigurationsoptionen finden Sie im Abschnitt Plugin konfigurieren.
- Starten Sie die Ausführung des Plugins durch Klicken auf die Schaltfläche „
Plugin starten“ unten im MERLIC RTE Setup oder über das entsprechende Menü in der Liste der Plugin-Instanzen auf der linken Seite. Informationen zu den verschiedenen Möglichkeiten zum Starten und Beenden eines Plugins finden Sie auf der Seite zum Starten und Beenden von Communicator-Plugins im MERLIC-Handbuch.
- Fügen Sie das Plugin „action-sender“ hinzu und starten Sie es. Gehen Sie dazu genauso vor wie beim Plugin „save-images“.
- Öffnen Sie eine Eingabeaufforderung und wechseln Sie zum Verzeichnis des Plugins „action-sender“, d. h. zum Verzeichnis „examples\communicator_plugins\action-sender“ im MERLIC-Installationsverzeichnis.
- Starten Sie mit dem Python-Skript „comm-send.py“ (siehe unten) eine Einzelausführung. Die MVApp wird ein Mal ausgeführt, und die Bildergebnisse werden abgerufen sowie im definierten Verzeichnis gespeichert. Sie können auch „python.exe comm-send.py --help“ eingeben, um Informationen zur Syntax des Skripts anzuzeigen.Kopieren
python.exe comm-send.py StartSingleJob - Überprüfen Sie die gespeicherten Bilder im Verzeichnis, das in der Konfiguration des Plugins „save-images“ definiert wurde.
Plugin konfigurieren
Das Beispiel-Plugin kann auf der MERLIC RTE Setup-Registerkarte „Kommunikation“ konfiguriert werden. Öffnen Sie dazu einfach das MERLIC RTE Setup und fügen Sie das Plugin hinzu, um die verfügbaren Konfigurationsoptionen für das Plugin zu sehen. Beachten Sie, dass Sie zuerst den MERLIC Communicator starten müssen, um eine Konfiguration zu ermöglichen.
Die Parameter des ausgewählten Plugins werden auf der rechten Seite der Registerkarte „Kommunikation“ angezeigt. Im Folgenden werden lediglich die Parameter im Abschnitt „User parameters“ beschrieben, da nur diese konfiguriert werden können.
Image Settings
Image format
|
Format |
Beschreibung |
|---|---|
|
PNG |
Die Bilder werden als PNG-Bilder gespeichert. Bei Auswahl dieses Formats kann zusätzlich der Parameter PNG compression konfiguriert werden. |
|
JPEG |
Die Bilder werden als JPEG-Bilder gespeichert. Bei Auswahl dieses Formats werden die folgenden zusätzlichen Parameter verfügbar: |
|
HALCON Serialized Item |
Die Bilder werden als serialisiertes HALCON-Element, d. h. als .hse-Datei, gespeichert. Hierbei handelt es sich um ein proprietäres Format, das nur von Benutzern verwendet werden kann, die auch MVTec HALCON verwenden. Wenn Sie Dateien mit diesem Format in HDevelop lesen möchten, können Sie den folgenden Code-Ausschnitt verwenden: open_file('<file path to .hse>', 'input_binary', FileHandle) fread_serialized_item(FileHandle, SerializedItemHandle) deserialize_object(Object, SerializedItemHandle) |
Im Allgemeinen können alle Bilder der Typen „byte“, „int1“, „uint2“, „int2“, „int4“, „int8“ und „real“ als MVApp-Ergebnis exportiert und in die verfügbaren Bildformat konvertiert werden. Bilder des Typs „real“ sind jedoch eine Ausnahme, da sie nur in das Format „HALCON Serialized Item“ konvertiert werden können. Weitere Informationen zu den Bildformaten und der jeweiligen Pixeltransformation finden Sie im Abschnitt Bildergebnis auf der Seite Communicator-Plugins konfigurieren.
Use progressive JPEG
Dieser Parameter ist nur verfügbar, wenn der Parameter „Image format“ auf „JPEG“ festgelegt ist.
JPEG quality
Dieser Parameter ist nur verfügbar, wenn der Parameter „Image format“ auf „JPEG“ festgelegt ist. Er definiert die Komprimierungsqualität für JPEG in Prozent. Die Standardeinstellung ist 50 %.
PNG compression
Dieser Parameter ist nur verfügbar, wenn der Parameter „Image format“ auf „PNG“ festgelegt ist. Er definiert den Komprimierungsgrad für PNG. Er kann auf einen Wert zwischen 0 und 9 festgelegt werden. Die Standardeinstellung ist 6.
Image zoom mode
Dieser Parameter bietet die Möglichkeit, die Größe der Ergebnisbilder zu ändern. Die verfügbaren Optionen sind in der folgenden Tabelle aufgelistet. Abhängig vom ausgewählten Modus können weitere Parameter konfiguriert werden. Der Parameter ist standardmäßig auf „None“ festgelegt.
|
Modus |
Beschreibung |
|---|---|
|
None |
Die Bilder werden in der Originalgröße ohne Zoomen gespeichert. |
|
Fixed width and height |
Die Bilder werden auf die in den Parametern Image width und Image height angegebene Größe skaliert. |
|
Zoom factor |
Die Größe der Bilder wird um den im Parameter Image zoom factor angegebenen Faktor geändert und entsprechend in beiden Dimensionen angepasst. |
Image width
Dieser Parameter ist nur verfügbar, wenn der Parameter „Image zoom mode“ auf „Fixed width and height“ festgelegt ist. Er definiert die Breite der Ergebnisbilder.
Image height
Dieser Parameter ist nur verfügbar, wenn der Parameter „Image zoom mode“ auf „Fixed width and height“ festgelegt ist. Er definiert die Höhe der Ergebnisbilder.
Image zoom factor
Dieser Parameter ist nur verfügbar, wenn der Parameter „Image zoom mode“ auf „Zoom factor“ festgelegt ist. Er definiert den Prozentwert, auf dessen Basis die Größe der Bilder in beiden Dimensionen geändert wird. Sie können auch einen Wert größer als 100 % angeben. Der Parameter ist standardmäßig auf 100 % festgelegt, das heißt, die ursprüngliche Bildgröße wird beibehalten.
Conditional Output
Output condition
Dieser Parameter definiert, ob die Bildergebnisse abhängig vom Wert eines bestimmten MVApp-Ergebnisses abgerufen werden. Die Standardeinstellung ist „Always“, sodass die Bilder unabhängig vom Wert eines MVApp-Ergebnisses gespeichert werden. Sie können diese Option für verschiedene Anwendungsfälle verwenden, z. B. für Qualitätskontrollen, wenn nur die Bilder von Iterationen gespeichert werden sollen, in denen eine schlechte Qualität festgestellt wurde.
|
Bedingung |
Beschreibung |
|---|---|
|
Always |
Die Bildergebnisse werden unabhängig vom Wert eines MVApp-Ergebnisses immer gespeichert. |
|
On result true |
Die Bildergebnisse werden nur gespeichert, wenn der Wert eines bestimmten MVApp-Ergebnisses „true“ ist. Der Name des MVApp-Ergebnisses, dessen Wert überprüft werden soll, kann im Parameter Result name definiert werden. Dieser wird verfügbar, sobald der Parameter „Output condition“ auf „On result true“ festgelegt wird. Je nach Typ des Ergebniswerts wird die Ausgabebedingung wie folgt auf „true“ gesetzt:
|
|
On result false |
Die Bildergebnisse werden nur gespeichert, wenn der Wert eines bestimmten MVApp-Ergebnisses „false“ ist. Der Name des MVApp-Ergebnisses, dessen Wert überprüft werden soll, kann im Parameter Result name definiert werden. Dieser wird verfügbar, sobald der Parameter „Output condition“ auf „On result false“ festgelegt wird. Je nach Typ des Ergebniswerts wird die Ausgabebedingung wie folgt auf „false“ gesetzt:
|
Result name
Dieser Parameter ist nur verfügbar, wenn der Parameter „Output condition“ auf „On result true“ oder „On result false“ festgelegt ist. Er ermöglicht die Eingabe des Namens des MVApp-Ergebnisses, dessen Wert überprüft werden soll. Wenn der Wert zur Bedingung der Parametereinstellung in „Output condition“ passt, werden die Bilder abgerufen und gespeichert.
Output
Image result filter mode
Dieser Parameter bietet die Möglichkeit, einen Filter zu aktivieren, der bestimmt, welche Bildergebnisse abgerufen werden. Zur Auswahl stehen folgende Optionen. Die Standardeinstellung ist „None“.
|
Modus |
Beschreibung |
|---|---|
|
None |
Es wird kein Filter angewendet und alle Ergebnisbilder werden abgerufen. |
|
Regular expression |
Es werden nur Ergebnisbilder abgerufen, deren Name dem im Parameter Result name filter regex angegebenen regulären Ausdruck entspricht. |
Result name filter regex
Base directory
Dieser Parameter definiert das Verzeichnis, in dem die Bildergebnisse gespeichert werden. Sie können das Verzeichnis im Dateisystem über die Schaltfläche auswählen (auf lokalen Systemen) oder den Pfad direkt in das Textfeld eingeben. Das Verzeichnis ist standardmäßig „%LOCALAPPDATA%/Temp“ auf Windows-Systemen bzw. „/tmp“ auf Linux-Systemen. Sie können die Bildergebnisse auch in einem Unterverzeichnis mit einem bestimmten Format speichern. Das Format kann im Parameter Subdirectory format angegeben werden.
Subdirectory format
Dieser Parameter definiert das Format des Unterverzeichnisses, in dem Bildergebnisse gespeichert werden. Die Standardeinstellung ist „Recipe ID“.
|
Format |
Beschreibung |
|---|---|
|
None |
Es wird kein Unterverzeichnis erstellt. Die Bildergebnisse werden direkt am Speicherort gespeichert, der im Parameter „Base directory“ definiert wurde. |
|
Recipe ID |
Das Unterverzeichnis wird nach der ID des derzeit geladenen Rezepts benannt (das Rezept, das auf die ausgeführte MVApp verweist). |
|
Date |
Das Unterverzeichnis wird nach dem aktuellen Datum der Ausführung benannt. Das Datum wird wie folgt formatiert: {year}-{month:02}-{day:02}, z. B. „2022-07-18“. |
|
Date and recipe ID |
Das Unterverzeichnis wird nach dem aktuellen Datum und der ID des derzeit geladenen Rezepts benannt. Der resultierende Name des Verzeichnisses wird wie folgt formatiert: {year}-{month:02}-{day:02}--{recipeId}, z. B. „2022-07-18--6“. |
|
Custom |
Diese Option ermöglicht die Verwendung eines benutzerdefinierten Formats für den Verzeichnisnamen. Das gewünschte Format kann im Parameter Subdirectory format string definiert werden, der bei Auswahl von „Custom“ verfügbar wird. |
Subdirectory format string
Dieser Parameter ist nur verfügbar, wenn der Parameter „Subdirectory format“ auf „Custom“ festgelegt ist. Er bietet die Möglichkeit, ein benutzerdefiniertes Format für den Namen des Unterverzeichnisses zu definieren, in dem die Bildergebnisse gespeichert werden. Sie können den gewünschten Namen des Unterverzeichnisses in das Eingabefeld eingeben oder den Namen mit Platzhaltern definieren, die stellvertretend für einen bestimmten Wert stehen, z. B. die Rezept-ID. Ein solcher Platzhalter muss in geschweiften Klammern stehen, da er sonst als reguläre Zeichenfolge interpretiert wird.
Die folgende Tabelle veranschaulicht die verfügbaren Platzhalter.
|
Platzhalter für Formatzeichenfolge |
Datenformat |
Beschreibung |
|---|---|---|
|
{recipeId} |
String |
Die ID des derzeit geladenen Rezepts |
|
{resultId} |
Integer |
Die ID des abgerufenen Bildergebnisses |
|
{resultName} |
String |
Der Name des jeweiligen MVApp-Bildergebnisses, d. h. der Name, der beim Hinzufügen des Bildergebnisses zu den MVApp-Ergebnissen im MERLIC Creator definiert wurde. Ist mehr als ein MVApp-Bildergebnis vorhanden, werden mehrere Unterverzeichnisse erstellt: jeweils ein Verzeichnis für jedes MVApp-Bildergebnis mit dem betreffenden Namen. |
|
{dataIndex} |
Integer |
Der Index des MVApp-Bildergebnisses. Dieser entspricht der Positionsnummer, die dem MVApp-Bildergebnis im Panel „MVApp-Parameter und -Ergebnisse“ des MERLIC Creators zugewiesen ist. |
|
{year} |
Integer |
Das aktuelle Jahr zum Zeitpunkt der Ausführung |
|
{month} |
Integer |
Der aktuelle Monat zum Zeitpunkt der Ausführung |
|
{day} |
Integer |
Der aktuelle Tag zum Zeitpunkt der Ausführung |
|
{hour} |
Integer |
Die aktuelle Stunde zum Zeitpunkt der Ausführung |
|
{minute} |
Integer |
Die aktuelle Minute zum Zeitpunkt der Ausführung |
|
{second} |
Integer |
Die aktuelle Sekunde zum Zeitpunkt der Ausführung |
|
{millisecond} |
Integer |
Die aktuelle Millisekunde zum Zeitpunkt der Ausführung |
|
{<NAME_DES_MVAPP-ERGEBNISSES>} |
String |
Der Wert des angegebenen Toolergebnisses, das als MVApp-Ergebnis mit dem Namen „<NAME_DES_MVAPP-ERGEBNISSES>“ definiert wurde. Dieses Format ist nützlich, wenn Sie den Wert eines Toolergebnisses im Namen des Unterverzeichnisses verwenden oder hinzufügen möchten. Sie können daher nur die Namen von MVApp-Ergebnissen verwenden, die kein Bild darstellen. Achten Sie darauf, dass Sie den Namen des MVApp-Ergebnisses und nicht den Namen des betreffenden Toolergebnisses verwenden, wenn Sie diese Formatzeichenfolge verwenden. |
|
{measId} |
String |
Die dem Job, der das Bildergebnis erzeugt hat, zugewiesene Mess-ID, bzw. „null“, wenn keine angegeben wurde. |
|
{partId} |
String |
Die dem Job, der das Bildergebnis erzeugt hat, zugewiesene Teile-ID, bzw. „null“, wenn keine angegeben wurde. |
Alle zeitbezogenen Platzhalter verwenden die UTC-Zeit. Darüber hinaus können Sie zusätzliche Formatangaben in der Form {<Platzhalter>:<Formatangabe>} für die Platzhalter verwenden, um den Namen genauer zu konfigurieren. Wenn „Subdirectory format“ auf „Date“ festgelegt ist, werden beispielsweise der folgende Platzhalter und die folgende Formatangabe verwendet: {year}-{month:02}-{day:02}. Ausführlichere Informationen zu den verfügbaren Formatangaben finden Sie in der Dokumentation der {fmt}-Formatierungsbibliothek.
File name format
Dieser Parameter definiert das Format des Dateinamens für die gespeicherten Bildergebnisse. Die Standardeinstellung ist „Result ID and data index“.
|
Format |
Beschreibung |
|---|---|
|
Result ID and data index |
Die Dateinamen bestehen aus der Ergebnis-ID und dem Datenindex. |
|
Time and data index |
Die Dateinamen bestehen aus der aktuellen UTC-Zeit und dem Datenindex, z. B. „13-20-00-831--0.jpg“. |
|
Time and result name |
Die Dateinamen bestehen aus der aktuellen UTC-Zeit und dem Ergebnisnamen des jeweiligen MVApp-Bildergebnisses, z. B. „13-20-00-831--Heatmap.jpg“. |
|
Result ID and result name |
Die Dateinamen bestehen aus der Ergebnis-ID des jeweiligen Bildergebnisses und dem Namen des entsprechenden MVApp-Bildergebnisses, z. B. „37-Heatmap.jpg“. |
|
Custom |
Diese Option ermöglicht die Verwendung eines benutzerdefinierten Formats für den Dateinamen. Das gewünschte Format kann im Parameter File name format string definiert werden, der bei Auswahl von „Custom“ verfügbar wird. |
File name format string
Dieser Parameter ist nur verfügbar, wenn der Parameter „File name format“ auf „Custom“ festgelegt ist. Er bietet die Möglichkeit, ein benutzerdefiniertes Format für die Dateinamen der Bildergebnisse zu definieren. Sie können den gewünschten Dateinamen in das Eingabefeld eingeben oder den Namen mit Platzhaltern definieren, die stellvertretend für einen bestimmten Wert stehen, z. B. die Rezept-ID. Ein solcher Platzhalter muss in geschweiften Klammern stehen, da er sonst als reguläre Zeichenfolge interpretiert wird. Weitere Informationen zu den verfügbaren Platzhaltern finden Sie in der Beschreibung des Parameters Subdirectory format string.