Major New Features of HALCON 12.0.3


Compatibility

Licenses

HALCON 12.0 licenses are also valid for HALCON 12.0.3. In contrast, all HALCON 11.0 licenses or licenses of earlier versions must be replaced or upgraded. Please contact your local distributor.

HALCON Library

HALCON 12.0.3 is fully compatible with HALCON 12.0 except for the changed behavior of some operators owing to bug fixes. Compared to HALCON 11.0, many extensions have been introduced. Thus, the HALCON 12.0 libraries are not compatible with HALCON 11.0 or earlier versions.

In detail, please note the following incompatibilities with respect to HALCON 12.0.2:

  • Because of the changes applied to achieve an improved selection of punctuation marks, the results returned by find_text might differ from the results produced with earlier HALCON versions.
  • read_image now scales the gray values of PNG images to the original bit depth. This affects PNG images, for which the original image depth was different than 8 bit or 16 bit. If images from such a source are used, subsequent absolute parameters such as thresholds have to be adapted or the image gray values have to be scaled to the previous value range with scale_image.
  • Extended attributes that are bound to the object itself, not to points, triangles, polygons, or lines, are no longer copied by union_object_model_3d. Also, some attributes that previously were not in the output 3D object model now are copied.

HALCON Applications

Applications (i.e., executables) developed with HALCON 12.0, HALCON 12.0.1, or HALCON 12.0.2 can be used with HALCON 12.0.3, i.e., HALCON 12.0.3 is binary compatible with HALCON 12.0, HALCON 12.0.1, and HALCON 12.0.2.

All programs (C, C++, .NET, or COM) that have been developed with HALCON 11.0.x must be recompiled. The incompatibility with HALCON 11.0.x or earlier versions mainly concerns the binaries, with only few changes in the language interfaces. If you encounter problems during recompiling your programs, please check the detailed description of changes below and for HALCON 12.0, HALCON 12.0.1, and HALCON 12.0.2, respectively.

Please note that applications using HALCON/.NET (and HDevEngine/.NET) have local copies of the corresponding assemblies (halcondotnet.dll etc.). After installing HALCON 12.0.3, these applications would therefore use the old version of the HALCON/.NET interface together with the new version of the HALCON library. In order to benefit from the bug fixes in the HALCON/.NET interface as well, you must either replace the assemblies manually or recompile the projects. If you do not recompile the application, you need to add an application configuration file mapping the application’s expected assembly version to the new version. See the Programmer’s Guide for more information.

Image Acquisition Interfaces

If you have developed your own acquisition interfaces with HALCON 12.0, HALCON 12.0.1, or HALCON 12.0.2, you can use them with HALCON 12.0.3 without further action.

Digital I/O Interfaces

If you have developed your own digital I/O interfaces with HALCON 12.0, HALCON 12.0.1, or HALCON 12.0.2, you can use them with HALCON 12.0.3 without further action.

Extension Packages

Extension packages developed with HALCON 12.0, HALCON 12.0.1, or HALCON 12.0.2 can be used with HALCON 12.0.3 without further action. Extension packages developed with HALCON 11.0.x or earlier versions must be re-generated. Note that the old makefiles for HALCON/C++ must be adapted according to the sample makefile under extension_packages/halconuser.

Further Compatibility Information

  • Programs containing statements of the form
    a[]:=… must be modified by either deleting the statement, or by rewriting the statements as a[[]]:=…

Planned Discontinuation of the HALCON/C++ (legacy) Language Interface

MVTec plans to discontinue the HALCON/C++ (legacy) language interface. The timeline for this discontinuation includes the following steps, which in parts are already realized:

  • Since HALCON 12.0.2:
    • There are warnings when compiling HALCON/C++ (legacy) projects.
  • Since HALCON 13:
    • Since HALCON 13, the HALCON/C++ (legacy) interface does not contain any new class. This means, the major part of the new functionality that was introduced with HALCON 13, is not available via the HALCON/C++ (legacy) interface.
  • Major HALCON version after HALCON 13:
    • In the major HALCON version after HALCON 13 (which will presumably be released not before 2018), the HALCON/C++ (legacy) interface will not be available.

Planned Discontinuation of the Support of FLEXid Dongles

For HALCON 13 or higher, FLEXid dongles are no longer supported and will be substituted by CodeMeter dongles. Note that HALCON 12 will furtheron support FLEXid dongles. For HALCON 12.0.3 and higher, also CodeMeter dongles are supported, if a valid HALCON 13 license file is available.