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\communication_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.

  1. Öffnen Sie das MERLIC RTE Setup und wählen Sie die Registerkarte „Rezepte“ aus.
  2. 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.
  3. 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 <Rezept-ID>“ laden, d. h. nach Schritt 9.
  4. Wechseln Sie zur Registerkarte „Kommunikation“ und starten Sie MERLIC RTE. Wenn MERLIC RTE ausgeführt wird, ist der Konfigurationsdienst für die Plugins verfügbar.
  5. Fügen Sie das Plugin save-images zur Liste der Plugin-Instanzen auf der linken Seite hinzu.

  6. Überprüfen Sie die Konfiguration des Plugins. Weitere Informationen finden Sie im Abschnitt Plugin konfigurieren.
  7. 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. Ausführlichere Informationen zu den verschiedenen Möglichkeiten zum Starten und Beenden eines Plugins finden Sie unter Kommunikations-Plugins starten und beenden.
  8. Fügen Sie das Plugin „action-sender“ hinzu und starten Sie es. Gehen Sie dazu genauso vor wie beim Plugin „save-images“.
  9. Öffnen Sie eine Eingabeaufforderung und wechseln Sie zum Verzeichnis des Plugins „action-sender“, d. h. zum Verzeichnis „examples\communication_plugins\action-sender“ im MERLIC-Installationsverzeichnis.
  10. Starten Sie mit dem Python-Skript „comm-send.py“ eine Einzelausführung (siehe unten). 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
  11. Ü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 MERLIC RTE 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

Dieser Parameter definiert das Format, in dem Ergebnisbilder der MVApp gespeichert werden. Das ausgewählte Format wird blau hervorgehoben. Um ein anderes auszuwählen, klicken Sie auf das gewünschte Bildformat. Abhängig vom ausgewählten Bildformat können weitere Parameter konfiguriert werden. Weitere Informationen zu den verfügbaren Bildformaten finden Sie in der folgenden Tabelle. Die Standardeinstellung ist „JPEG“.

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:

Kopieren
open_file('<file path to .hse>', 'input_binary', FileHandle)
fread_serialized_item(FileHandle, SerializedItemHandle)
deserialize_object(Object, SerializedItemHandle)

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 unter Kommunikations-Plugins konfigurieren.

Use progressive JPEG

Dieser Parameter ist nur verfügbar, wenn der Parameter „Image format“ auf „JPEG“ festgelegt ist. Er legt fest, ob die Bilder als progressives JPEG gespeichert werden. Der Parameter ist standardmäßig nicht aktiviert.

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. Diese Parameter werden bei Auswahl dieser Option verfügbar. Die angegebene Größe wird unabhängig von der jeweiligen Originalgröße auf alle Ergebnisbilder angewendet, und das Seitenverhältnis wird nicht beibehalten.

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. Dieser Parameter wird bei Auswahl dieser Option verfügbar. Bei dieser Option wird das Seitenverhältnis beibehalten, d. h. die Größe wird relativ zur Originalgröße der Bilder geändert.

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. Hierdurch werden alle Bilder mit der in „Image width“ und „Image height“ angegebenen Größe gespeichert. Die angegebene Größe wird unabhängig von der jeweiligen Originalgröße auf alle Bilder angewendet, und das Seitenverhältnis wird nicht beibehalten. Die Standardeinstellung ist 512 px.

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. Hierdurch werden alle Bilder mit der in „Image width“ und „Image height“ angegebenen Größe gespeichert. Die angegebene Größe wird unabhängig von der jeweiligen Originalgröße auf alle Bilder angewendet, und das Seitenverhältnis wird nicht beibehalten. Die Standardeinstellung ist 512 px.

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:

  • Boolesche Ergebnisse: Wenn der Wert 1 ist, wird die Ausgabebedingung auf „true“ festgelegt und das Bild wird gespeichert.
  • Numerische Werte: Wenn der Wert nicht 0 ist, wird die Ausgabebedingung auf „true“ festgelegt und das Bild wird gespeichert.
  • Zeichenfolgewerte: Wenn die Zeichenfolge nicht leer ist, wird die Ausgabebedingung auf „true“ festgelegt und das Bild wird gespeichert.

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:

  • Boolesche Ergebnisse: Wenn der Wert 0 ist, wird die Ausgabebedingung auf „false“ festgelegt und das Bild wird gespeichert.
  • Numerische Werte: Wenn der Wert 0 ist, wird die Ausgabebedingung auf „false“ festgelegt und das Bild wird gespeichert.
  • Zeichenfolgewerte: Wenn die Zeichenfolge leer ist, wird die Ausgabebedingung auf „false“ festgelegt und das Bild wird gespeichert.
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

Dieser Parameter bietet die Möglichkeit, einen regulären Ausdruck zum Filtern der Namen von Ergebnisbildern anzugeben, die gespeichert werden sollen. Er ist nur verfügbar, wenn der Filtermodus im Parameter „Image result filter mode“ auf „Regular expression“ festgelegt ist. Es werden dann nur Ergebnisbilder gespeichert, deren Name dem regulären Ausdruck entspricht. Die Standardeinstellung ist „.*“ (jeder Name entspricht dem regulären Ausdruck).

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.