Licenses
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 Library
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.
- 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.
- 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.
- 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.
- 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.
- 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.
- gen_circle_sector, gen_ellipse_sector, create_drawing_object_circle_sector, and create_drawing_object_ellipse_sector might return slightly different results.
- get_calib_data for ItemType set to ‘camera’ and DataName set to ‘params_deviations’ or ‘params_covariances’ sometimes returns different results.
- 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.
- 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. 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.
- set_bar_code_param now throws an exception, if ‘element_size_min’ and ‘element_size_max’ are inconsistent.
- 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’.
- 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’).
- 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.
- 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.
HALCON Applications
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.
Discontinuation of the GigEVision Interface
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
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/.
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.