HALCON Progress Key Visual shows a person running at high speed

Programmierung mit HALCON

Debuggen von HALCON-Variablen in Visual Studio
HALCON-Variablen können direkt in Visual Studio inspiziert werden

HALCON bietet verschiedene Sprachschnittstellen an, um alle der über 2.000 leistungsstarken Operatoren aus Programmiersprachen wie C, C++, Python, und .NET-Sprachen wie C# oder VB.NET aufrufen zu können. Seine offene Software-Architektur bietet den Zugriff auf dedizierte Datenstrukturen an und erlaubt so die einfache Integration mit anderen Softwarekomponenten wie einer Benutzeroberfläche oder der Prozesssteuerung. So enthält HALCON auch ein leistungsstarkes Plugin für Visual Studio.

Darüber hinaus unterstützt die Software parallele Programmierung, z.B. mehrerer Threads. Dadurch können mehrere Threads gleichzeitig HALCON-Operatoren aufrufen. All dies, zusammen mit HALCONs eingebautem High-Performance-Speichermanagement ermöglicht es dem Programmierer, sich auf die Applikationsentwicklung zu konzentrieren und schnell eine Lösung zu erreichen.

HALCON/.NET

HALCON/.NET ist HALCONs Schnittstelle zu .NET-Programmiersprachen, z.B. C# oder Visual Basic .NET. Sie bietet Ihnen eine Reihe von .NET-Klassen und Visualisierungskontrollen für Windows Forms und WPF und unterstützt alle HALCON-Funktionalitäten.

Zwei HALCON/.NET-Varianten für beide .NET-Plattformen, das frühere .NET-Framework und die neue .NET-Core-Plattform, sind mit identischen Schnittstellen und identischem Verhalten verfügbar.

Der HALCON/.NET Core kann auf jeder HALCON-Standardplattform eingesetzt werden.

HALCON/C++

Mit HALCON/C++ kann die gesamte Funktionalität von HALCON über eine C++-Klassenhierarchie angesprochen werden. Diese ermöglicht es, Programme zu entwickeln, die sehr kompakt und leicht zu warten sind. HALCON/C++ steht unter Windows, Linux und macOS zur Verfügung.

HDevelop

Wenn Sie Ihre Lösung mit Hilfe der Rapid-Prototyping-Umgebung HDevelop entwickeln, ist die Integration sehr einfach, denn HDevelop lässt Sie Ihre Anwendung als C++, C, C# oder Visual Basic Quelltext exportieren. Darüber hinaus können Sie mit der HDevEngine Ihren Bildverarbeitungsprogrammcode unkompliziert in Ihre Anwendung integrieren.

HDevEngine

Die „HDevelop Engine“ ist eine Bibliothek, die als Interpreter fungiert und es möglich macht, HDevelop-Programme und -Prozeduren direkt aus einer Applikation in C++, C# oder Visual Basic heraus zu laden und auszuführen. Damit lässt sich der Bildverarbeitungsteil einer Applikation ändern, ohne ihn erneut kompilieren zu müssen.

Dictionaries

Um die Arbeit mit komplexen Daten zu erleichtern, bietet HALCON die Datenstruktur "Dictionary". Dieses assoziative Array ermöglicht es u. a. verschiedene komplexe Datentypen (wie z. B. Bilder, enstprechende ROIs und Parameter) in einer einzigen Variable zu bündeln. Dadurch kann man Programme ganz einfach strukturieren, wenn z. B. viele Parameter an eine Prozedur übergeben werden müssen. Dictionaries können auch aus einer Datei gelesen und in eine Datei geschrieben werden. Damit kann ein Entwickler alle Informationen, die für die Reproduktion des Zustands einer bestimmten Anwendung notwendig sind (z.B. Einstellungen der Kamera-Kalibrierung, fehlerhafte Bilder und Maschi­nen­para­meter), in einer einzigen Datei zusammenfassen. Diese Datei kann dann problemlos an einen Bild­verarbeitungs­experten für Offline-Debugging weitergegeben werden.

Parallelprogrammierung

HALCON unterstützt nicht nur Multithreading und Parallelprogrammierung, sondern bietet darüber hinaus auch automatische Parallelisierung zur optimalen Ausnutzung von Mehrkern- und Mehrprozessor-Hardware. Lesen Sie hier mehr über die Multicore-Performance von HALCON.

Automatische Freigabe von Handles

HALCON gibt Handles automatisch frei, sobald diese nicht mehr benötigt werden. Dadurch wird das Risiko Speicherlecks zu erzeugen deutlich reduziert, da ungenutzter Speicher nicht mehr manuell freigeben werden muss. Auch das Schreiben von "sicherem Code" wird dadurch wesentlich vereinfacht.

Debugging – leicht gemacht

HALCON reduziert den Aufwand zur Fehlersuche bei der Softwareentwicklung enorm. Dank HALCONs Visual Studio Extension können C++ und C#/.NET Entwickler HALCON-Tupel und ikonische Variablen direkt in Visual Studio überprüfen. Werden HDevelop-Prozeduren über die HDevEngine innerhalb einer C# oder C++ Anwendung ausgeführt, ist das Debugging des Bildverarbeitungsteils durch Verknüpfung mit der HDevEngine direkt in HDevelop möglich. Dies funktioniert auch über Remote-Verbindungen.

Know-how – gut geschützt

HALCON sichert das Know-how des Programmierers:

  • Code, der in externen oder lokalen HDevelop-Prozeduren gespeichert wird, sowie der Code kompletter Prozedurbibliotheken oder ganzer Programme kann auf Wunsch durch ein Passwort geschützt werden. Somit lässt sich Funktionalität leicht weitergeben, ohne den Programmcode preiszugeben.
  • Alle serialisierbaren HALCON-Daten können ebenfalls verschlüsselt und mit einem Passwort geschützt werden. So können Kunden ihr geistiges Eigentum (z.B. trainierte Deep-Learning-Modelle), ikonische Daten, die geistiges Eigentum enthalten, oder Strings mit kritischen Sicherheitsinformationen schützen.