Allgemeines

Bildquellen erzeugen die Eingabe-Bilddaten für die Bildverarbeitung in ToolGroup-Items. Viper.NET Bildquellen umfassen neben der Konfiguration der Datenquelle, zum Beispiel einer Kamera, auch die Begleitprozesse des Bildeinzuges. Zum Beispiel:

Bildquellen stellen somit einen Parametersatz für eine Bildaufnahme dar. Mehrere Quellen können dieselbe physikalische Hardware nutzen. Zum Beispiel können mehrere Bildquellen eine Kamera mit unterschiedlichen Belichtungszeiten nutzen. Damit Parametersätze einer Kamera nicht während des Bildeinzuges durch gleichzeitigen Zugriff verändert werden, erfolgt eine Synchronisation von Bildquellen. Mit Referenzbildquellen kann derselbe Parametersatz (beziehungsweise die Bildquelle) mehrfach innerhalb eines Projektes verwendet werden.

Alle Bildquellen besitzen einen Namen zur Identifikation durch den Benutzer. Die Referenzierung innerhalb des Projektes erfolgt anhand einer numerischen ID. Die ID muss nur für Quellen vergeben werden, auf die verwiesen wird. Sie muss dann >0 und eindeutig innerhalb des BV-Projektes sein. Eine ID -1 bedeutet, dass keine ID vergeben wurde. Die Bildquellenorganisation erfolgt in Bildquellenlisten. Daneben besitzen Bildquellen einen Synchronisationsschlüssel der in der Regel automatisch hardware-spezifisch generiert wird und sicherstellt, dass nicht gleichzeitig durch mehrere Bildquellen dieselbe Hardware parametriert wird.

Bildeinzug

Bildquellen wiederholen den internen Ablauf des Bildeinzuges beim Auftreten von Fehlern, solange bis die maximale eingestellte Anzahl von Versuchen Acquisition retry erreicht ist. Erst dann wird gegebenenfalls der Fehler des letzten Versuches nach außen weitergeleitet. Vor jedem Wiederholungsversuch pausiert der Ablauf für die eingestellte Dauer Sleep between retry.

Zum Start des Bildeinzuges wird auf exklusiven Bildquellen-Zugriff mittels Sperre gewartet. Überschreitet die Wartezeit den eingestellten TimeoutEnterSync, so wird ein Bildeinzugsfehler erzeugt. Nach dem Sperren der Bildquelle pausiert der Bildeinzug wiederum solange bis der exklusive Zugriff auf die Lichtkanäle der zugehörigen Lichtsituation mittels Sperre sichergestellt ist. Überschreitet die Wartezeit den eingestellten TimeoutLockLight, so wird ein Bildeinzugsfehler erzeugt. Falls die Bildquelle mit keiner Lichtsituation verknüpft ist, wird der Schritt übersprungen. Nach dem Sperren von Quelle und Lichtsituation erfolgt der Bildeinzug von der entsprechenden Quelle.

Falls die Bildquelle eine Manipulations-Toolgroup besitzt wird diese anschließend mit dem Roh-Bild ausgeführt. Das Ausgabe-Bild der Manipulations-Toolgroup wird dann als finales Bild der Quelle bereitgestellt. Ohne die Toolgroup ist das Ausgabebild gleich dem Rohbild.

Bildquellen-Listen

Die Bildquellenorganisation erfolgt auf verschiedenen Hierarchieebenen in Bildquellen-Listen.

Jede Zeile der Liste zeigt eine Bildquelle. Bildquellen, die sich im Simulationsmodus befinden, werden gelb hinterlegt dargestellt. Fehlerhafte Bildquellen, wenn beispielsweise die Verbindung zur Kamera nicht hergestellt werden konnte, werden rot hinterlegt. Ein Doppelklick auf eine Zeile öffnet den Einstellungen der Bildquelle.

../../_images/imagesource-list.png

Die Spalten zeigen folgende Informationen:

  • Id: Zeigt eine Aktiv-Checkbox, ein Symbol, welches die Art der Bildquelle illustriert sowie die numerische ID (Identifikationsnummer), falls eine solche vergeben wurde. Die Markierung einer Bildquelle als in-/aktiv bestimmt, ob Jobs im Rahmen der vorgelagerten Bildaufnahme einen Bildeinzug auslösen. Die Bilder inaktiver Quellen werden vor der Ausführung auf null gesetzt.

  • Name: Benutzerdefinierter Name zur Identifikation der Bildquelle.

  • Exposure: Zeigt die Belichtungszeit des Sensors (sofern verfügbar).

  • Type: Beschreibt den Typ der Bildquelle und zeigt typabhängig wesentliche Konfigurationsdaten

  • Pass: Anzahl der erfolgreichen Bildaufnahmen.

  • Retry: Anzahl der Bildaufnahmen, die auf Grund eines Fehlers wiederholt wurden.

  • Fail: Anzahl fehlgeschlagener Bildaufnahmen. Wird nur hochgezählt, wenn auch der Retry fehlschlägt.

  • Sync Key: Schlüsselname für die Synchronisation von Zugriffen auf die Bildquelle sicherzustellen. Siehe Synchronisation von Bildquellen.

  • Parent: Beschreibt Die Bildquellenliste, in welcher die Quelle definiert ist. Die Beschreibung erfolgt als zusammengesetzte Zeichenkette in der Form Typ-DisplayName->*Job-Name*->*ToolgroupItem-Name*. Dabei beschreibt der DisplayName des BV-Typen, im Screenshot BV, die globale Ebene. Job- und ToolgroupItem-Name entfallen entsprechend, wenn die Liste auf einer höheren Ebene definiert ist: zum Beispiel bei globalen Quellen wie im Screenshot.

Hinweis

Die Reihenfolge der Quellen in der Liste eines ToolGroup Item ist ausschlaggebend für die Zuordnung gespeicherter Eingabebilder im RunFromDir.

Hinweis

Wenn ein ToolgroupItem das Bild nicht über den Bildeinzug des Job bezieht sondern zum Beispiel mittels GImgSrcItfTool, so sollte die Quelle als inaktiv markiert werden, um unnötige Bildaufnahmen zu vermeiden.

Die Bearbeitung der Liste erfolgt in der Toolbar oder per Kontextmenü:

  1. Add: Fügt eine neue Bildquelle zur Liste hinzu.

  2. Remove: Entfernt die ausgewählte Bildquelle.

  3. Settings: Öffnet die Einstellungen der ausgewählte Bildquelle. Der Dialog kann alternativ durch Doppelklick auf eine Bildquelle geöffnet werden.

  4. Up/Down: Verschiebt die ausgewählte Bildquelle in der Liste nach oben/unten.

  5. Live: Öffnet ein Live-Display für die ausgewählte Bildquelle.

  6. Reset Counter: Setzt die Bildeinzugs-Zähler aller Bildquellen auf 0 zurück (Spalten Pass, Retry, Fail)

  7. Manual sync key: Öffnet einen Dialog zur manuellen Eingabe eines Synchronisationsschlüssels der ausgewählten Bildquelle.

  8. Refresh: Aktualisiert die Listen-Anzeige

  9. Align image: Öffnet einen Dialog zur Kameraeinrichtung anhand eines Referenzbildes. Beispielsweise wird damit nach einer Wartung die ursprüngliche Kameraausrichtung wiederhergestellt.

  10. Global/All: Auswahl, ob alle oder nur globale Bildquellen in der Liste gezeigt werden. Die Auswahl ist nur in der Liste globaler Bildquellen verfügbar.

Tipps für Power-User

  • Shift+Doppelklick: Die Parameter ID, Name und Exposure können direkt in der Liste bearbeitet werden.

  • Drap&Drop Bilddateien: Bilddateien können aus dem Explorer direkt auf die Liste gezogen werden. Für jede Bilddatei wird dann eine Dateibasierte Bildquelle angelegt.

  • Drag&Drop aus anderer Bildquellen-Liste: Legt eine Referenzbildquelle für jede ausgewählte Bildquelle mit einer ID in der Ziel-Liste an.

  • Strg+Drag&Drop aus anderer Bildquelle: Legt eine Kopie jeder ausgewählten Bildquelle in der Ziel-Liste an.

Das Kontextmenü bietet gegenüber der Toolbar zusätzliche Bearbeitungsoptionen:

../../_images/imagesource-list-contextmenu.png
  1. Open Live Window: Öffnet ein Live-Display mit aktivem kontinuierlichem Bildeinzug.

  2. Get One Image: Zieht ein einzelnes Kamerabild ein und öffnet ein Live-Display zur Darstellung.

  3. Open Owning List: Öffnet die Bildquellenliste, welche die gewählte Quelle enthält. Relevant ist dies, wenn in der globalen Liste alle Quellen angezeigt werden. Die Option ist ggf. deaktiviert.

  4. Set Exposuretime - all selected: Legt für alle markierten Bildquellen die gleiche neue Belichtungszeit fest.

  5. Reset ID - all selected: Setzt die Bildquellen-IDs aller markierten Quellen auf -1 zurück.

  6. Auto increment ID - all selected: Weist den markierten Bildquellen neue IDs zu. Die IDs werden fortlaufend ab einer Startnummer erzeugt.

  7. Restart Simulation/BmpImagesources - all selected:

  8. Export all selected (*isdat): Exportiert alle gewählten Bildquellen in eine isdat-Datei. Der Speicherort ist frei wählbar.

  9. Import (.*isdat): Lädt Bildquellen aus einer isdat-Datei und fügt sie der Bildquellenliste hinzu.

  10. Copy: Kopiert die gewählten Quellen.

  11. Paste: Fügt zuvor kopierte Bildquellen in die Liste ein.

Bildquellen-Editor

Der Einstellungsdialog jeder Bildquelle ist in zwei Abschnitte unterteilt:

../../_images/imagesource-editor.png
  1. Allgemeine Bildquellen-Einstellungen

  2. Spezielle Einstellungen abhängig vom Typ der Bildquelle. Die Standard-Bildquellen erklären die Bedeutung der wesentlichen Parameter. Detaillierte Infos können meist auch in der Hersteller-Dokumentation der Hardware oder des SDK nachgeschlagen werden.

../../_images/imagesource-editor-general-settings.png

Die allgemeinen Einstellungen umfassen:

  1. Name: Frei wählbarer Name der Bildquelle

  2. ID: ID der Bildquelle im System: Die vergebene ID muss global eindeutig sein. Wird keine ID benötigt, kann der Standardwert -1 verwendet werden. IDs sind zum Beispiel zur Definition von Bildquellen-Referenzen notwendig.

  3. Einstellungen zu Manipulations-Toolgroup und Kalibrierschlüssel: Das Ausgabebild der Bildquelle kann durch eine Toolgroup modifiziert werden.

  4. Einstellung einer Lichtsituation, die bei der Bildaufnahme aktiv sein soll.

  5. Einstellung von Kommandolisten: Vor und nach der Bildaufnahme können Kommandos ausgeführt werden, beispielsweise zum Ansteuern von Flüssiglinsen oder Zoomobjektiven.

  6. Acquisition retry: Gibt an, wie oft der Bildeinzug im Fehlerfall maximal wiederholt werden soll, vgl. Bildeinzug.

  7. Sleep between retry: Wartezeit, bevor ein Bildeinzug im Fehlerfall wiederholt werden soll, vgl. Bildeinzug des Job.

  8. TimeoutEnterSync: Maximale Wartezeit der Bildquelle bis zum erfolgreichen Sperren der Quelle: Beim Überschreiten der Wartezeit wird der Bildeinzug mit einem Fehler abgebrochen.

  9. TimeoutLockLight: Maximale Wartezeit bis zum Sperren der der Lichtkanäle der Lichtsituation. Beim Überschreiten der Wartezeit wird der Bildeinzug mit einem Fehler abgebrochen.

Lichtsituation der Bildquelle

Zu jeder Bildquelle kann eine eigene Lichtsituation eingestellt oder eine global vordefinierte Lichtsituation zugeordnet werden. Während der Bildaufnahme wird diese Lichtsituation aktiviert.

../../_images/imagesource_lightsituation.png
  1. Lichtsituation auswählen: Zur Auswahl stehen vordefinierte Lumos Lichtsituationen und die Option Benutzerdefiniert. Benutzerdefinierte Lichtsituationen sind nur lokal für diese eine Bildquelle definiert und nicht über die Beleuchtungssteuerung verfügbar.

  2. Lichtsituation aktivieren: Aktiviert bzw. deaktiviert die Lichtsituation.

  3. Liste der vordefinierten Lichtsituationen: Öffnen eines Dialoges zum Bearbeiten ausgewählten Lichtsituationen.

In der Regel wird empfohlen, die Lichtsituationen in jeder Bildquelle lokal benutzerdefiniert einzustellen: die Bildquelle umfasst dann alle Parameter für eine bestimmte Bildaufnahme. Eine Wiederverwendbarkeit ist dann in Form von Referenzbildquellen möglich. Die Definition globaler Lichtsituationen ist nur sinnvoll, falls mehrere verschiedene Bildquellen dieselbe Lichtsituation erfordern.

Hinweis

Falls einer Bildquelle eine Lichtsituation zugeordnet ist, darf das übergeordnete Toolgroup Item keine Lichtsituation erhalten.

Siehe auch

Live-Display

Zu jeder Bildquelle kann über die Bildquellenlisten ein Live-Display geöffnet werden. Das Display zeigt Kamerabilder der jeweiligen Bildquelle, insbesondere für Kameraeinrichtung und Fehlerdiagnose. Im Live-Modus werden die Bilder kontinuierlich neu von der Quelle eingezogen und angezeigt.

../../_images/imagesource-livedisplay.png
  1. Toggle live mode: De-/Aktiviert den Live-Modus mit kontinuierlichem Einzug von Kamerabildern.

  2. Get one image: Zieht ein einzelnes Kamerabild ein und zeigt es an.

  3. Toggle crosshair: Blendet ein Fadenkreuz ein/aus

  4. Toogle statusbar: De-/Aktiviert die Anzeige der Statusleiste unter dem Bild

  5. Save image: Speichert das Kamerabild in eine wählbare Datei.

  6. Zoom in: erhöht die Zoomstufe der Darstellung

  7. Zoom out: verkleinert die Zoomstufe der Darstellung

  8. Toggle Pan-mode: De-/Aktiviert den Pan-Modus des Cursors. Im Pan-Modus kann der Bildausschnitt verschoben werden.

  9. Fit image:Passt die Zoomstufe so an, dass das Bild vollständig in der Ansicht sichtbar ist.

  10. Min aqu-time to stop live: Wartezeit für den Bildeinzug im Live-Modus. Falls der der Bildeinzug länger dauert, so wird der Live-Modus beendet

  11. Align Live Displays: Falls mehrere Live-Displays geöffnet sind, so ordnet dieser Button alle nebeneinander sichtbar an und bringt sie in den Vordergrund.

  12. Description: beschreibt die Bildquelle des Displays: angezeigt werden Bildquelle-ID, Bildquellen-Name und optional Kurzinfos der Quelle

  13. Statusleiste: Zeigt die aktuellen Cursor-Koordinaten im gewählten Koordinatenraum, die aktuelle Zoom-stufe sowie den Grauwert des Bildes an der Cursorposition

Synchronisation von Bildquellen

Eine Kamera kann von mehreren Bildquellen mit verschiedenen Einstellungen genutzt werden. Während der Bildaufnahme darf die Kamera aber nur von einer Bildquelle angesteuert werden. Intern wird in Viper.NET deshalb der Zugriff auf die physikalische Kamera automatisch über den Synchronisations-Schlüssel der Kamera gesperrt. Wenn die Bildquelle einen Schlüssel nicht innerhalb einer einstellbaren Wartezeit sperren kann, weil er bereits von einer anderen Quelle gesperrt ist, wird ein Bildeinzugsfehler erzeugt.

Jede Bildquelle erzeugt einen automatischen eindeutigen Synchronisations-Schlüssel für die zu Grunde liegende Schnittstelle, z.B. über Herstellernamen und Kameraseriennummer. Der Synchronisations-Schlüssel wird in den Bildquellen-Listen angezeigt. Er kann bei Bedarf durch einen manuell definierten Schlüssel überschrieben werden.

../../_images/imagesource-manualsynckey.png
  1. Manual sync key: Öffnet den Dialog zur Sync-Key-Vergabe einer Bildquelle

  2. Auto: Anzeige des automatisch erzeugten Synchronisations-Schlüssel

  3. Manual: Bearbeitung des manuellen Synchronisations-Schlüssels

  4. Erase: Entfernt den manuellen Synchronisationsschlüssel

  5. OK/Cancel: Schließt den Dialog und übernimmt beziehungsweise verwirft Änderungen

Hinweis

Manuelle Synchronisations-Schlüssel können genutzt werden, wenn mehrere Kameras eine gemeinsame Ressource zur Datenübertragung nutzen und so gegenseitig die Kommunikation verzögern oder blockieren, z.B. wenn mehrere Kameras an einem einzigen USB-HUB angeschlossen sind oder mehrere GigE-Kameras über einen Switch angebunden werden müssen.

Warnung

Die Definition eines manuelle Synchronisations-Schlüssels überschreibt den automatischen Schlüssel. Der Benutzer muss dann sicherstellen, dass derselbe Synchronisations-Schlüssels in allen Bildquellen eingestellt wird, welche die selbe physikalische Kamera nutzen. Es wird daher empfohlen, einen Synchronisations-Schlüssels nur in globalen Bildquellen zu definieren solche Quellen dann in Toolgroups in Form von Referenzbildquellen zu nutzen: es werden dann immer die referenzierten Synchronisations-Schlüssels genutzt.