Auf dieser Seite werden Cookies verwendet. Details und Hinweise zu den Einstellungen sind in unseren Datenschutzregeln.
Der weitere Gebrauch von unser Webseite, ohne Änderung der Einstellungen, bedeutet das Einverständnis mit diesen Regeln.

Akzeptieren (Notiz ausblenden)
POL ENG GER 中文(繁體) 中文(简体)

Datenflussprogrammierung

Wichtig: Für Adaptive Vision Studio muss der Benutzer keine Erfahrung haben in der Low-Level-Programmierung. Trotzdem ist es ein hochspezialisiertes Werkzeug für Profis Ingenieure und eine vollwertige visuelle Programmiersprache. Sie müssen verstehen seine 4 Kernkonzepte: Daten, Filter, Verbindungen und Makrofilter.


Daten

Adaptive Vision Studio ist eine Datenverarbeitungsumgebung, daher sind Daten eines der zentralen Konzepte. Die wichtigste Tatsache bei Daten, die verstanden werden muss, ist die Unterscheidung zwischen - Typen (z. B. Point2D) und Werte (z. B. die Koordinaten (15.7, 4.1)). Typen definieren das Protokoll und leiten die Programmkonstruktion. Während der Programmausführung werden Werte angezeigt, die Informationen darstellen, die verarbeitet werden.

Adaptive Vision Studio unterstützt auch Arrays, d. H. Sammlungen von Datenelementen mit variabler Größe das kann zusammen verarbeitet werden. Für jeden Datentyp gibt es einen entsprechenden Array-Typ. So wie beispielsweise 4 ein Wert des Typs Integer ist, wird die Sammlung {1, 5, 4} ist Ein Wert des Array-Typs Integer. Verschachtelte Arrays sind ebenfalls möglich.

Filter

Filter (oder Werkzeuge) sind die grundlegenden Datenverarbeitungselemente in der datenflussgesteuerten Programmierung. In einer typischen Bildverarbeitungsanwendung befindet sich am Anfang ein Bildaufnahmefilter gefolgt von einer Folge von Filtern, die die Bilder transformieren in Regionen, Konturen, geometrische Grundelemente und dann in endgültige Ergebnisse wie eine Bestanden / Nicht Bestanden-Anzeige.

Ein Filter hat normalerweise mehrere Eingänge und einen oder mehrere Ausgänge. Jeder der Ports hat ein bestimmter Typ (z. B. Image, Point2D usw.) Es können nur Verbindungen zwischen Ports mit kompatiblen Typen hergestellt werden. Werte für nicht verbundene Eingänge können im Eigenschaftenfenster festgelegt werden, das auch bereitstellt Grafikeditoren zur bequemen Definition von Geometriedaten. Wenn ein Filter aufgerufen wird, können seine Ausgabedaten in der Datenvorschau angezeigt und analysiert werden Paneele.

Verbindungen

Verbindungen übertragen Daten zwischen Filtern, spielen aber auch eine wichtige Rolle Rolle bei der Kapselung eines Großteils der Komplexität, die für Programmierkonstrukte auf niedriger Ebene typisch ist wie Schleifen und Bedingungen. Verschiedene Arten von Verbindungen unterstützen: grundlegenden Datenfluss , automatische Konvertierungen , For-Each-Verarbeitung und bedingte Verarbeitung . Sie müssen die Verbindungstypen nicht manuell definieren – sie werden automatisch auf der DWIM-Basis (do what I mean, "mach was ich meine") abgeleitet.

Makrofilter

Makrofilter bieten ein Mittel zum Aufbau eines großen realen Lebens Projekte. Sie sind wiederverwendbare Unterprogramme mit eigenen Eingänge und Ausgänge. Sobald ein Makrofilter erstellt wurde, wird er angezeigt im Projekt-Explorer-Fenster und ab diesem Zeitpunkt kann in verwendet werden Genau die gleiche Drag & Drop-Mode wie bei jedem normalen Filter.

Die meisten Makrofilter (vom Typ Step) sind nur Ersetzungen mehrerer Filter das hilft, das Programm sauber und organisiert zu halten. Einige andere können jedoch erstellen verschachtelte Datenverarbeitungsschleifen (Aufgaben) oder leiten die Programmausführung in einer von mehreren klar definierten bedingten Pfaden (Variant Steps). Diese Konstrukte bieten eine elegante Möglichkeit, Datenflussprogramme beliebiger Komplexität zu erstellen.

Daten und ihre Typen sind sehr ähnlich zu dem, was Sie aus C ++ kennen. Wir haben auch eine generische Sammlung typeD – das Array, das std::vector sehr ähnlich ist. Filter und Makrofilter sind nur Äquivalente von Funktionen. Anstelle eines einzelnen zurückgegebenen Werts haben sie jedoch häufig mehrere Ausgabeparameter. Verbindungen entsprechen Variablen, die nicht benannt werden müssen.
Auf der anderen Seite Schleifen und Bedingungen in Adaptive Vision Studio unterscheidet sich erheblich von C ++. Ersteres wird über Array-Verbindungen abgewickelt oder mit Task-Makrofiltern, während für letztere bedingte Verbindungen und Variant Step-Makrofilter vorhanden sind.