This document provides the release notes for MVTec HALCON 13.0.3, as released in March 2019.
HALCON 13.0.3 is primarily a maintenance release that fixes all known bugs in HALCON 13.0.2; besides, it provides added functionality.
HALCON 13.0 licenses are also valid for HALCON 13.0.3. In contrast, all HALCON 12.0 licenses or licenses of earlier versions must be replaced or upgraded. Please contact your local distributor.
HALCON 13.0.3 is fully compatible with HALCON 13.0 except for the changed behavior of some operators owing to bug fixes. Compared to HALCON 12.0, many extensions have been introduced. Thus, the HALCON 13.0 libraries are not compatible with HALCON 12.0 or earlier versions.
In detail, please note the following incompatibilities with respect to HALCON 13.0.2:
- The operators calibrate_cameras, binocular_calibration, and the camera calibration in calibrate_hand_eye in rare cases might return slightly different optimized parameters and reprojection error. More information.
- The operator classify_class_gmm returns different values fo the k-sigma probability 'KSigmaProb' for Gaussian Mixture Models with covariance type 'spherical' or 'diag'. Since classify_image_class_gmm uses the k-sigma probability to reject pixels, the class regions returned by classify_image_class_gmm now might differ from those of previous HALCON versions. More information.
- The operators create_scaled_shape_model, create_aniso_shape_model, determine_shape_model_params, create_planar_uncalib_deformable_model, create_planar_calib_deformable_model, create_local_deformable_model, and determine_deformable_model_params for 'NumLevels'='auto' in rare cases might return a different number of pyramid levels when 'ScaleMin', 'ScaleRMin', or 'ScaleCMin' are set to a value < 0.7. In extremely rare cases, create_shape_model_3d might create a slightly different model. More information.
- The results and the score of find_planar_calib_deformable_model, find_planar_uncalib_deformable_model, and find_local_deformable_model can vary slightly from previous results and scores. More information.
- The results and the score of find_planar_calib_deformable_model and find_planar_uncalib_deformable_model with the metric 'ignore_part_polarity' can vary slightly from previous results and scores. More information.
- The results and the score of find_planar_calib_deformable_model, find_planar_uncalib_deformable_model, and find_local_deformable_model can vary slightly from previous results and scores. This does not only affect the SIMD implementations but also the C version. More information.
- gen_circle_sector, gen_ellipse_sector, create_drawing_object_circle_sector, and create_drawing_object_ellipse_sector might return slightly different results. More information.
- get_calib_data for ItemType set to 'camera' and DataName set to 'params_deviations' or 'params_covariances' sometimes returns different results. More information.
- The operator get_data_code_2d_results now returns error 8831 ("Unknown parameter name") if the candidate groups 'symbology_ident' and 'structured_append' are chosen for Micro QR Codes. More information.
- When using a text model of type 'manual', get_text_object erroneously returned the error 1301 ("Wrong value of control parameter 1") when passing an unsupported string for the parameter 'ResultName'. Now, the error 1302 ("Wrong value of control parameter 2") is returned. The operator get_text_object also returned no error for text models of type 'manual' when multiple values for the parameter 'ResultName' have been passed. Instead, only the first parameter value has been processed. Now, the error 1202 ("Wrong type of control parameter 2") is returned. More information.
- serialize_texture_inspection_model threw the error 3801 ("Texture inspection model is not trained") if an untrained or only partially trained texture inspection model was passed as input parameter. Now, serialize_texture_inspection_model can cope with untrained models and therefore no error is returned in these cases anymore. More information.
- set_bar_code_param now throws an exception, if 'element_size_min' and 'element_size_max' are inconsistent. More information.
- set_data_code_2d_param now throws an exception if the min/max values for the following parameters are inconsistent: 'symbol_rows_min/max', 'symbol_cols_min/max', 'symbol_size_min/max', 'module_size_min/max', 'module_width_min/max', 'module_aspect_min/max', 'module_gap_row_min/max', 'module_gap_col_min/max', 'module_gap_min/max', and 'version_min/max'. More information.
- set_stereo_model_image_pairs and reconstruct_surface_stereo might return slightly different results, in rare cases also significantly different results. In order to obtain the old behavior, before calling set_stereo_model_image_pairs, please call
set_stereo_model_param (StereoModelID, 'rectif_method', 'geometric'). More information.
- The following operators may produce different results for uint2 images when the SSE41 optimization is switched off by using set_system ('sse41_enable','false'): find_local_deformable_model, find_planar_calib_deformable_model, find_planar_uncalib_deformable_model, find_ncc_model, find_ncc_models, find_aniso_shape_model, find_aniso_shape_models, find_scaled_shape_model, find_scaled_shape_models, find_shape_model, and find_shape_models. More information.
- Note that some matrix operators that previously accepted a double value as matrix handle now raise an error, even if the double value represents an integer that is a correct matrix handle. To avoid this, cast the double value to an integer value using, for example, the operator tuple_int before passing it to the matrix operator. More information.
Applications (i.e., executables) developed with HALCON 13.0, HALCON 13.0.1, or HALCON 13.0.2 can be used with HALCON 13.0.3, i.e., HALCON 13.0.3 is binary compatible with HALCON 13.0, HALCON 13.0.1, and HALCON 13.0.2.
All programs (C, C++, .NET, or COM) that have been developed with HALCON 12.0.x must be recompiled. The incompatibility with HALCON 12.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 13.0, HALCON 13.0.1, and HALCON 13.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 13.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 13.0, HALCON 13.0.1, or HALCON 13.0.2, you can use them with HALCON 13.0.3 without further action.
MVTec discontinues the GigEVision interface. Since HALCON 13.0.2, the GigEVision interface is deprecated, but still available. Note that instead of the GigEVision interface, the new GigEVision2 interface should be used. For HALCON 18.11 Steady / HALCON 17.12 Progress or higher HALCON versions, the GigEVision2 interface replaces the deprecated GigEVision interface.
Digital I/O Interfaces
If you have developed your own digital I/O interfaces with HALCON 13.0, HALCON 13.0.1, or HALCON 13.0.2, you can use them with HALCON 13.0.3 without further action.
Extension packages developed with HALCON 13.0, HALCON 13.0.1, or HALCON 13.0.2 can be used with HALCON 13.0.3 without further action. Extension packages developed with HALCON 12.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
- The protection format for HDevelop files has been changed to improve security. Files with the new protection cannot be used with unpatched HALCON versions published before May 2018. If you need to open these files with older HALCON versions, please update these versions using the patches available for download from our webserver https://www.mvtec.com/download/halcon/. More information.
Discontinuation of the HALCON/C++ (legacy) Language Interface
MVTec discontinues the HALCON/C++ (legacy) language interface. Since HALCON 13.0.2, 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. Since HALCON 12.0.2, there are warnings when compiling HALCON/C++ (legacy) projects. For HALCON 18.11 Steady / HALCON 17.12 Progress or higher HALCON versions, the HALCON/C++ (legacy) interface is no longer available.
Discontinuation of the HALCON/COM Language Interface
MVTec discontinues the HALCON/COM language interface. Since HALCON 13.0.2, the HALCON/COM interface is marked as legacy. For HALCON 18.11 Steady / HALCON 17.12 Progress or higher HALCON versions, the HALCON/COM interface is no longer available.
Image Acquisition Interfaces
The latest information about new interface revisions and newly supported image acquisition devices can be found on MVTec's web server. Please refer to the release notes within the documentation of the individual image acquisition interfaces for information about improvements, bugfixes, or whether a new revision of the corresponding device driver is required.
- GenApi has been updated to version 3.1.0, which is required by the GenICamTL, GigEVision2, and USB3Vision image acquisition interfaces.
- The Image Acquisition Assistant could have hung on Linux systems after the 'Connect' button had been pressed. This problem has been fixed.