MVTec Software GmbH
Building Vision For Business
Follow us on YouTube  Subscribe our RSS feed

Programming with HALCON

HALCON offers various interfaces to access all of HALCON's more than 2000 powerful operators from programming languages like C, C++, and .NET languages like C# or VB.NET. HALCON's open architecture allows you to access defined data structures and thus to integrate HALCON with further software components such as a user interface or process control.
HALCON also supports parallel programming, e. g., multithreaded programs. Thus, multiple threads can call HALCON operators simultaneously. All this, together with HALCON's inbuilt high-performance memory management lets you concentrate on your application development and quickly come to a solution.
  click to get larger view of image
click to get larger view of image
click to get larger view of image


In HALCON/.NET all HALCON operators and data structures are available as high-level classes, greatly simplifying the development of your application. HALCON/.NET can be used in .NET languages like C#, Visual Basic .NET, and C++. It can be used on Windows and with Mono also on Linux.

private void timerCycle_Tick(object sender, System.EventArgs e)
    HTuple results;

    // Create instance of reader without special parameters
    HBarCode reader = new HBarCode(new HTuple(), new HTuple());

    // Acquire next image
    HImage image = acquisition.GrabImage();

    // Find and decode bar codes of type EAN 13
    HRegion regions = reader.FindBarCode(image, "EAN-13", out results);

    if (results.Length > 0)
        // Display image and bar code regions in graphics window

        // Display decoded result of first found bar code in a text box
        textBoxCode.Text = results[0];
        textBoxCode.Text = "Not found!";

    // Cleanup (could also be done using the garbage collector)
With only a few lines of C# code you can build the entire application, e.g., to decode bar codes.
click to get larger view of image
HALCON variables can be inspected directly within Visual Studio


With HALCON/C++ you can access the whole functionality of HALCON based on a C++ class hierarchy. This enables you to develop programs that are very compact and easy to maintain. HALCON/C++ is available on Windows, Linux, and OS X.


If you develop your solution with the interactive rapid prototyping environment HDevelop the integration is very easy, since HDevelop can export your application as C++, C, C#, or Visual Basic source code.


HDevEngine – the "HDevelop Engine" – is a library that acts as an interpreter and lets you directly load and execute HDevelop programs and procedures from within your C++, C#, or Visual Basic application. This allows you to change the vision part of your application without the need of compiling it.

Parallel Programming

HALCON not only supports multithreading and parallel programming, but also provides automatic parallelization to exploit the power of multi-core or multiprocessor hardware. Read more about multi-core performance.

Powerful Debugging

HALCON supports debugging efforts of software developers tremendously. Using HALCON's extension for Visual Studio, C++ and C#/.NET developers can inspect HALCON variables (tuples and iconic) directly within Visual Studio.

Protection of Know-how

HALCON secures the know-how of the software developer: code, which is saved in external or local procedures, as well as code of entire procedure libraries or programs can be secured with a password. Therefore, functionality can be shared without revealing the program code.

© Copyright 2016, MVTec Software GmbH, corporate/legal/privacy information

Webmaster Last modified: Fri Nov 14 20:00:00 CET 2014