Bildquelle

Liste der Operatoren ↓

Das Konzept der Bildquellen ermöglicht es dem HALCON-Benutzer, den Einsatz von Kameras zur Aufnahme von Bildern für ihre Bildverarbeitungsaufgabe zu konfigurieren und zu verwalten. Es ersetzt das Framegrabber-Operator-Set (siehe Bild / Bildeinzug) als HALCON's empfohlene Methode zur Ansteuerung von Kameras.

Dieses Kapitel gibt eine Einführung zum Konzept und zur Nutzung von Bildquellen. In der MVTec Interfaces Reference Documentation sind die einzelnen MVTec Bildquellen-Plugins dokumentiert.

Bildquellenkonzept

Das bildgebende Gerät und alle weiteren Komponenten, die am Prozess des Bildeinzug beteiligt sind, können mit einem Bildquellen-Handle gesteuert werden. Es wurde entwickelt, um die sogenannten Module der Bildquelle zu kapseln:

Diese Module sind in einer hierarchischen Eltern-Kind-Konfiguration strukturiert, wobei jedes Modul als übergeordnetes Modul für das nachfolgende fungiert. Das Modulkonzept der Bildquellen ist nach dem GenICam GenTL-Standard modelliert.

Um Bilder von einem Bildquellen-Handle zu erfassen, wird ein Bildquellen-Plugin verwendet, um mit dem bildgebenden Gerät über ein Interface zu kommunizieren. Das bildgebende Gerät ermöglicht den Zugriff auf einen oder mehrere Bild-Streams. Die über diesen Stream übertragenen Bilder gelangen schließlich in mehrere Puffer im Speicher der Host-Anwendung. Die Komplexität wird dem Benutzer in den meisten Anwendungen verborgen. Standardmäßig versucht jedes Bildquellen-Handle eine vollständige Kette von Bildquellenmodulen zu verbinden: Plugin > Interface > Gerät > Stream.

image/svg+xml 'plugins' 'interfaces' 'devices' 'streams' P1 S1 D1 I1 P2 I2 I3 D3 D2 S3 S4 S2 HALCON
Schematische Darstellung der Bildquellenmodule.

In bestimmten Anwendungen kann es jedoch erforderlich sein, sich mit einem spezifischen Modul zu verbinden. Beispielsweise könnte es gewünscht sein, die Parameter eines Framegrabbers zu konfigurieren, bevor eine Kamera daran angeschlossen wird. Bildquellen-Handles können so konfiguriert werden, dass sie sich nur mit dem übergeordneten Bildquellen-Plugin und dem entsprechenden GenTL-Interface-Modul verbinden. Das Interface-Modul erlaubt dann die Konfiguration des Framegrabbers ohne Verbindung zu einem untergeordneten Modul. Ebenso können Bildquellen-Handles verwendet werden, um sich mit jedem anderen verfügbaren Modul zu verbinden oder ein gewünschtes Modul auszuwählen, falls mehrere Optionen verfügbar sind (z. B. ob Stream oder des Geräts gewählt werden soll).

Zustände des Bildquellen-Handles

Ein Bildquellen-Handle kann sich in verschiedenen Zuständen befinden. In jedem Zustand steht eine anderes Operatorenset zur Verfügung. Die Bildquellen-Operatoren können verwendet werden, um solche Zustandsänderungen auszulösen.

image/svg+xml disconnect_image_source connect_image_source stop_image_source snap_from_image_source start_image_source fetch_from_image_source create_image_source query_image_sources
Schematische Darstellung der möglichen Zustände eines Bildquellen-Handles. Das Schema zeigt, welche Bildquellen-Operatoren eine Zustandsänderung des Bildquellen-Handles zwischen initialisiert (grau), verbunden (grün) und streamt (rot) bewirken.

Die drei möglichen Zustände sind:

Initialisiert

Das Bildquellen-Handle sollte ausreichend Informationen enthalten, um zu spezifizieren, welches Gerät mit connect_image_sourceconnect_image_sourceConnectImageSourceConnectImageSourceconnect_image_source verbunden werden soll. Die Operatoren set_image_source_paramset_image_source_paramSetImageSourceParamSetImageSourceParamset_image_source_param und get_image_source_paramget_image_source_paramGetImageSourceParamGetImageSourceParamget_image_source_param gewähren Zugriff auf die Parameter der Gruppe 'image_source'"image_source""image_source""image_source""image_source". Diese existieren immer, unabhängig vom Verbindungsstatus.

Verbunden

Der Operator snap_from_image_sourcesnap_from_image_sourceSnapFromImageSourceSnapFromImageSourcesnap_from_image_source ist nur in diesem Zustand verfügbar. snap_from_image_sourcesnap_from_image_sourceSnapFromImageSourceSnapFromImageSourcesnap_from_image_source versetzt das Bildquellen-Handle kurzzeitig in den Streaming-Zustand, setzt es aber zurück, sobald ein Bild angekommen ist.

Die Operatoren set_image_source_paramset_image_source_paramSetImageSourceParamSetImageSourceParamset_image_source_param und get_image_source_paramget_image_source_paramGetImageSourceParamGetImageSourceParamget_image_source_param gewähren Zugriff auf die Parameter aller Module, einschließlich des Gerätemoduls.

Streamt

In diesem Zustand kann das bildgebende Gerät kontinuierlich Bilddaten im Hintergrund übertragen. Die Bilder gelangen in eine interne Pufferwarteschlange, aus der sie mit fetch_from_image_sourcefetch_from_image_sourceFetchFromImageSourceFetchFromImageSourcefetch_from_image_source abgerufen werden können.

Parametergruppen und Ihre Beziehung zu den Modulen

Jedes Modul kann mit get_image_source_paramget_image_source_paramGetImageSourceParamGetImageSourceParamget_image_source_param konfiguriert werden. Um anzugeben, welches Modul der Bildquelle konfiguriert werden soll, sind die Parameter in Gruppen unterteilt. So sind die gruppierten Parameter mit den GenTL-Modulen verknüpft. Die Dokumentation von Plugins, die nicht von MVTec zur Verfügung gestellt werden gruppiert ihre Parameter möglicherweise entsprechend der GenTL-Modulnamen.

Parametergruppe GenTL Modulname Anmerkungen
'image_source'"image_source""image_source""image_source""image_source" - Die Parametergruppe 'image_source'"image_source""image_source""image_source""image_source" konfiguriert die Modulkette Plugin > Interface > Gerät > Stream und ist den GenTL-Modulen somit übergeordnet. Diese Parameter werden von MVTec implementiert und existieren jederzeit, unabhängig vom Verbindungsstatus. Sie sind in get_image_source_paramget_image_source_paramGetImageSourceParamGetImageSourceParamget_image_source_param beschrieben.
'plugin'"plugin""plugin""plugin""plugin" System Parameter für die globale Konfiguration im geladenen Plugin. Die Parameter in dieser Gruppe hängen davon ab, welches Plugin geladen ist, und werden vom Anbieter des geladenen Plugins implementiert. Plugins können von MVTec (siehe MVTec Interfaces Reference Documentation ) oder anderen Herstellern bereitgestellt werden.
'interface'"interface""interface""interface""interface" Interface Parameter zur Konfiguration der Hardwarekomponente, die mit den Geräten interagiert. Die Parameter in dieser Gruppe hängen davon ab, welches Plugin geladen ist, und werden vom Anbieter des geladenen Plugins implementiert. Plugins können von MVTec (siehe MVTec Interfaces Reference Documentation ) oder anderen Herstellern bereitgestellt werden.
'local_device'"local_device""local_device""local_device""local_device" Device Software-Abstraktion für das Hardware-Gerät. Diese Gruppe existiert aus technischen Gründen des GenTL-Standards und kann in den meisten Fällen ignoriert werden. Die Parameter in dieser Gruppe hängen davon ab, welches Plugin geladen ist, und werden vom Anbieter des geladenen Plugins implementiert. Plugins können von MVTec (siehe MVTec Interfaces Reference Documentation ) oder anderen Herstellern bereitgestellt werden.
'device'"device""device""device""device" Remote Device Parameter zur Konfiguration der Bildverarbeitungs-Hardware (z. B. industrielle Kameras, Sensoren, Geräte). Diese Parameter dienen zur Einstellung der wichtigsten Eigenschaften des Bildeinzugs wie Belichtungszeit, Gain, Breite, Höhe und Auslösemodus. Die Parameter in dieser Gruppe hängen davon ab, welches Gerät angeschlossen ist, und werden vom Hersteller des angeschlossenen Geräts implementiert.
'stream'"stream""stream""stream""stream" Stream Parameter zur Konfiguration der Details der Bildübertragung auf der Empfangsseite. Die Parameter in dieser Gruppe hängen davon ab, welches Plugin geladen ist, und werden vom Anbieter des geladenen Plugins implementiert. Plugins können von MVTec (siehe MVTec Interfaces Reference Documentation ) oder anderen Herstellern bereitgestellt werden.

Migrationsleitfaden

Hier ausklappen für Informationen zur Migration von Framegrabber- zu Bildquellen-Operatoren.

Die folgende Tabelle bietet einen Vergleich zwischen den alten Framegrabber-Operatoren und den neuen Bildquellen-Operatoren. Beim Umstellen einer Anwendung auf die neueren Bildquellen sollte jeder Framegrabber-Operator durch den entsprechenden Bildquellen-Operator ersetzt werden.

Operator Anmerkungen zur Migration
alt: info_framegrabberinfo_framegrabberInfoFramegrabberInfoFramegrabberinfo_framegrabber
neu: query_image_sourcesquery_image_sourcesQueryImageSourcesQueryImageSourcesquery_image_sources
info_framegrabberinfo_framegrabberInfoFramegrabberInfoFramegrabberinfo_framegrabber gibt standardmäßig einen String für jedes gefundene Gerät zurück, der für open_framegrabberopen_framegrabberOpenFramegrabberOpenFramegrabberopen_framegrabber verwendet werden kann. query_image_sourcesquery_image_sourcesQueryImageSourcesQueryImageSourcesquery_image_sources gibt standardmäßig ein Bildquellen-Handle für jedes Gerät zurück, das für connect_image_sourceconnect_image_sourceConnectImageSourceConnectImageSourceconnect_image_source verwendet werden kann.
alt: Kein direktes Äquivalent
neu: create_image_sourcecreate_image_sourceCreateImageSourceCreateImageSourcecreate_image_source
create_image_sourcecreate_image_sourceCreateImageSourceCreateImageSourcecreate_image_source erstellt ein Bildquellen-Handle in unverbundenen Zustand. Dies ist mit Framegrabber-Operatoren nicht möglich.
alt: open_framegrabberopen_framegrabberOpenFramegrabberOpenFramegrabberopen_framegrabber
neu: connect_image_sourceconnect_image_sourceConnectImageSourceConnectImageSourceconnect_image_source
open_framegrabberopen_framegrabberOpenFramegrabberOpenFramegrabberopen_framegrabber erstellt ein Framegrabber-Handle und verbindet sich gleichzeitig mit dem Bildeinzugsgerät. Bildquellen-Handles trennen diesen Vorgang in zwei Operationen auf: create_image_sourcecreate_image_sourceCreateImageSourceCreateImageSourcecreate_image_source, gefolgt von connect_image_sourceconnect_image_sourceConnectImageSourceConnectImageSourceconnect_image_source. Dadurch kann connect_image_sourceconnect_image_sourceConnectImageSourceConnectImageSourceconnect_image_source sowohl mit Handles von create_image_sourcecreate_image_sourceCreateImageSourceCreateImageSourcecreate_image_source als auch von query_image_sourcesquery_image_sourcesQueryImageSourcesQueryImageSourcesquery_image_sources verwendet werden.
alt: close_framegrabberclose_framegrabberCloseFramegrabberCloseFramegrabberclose_framegrabber
neu: disconnect_image_sourcedisconnect_image_sourceDisconnectImageSourceDisconnectImageSourcedisconnect_image_source
close_framegrabberclose_framegrabberCloseFramegrabberCloseFramegrabberclose_framegrabber löscht gleichzeitig das Framegrabber-Handle. Es kann nur durch open_framegrabberopen_framegrabberOpenFramegrabberOpenFramegrabberopen_framegrabber neu erstellt werden. disconnect_image_sourcedisconnect_image_sourceDisconnectImageSourceDisconnectImageSourcedisconnect_image_source lässt das Bildquellen-Handle intakt. Er kann mit connect_image_sourceconnect_image_sourceConnectImageSourceConnectImageSourceconnect_image_source erneut verbunden werden.
alt: get_framegrabber_paramget_framegrabber_paramGetFramegrabberParamGetFramegrabberParamget_framegrabber_param
neu: get_image_source_paramget_image_source_paramGetImageSourceParamGetImageSourceParamget_image_source_param
Funktioniert ähnlich, aber die Parametergruppe wird nun mit GenParamGenParamGenParamgenParamgen_param 'group'"group""group""group""group" anstelle des Präfixes [<GenTL module>] angegeben. Beispiel:
alt: get_framegrabber_param(AcqHandle, '[Stream]StreamBufferHandlingMode', Value)get_framegrabber_param(AcqHandle, "[Stream]StreamBufferHandlingMode", Value)GetFramegrabberParam(AcqHandle, "[Stream]StreamBufferHandlingMode", Value)GetFramegrabberParam(AcqHandle, "[Stream]StreamBufferHandlingMode", Value)get_framegrabber_param(AcqHandle, "[Stream]StreamBufferHandlingMode", Value)
neu: get_image_source_param(ImageSourceHandle, 'StreamBufferHandlingMode', 'group', 'stream', Value)get_image_source_param(ImageSourceHandle, "StreamBufferHandlingMode", "group", "stream", Value)GetImageSourceParam(ImageSourceHandle, "StreamBufferHandlingMode", "group", "stream", Value)GetImageSourceParam(ImageSourceHandle, "StreamBufferHandlingMode", "group", "stream", Value)get_image_source_param(ImageSourceHandle, "StreamBufferHandlingMode", "group", "stream", Value)
alt: set_framegrabber_paramset_framegrabber_paramSetFramegrabberParamSetFramegrabberParamset_framegrabber_param
neu: set_image_source_paramset_image_source_paramSetImageSourceParamSetImageSourceParamset_image_source_param
Funktioniert ähnlich. Die Beziehung ist analog zu get_framegrabber_paramget_framegrabber_paramGetFramegrabberParamGetFramegrabberParamget_framegrabber_param und get_image_source_paramget_image_source_paramGetImageSourceParamGetImageSourceParamget_image_source_param (siehe oben).
alt: Kein direktes Äquivalent
neu: control_image_sourcecontrol_image_sourceControlImageSourceControlImageSourcecontrol_image_source
Framegrabber-Handles stellen Parameter mit dem Präfix 'do_' bereit. Diese Art von Parametern wird durch Aktionen ersetzt, die über control_image_sourcecontrol_image_sourceControlImageSourceControlImageSourcecontrol_image_source verfügbar sind. control_image_sourcecontrol_image_sourceControlImageSourceControlImageSourcecontrol_image_source ermöglicht auch die Auflistung aller Parameter (bisher über get_framegrabber_paramget_framegrabber_paramGetFramegrabberParamGetFramegrabberParamget_framegrabber_param).
alt: grab_imagegrab_imageGrabImageGrabImagegrab_image
neu: snap_from_image_sourcesnap_from_image_sourceSnapFromImageSourceSnapFromImageSourcesnap_from_image_source
Funktioniert ähnlich.
alt: grab_image_startgrab_image_startGrabImageStartGrabImageStartgrab_image_start
neu: start_image_sourcestart_image_sourceStartImageSourceStartImageSourcestart_image_source
grab_image_startgrab_image_startGrabImageStartGrabImageStartgrab_image_start wird automatisch durch den ersten Aufruf von grab_image_asyncgrab_image_asyncGrabImageAsyncGrabImageAsyncgrab_image_async ausgeführt, falls grab_image_startgrab_image_startGrabImageStartGrabImageStartgrab_image_start nicht zuvor aufgerufen wurde. start_image_sourcestart_image_sourceStartImageSourceStartImageSourcestart_image_source wird nicht automatisch durch den ersten Aufruf von fetch_from_image_sourcefetch_from_image_sourceFetchFromImageSourceFetchFromImageSourcefetch_from_image_source ausgeführt.
alt: Kein direktes Äquivalent
neu: stop_image_sourcestop_image_sourceStopImageSourceStopImageSourcestop_image_source
Einige Framegrabber-Handles bieten den speziellen Parameter 'do_abort_grab'"do_abort_grab""do_abort_grab""do_abort_grab""do_abort_grab", der die gleiche Funktion erfüllt wie stop_image_sourcestop_image_sourceStopImageSourceStopImageSourcestop_image_source.
alt: grab_image_asyncgrab_image_asyncGrabImageAsyncGrabImageAsyncgrab_image_async
neu: fetch_from_image_sourcefetch_from_image_sourceFetchFromImageSourceFetchFromImageSourcefetch_from_image_source
Funktioniert ähnlich.
alt: grab_datagrab_dataGrabDataGrabDatagrab_data
neu: Kein direktes Äquivalent
snap_from_image_sourcesnap_from_image_sourceSnapFromImageSourceSnapFromImageSourcesnap_from_image_source kombiniert die Anwendungsfälle von grab_imagegrab_imageGrabImageGrabImagegrab_image und grab_datagrab_dataGrabDataGrabDatagrab_data. Zusätzlich werden Metadaten wie Puffer-Zeitstempel und Bildzähler direkt zurückgegeben und müssen nicht separat abgefragt werden.
alt: grab_data_asyncgrab_data_asyncGrabDataAsyncGrabDataAsyncgrab_data_async
neu: Kein direktes Äquivalent
fetch_from_image_sourcefetch_from_image_sourceFetchFromImageSourceFetchFromImageSourcefetch_from_image_source kombiniert die Anwendungsfälle von grab_image_asyncgrab_image_asyncGrabImageAsyncGrabImageAsyncgrab_image_async und grab_data_asyncgrab_data_asyncGrabDataAsyncGrabDataAsyncgrab_data_async. Zusätzlich werden Metadaten wie Puffer-Zeitstempel und Bildzähler direkt zurückgegeben und müssen nicht separat abgefragt werden.
alt: get_framegrabber_callbackget_framegrabber_callbackGetFramegrabberCallbackGetFramegrabberCallbackget_framegrabber_callback
alt: set_framegrabber_callbackset_framegrabber_callbackSetFramegrabberCallbackSetFramegrabberCallbackset_framegrabber_callback
alt: get_framegrabber_lutget_framegrabber_lutGetFramegrabberLutGetFramegrabberLutget_framegrabber_lut
alt: set_framegrabber_lutset_framegrabber_lutSetFramegrabberLutSetFramegrabberLutset_framegrabber_lut
Kein direktes Äquivalent

Die folgende Tabelle zeigt die Beziehungen zwischen MVTec Bildquellen-Plugins (siehe MVTec Interfaces Reference Documentation für Details) und klassischen Bildeinzug-Interfaces:

Bildquellen-Plugin Entsprechendes Bildeinzug-Interface Anmerkungen
'mvtec_gigevision'"mvtec_gigevision""mvtec_gigevision""mvtec_gigevision""mvtec_gigevision" GigEVision2 Das Plugin 'mvtec_gigevision'"mvtec_gigevision""mvtec_gigevision""mvtec_gigevision""mvtec_gigevision" enthält die gleiche GigE Vision-Standardimplementierung wie das GigEVision2-Bildeinzug-Interface. Trotz des Namens (GigEVision2) ermöglichen sowohl das Plugin als auch das Bildeinzug-Interface den Zugriff auf alle GigE Vision-Kameras, unabhängig davon, welche Version des GigE Vision-Standards die Kamera implementiert.
'mvtec_usb3vision'"mvtec_usb3vision""mvtec_usb3vision""mvtec_usb3vision""mvtec_usb3vision" USB3Vision Das Plugin 'mvtec_usb3vision'"mvtec_usb3vision""mvtec_usb3vision""mvtec_usb3vision""mvtec_usb3vision" enthält die gleiche Implementierung des USB3 Vision-Standards wie das USB3Vision-Bildeinzug-Interface.
'mvtec_realsense'"mvtec_realsense""mvtec_realsense""mvtec_realsense""mvtec_realsense" RealSense Das Plugin 'mvtec_realsense'"mvtec_realsense""mvtec_realsense""mvtec_realsense""mvtec_realsense" stellt ein Interface zum Intel RealSense SDK bereit und enthält die gleiche Low-Level-Implementierung wie das RealSense-Bildeinzug-Interface.
'mvtec_mediafoundation'"mvtec_mediafoundation""mvtec_mediafoundation""mvtec_mediafoundation""mvtec_mediafoundation" MediaFoundation Das Plugin 'mvtec_mediafoundation'"mvtec_mediafoundation""mvtec_mediafoundation""mvtec_mediafoundation""mvtec_mediafoundation" stellt ein Interface zur Microsoft Media Foundation API bereit und enthält die gleiche Low-Level-Implementierung wie das MediaFoundation-Bildeinzug-Interface. (Nur auf Windows-Plattformen verfügbar)
'mvtec_gstreamer'"mvtec_gstreamer""mvtec_gstreamer""mvtec_gstreamer""mvtec_gstreamer" GStreamer Das Plugin 'mvtec_gstreamer'"mvtec_gstreamer""mvtec_gstreamer""mvtec_gstreamer""mvtec_gstreamer" stellt ein Interface zur Open-Source GStreamer-Multimedia-Plattform bereit und enthält die gleiche Low-Level-Implementierung wie das GStreamer-Bildeinzug-Interface. (Nur auf Linux-Plattformen verfügbar)

Weitere Bildquellen-Plugins zur Anbindung an noch mehr Bildübertragungstechnologien werden in Zukunft bereitgestellt.

Klassisches Bildeinzug-Interface, die hier nicht erwähnt sind (z. B. „File“, „SaperaLT“, „DirectShow“) haben kein entsprechendes Bildquellen-Plugin. Sie müssen weiterhin mit den Framegrabber-Operatoren verwendet werden.

Glossar

Im Folgenden beschreiben wir die wichtigsten Begriffe, welche wir im Kontext von Bildquellen verwenden:

Gerät (Modulname, engl.: device)

Bezieht sich auf das bildgebende Gerät. Darunter fallen verschiedene Arten von Sensoren, von konventionellen Industriekameras bis zu 3D-Sensoren. In speziellen Fällen kann dies auch Controller und virtuelle Geräte einschließen.

GenICam

Der GenICam-Standard ermöglicht es bildgebenden Geräten, der verbundenen Anwendung ihre Konfigurationseigenschaften über eine Feature-Beschreibungsdatei (XML) bereitzustellen. HALCON-Bildquellen basieren auf diesem Standard, um den Zugriff auf die Gerätekonfiguration zu ermöglichen (siehe set_image_source_paramset_image_source_paramSetImageSourceParamSetImageSourceParamset_image_source_param und get_image_source_paramget_image_source_paramGetImageSourceParamGetImageSourceParamget_image_source_param). In der Regel müssen sich HALCON-Nutzer nicht direkt mit diesen XML-Dateien auseinandersetzen.

Der Standard definiert zahlreiche Features, von denen viele über den Umfang dieser Dokumentation hinausgehen. Für detailliertere Informationen siehe die offiziellen Standarddokumente, insbesondere die GenICam Standard Features Naming Convention (SFNC) sowie die GenICam GenTL SFNC. Diese Ressourcen werden von der European Machine Vision Association (EMVA) bereitgestellt.

GenTL

Der GenICam-GenTL-Standard ermöglicht es Bildverarbeitungsanwendungen und -frameworks verschiedener Anbieter, auf Kameras und Geräte unterschiedlicher Hersteller zuzugreifen. Er definiert ein klar festgelegtes Software-Interface, die verschiedene Implementierungsdetails vor der verwendenden Anwendung verbirgt. Eine Anwendung wie HALCON, die unterschiedliche GenTL-Producer (wie z. B. die Plugins) nutzt, wird auch als GenTL-Consumer bezeichnet.

Bildquellen-Handle (engl.: image source handle)

Ein Bildquellen-Handle stellt ein generisches Interface zu einer Vielzahl zugrunde liegender Bildeinzugstandards und -technologien bereit. Aus Sicht der HALCON-Bibliothek bietet jedes Bildquellen-Handle dieselben grundlegenden Operationen. Das Bildquellen-Handle verknüpft Software- und Hardwarekomponenten, die für den Bildeinzug erforderlich sind.

Interface (Modulname)

Interfaces beziehen sich auf die Hardware, die mit dem bildgebenden Gerät verbunden ist, z. B. der Anschluss, an dem das Kabel vom Gerät in den Host-Computer gesteckt wird. Im Kontext von Bildquellen bezieht sich der Begriff „Interface“ also nicht auf das, was früher als Bildeinzugschnittstelle bezeichnet wurde.

Falls Framegrabber verwendet werden, wird jede Framegrabber-Karte typischerweise als eine einzelnes Interface modelliert. Standardmäßig verbergen HALCON-Bildquellen die Komplexität mehrerer Interfaces, indem sie automatisch das richtige Interface verwenden.

Modul

Die einzelnen Einheiten einer Bildquelle (Plugin, Interface, Gerät, Stream) werden als Module bezeichnet. Jedes Modul ermöglicht den Zugriff auf seine Parameter. Die Modulnamen entsprechen daher auch den Namen der entsprechenden Parametergruppen.

Plugin (Modulname)

Bildquellen-Plugins abstrahieren die verschiedenen Technologien, die für die Übertragung von Bildern vom bildgebenden Gerät zur empfangenden Anwendung verwendet werden. An anderer Stelle werden sie auch als GenTL-Producer bezeichnet. Plugins existieren auf jedem Zielsystem in Form von .cti-Dateien. Sie können mit dem MVTec Software Manager ausgewählt und installiert werden. Von anderen Herstellern bereitgestellte Plugins (d. h. GenTL-Producer) stehen automatisch zur Verfügung, sobald das proprietäre SDK des Herstellers installiert wurde. Weitere detaillierte Anweisungen finden sich in der Dokumentation des Herstellers. Zur Laufzeit werden Plugins, die nicht von MVTec bereitgestellt werden, von HALCON über die Umgebungsvariable GENICAM_GENTL64_PATH (oder GENICAM_GENTL32_PATH) gefunden, welche alle Verzeichnisse auflistet, die .cti-Dateien enthalten.

Stream (Modulname)

Ein Gerät kann keinen, einen oder mehrere Bild-Streams bereitstellen. Die typische industrielle Bildverarbeitungskamera stellt nur einen Stream bereit. Standardmäßig verbergen HALCON-Bildquellen die Komplexität mehrerer Streams.


Liste der Operatoren

connect_image_sourceConnectImageSourceconnect_image_sourceConnectImageSourceconnect_image_source
Stellt eine Verbindung zu einer Bildquelle her.
control_image_sourceControlImageSourcecontrol_image_sourceControlImageSourcecontrol_image_source
Steuern von Aktionen, die für Bildquellen verfügbar sind.
create_image_sourceCreateImageSourcecreate_image_sourceCreateImageSourcecreate_image_source
Erzeugen eines Bildquellen-Handles.
disconnect_image_sourceDisconnectImageSourcedisconnect_image_sourceDisconnectImageSourcedisconnect_image_source
Trennt eine Verbindung zu einer Bildquelle.
fetch_from_image_sourceFetchFromImageSourcefetch_from_image_sourceFetchFromImageSourcefetch_from_image_source
Holen von Bildern und zugehörigen Metadaten aus der Pufferwarteschlange einer Bildquelle.
get_image_source_paramGetImageSourceParamget_image_source_paramGetImageSourceParamget_image_source_param
Gibt den Wert eines Bildquellenparameters zurück.
query_image_sourcesQueryImageSourcesquery_image_sourcesQueryImageSourcesquery_image_sources
Gibt Handles zurück, die Bildquellen entsprechen.
set_image_source_paramSetImageSourceParamset_image_source_paramSetImageSourceParamset_image_source_param
Setzen eines Bildquellenparameters.
snap_from_image_sourceSnapFromImageSourcesnap_from_image_sourceSnapFromImageSourcesnap_from_image_source
Einziehen von Bildern und zugehörigen Metadaten von einer Bildquelle.
start_image_sourceStartImageSourcestart_image_sourceStartImageSourcestart_image_source
Vorbereiten der Bildquelle für die kontinuierliche Aufnahme, Übertragung und das Empfangen von Bildern.
stop_image_sourceStopImageSourcestop_image_sourceStopImageSourcestop_image_source
Beenden der kontinuierlichen Aufnahme, Übertragung und des Empfangens von Bildern.