HALCON Progress Key Visual shows a person running at high speed
MVTec Software GmbH - Release Notes for HALCON 20.11.4.0

Release Notes for HALCON 20.11.4.0 Steady

This document provides the release notes for MVTec HALCON 20.11.4.0 Steady, as released in December 2023.

Compatibility

Licenses

HALCON 20.11 Steady licenses are also valid for HALCON 20.11.4.0 Steady. In contrast, all HALCON 18.11 licenses or licenses of earlier versions must be replaced or upgraded. Please contact your local distributor.

HALCON Library

HALCON 20.11.4.0 Steady is fully compatible with HALCON 20.11 Steady, HALCON 20.11.2, and HALCON 20.11.3 except for the changed behavior of some operators owing to bug fixes. Compared to HALCON 18.11, many extensions have been introduced. Thus, the HALCON 20.11 Steady libraries are not compatible with HALCON 18.11 or earlier versions. In detail, please note the following incompatibilities with respect to HALCON 20.11.3 :

HALCON Applications

Please re-compile all C, C++, or .NET programs developed with HALCON 20.11.3. The incompatibility with HALCON 20.11.3 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.

Image Acquisition Interfaces

In general, image acquisition interfaces of HALCON 20.11.4.0 Steady are library compatible to those of HALCON 20.11 Steady, HALCON 20.11.2, and HALCON 20.11.3, as well as HALCON 18.11.x.

HALCON 20.11.4.0 Steady includes only a subset of available image acquisition interfaces. Image acquisition interfaces that are included are: DirectFile, DirectShow, File, GenICamTL, GigEVision2, GStreamer, USB3Vision, and Video4Linux2. You can download additional interfaces from our web server.

Digital I/O Interfaces

In general, digital I/O interfaces of HALCON 20.11.4.0 Steady are library compatible to those of HALCON 20.11 Steady, HALCON 20.11.2, and HALCON 20.11.3, as well as HALCON 18.11.x.

HALCON 20.11.4.0 Steady includes only a subset of available digital I/O interfaces. Digital I/O interfaces that are included are: Linux-GPIO, OPC_UA, and Hilscher-cifX. You can download additional interfaces from our web server.

Extension Packages

Extension packages developed with HALCON 20.11 Steady, HALCON 20.11.2, or HALCON 20.11.3 can be used with HALCON 20.11.4.0 Steady without further action. Extension packages developed with HALCON 18.11 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.

Supported Operating Systems

Windows

HALCON 20.11.4.0 Steady has been compiled for the x64-win64 platform version for Windows 7/8.1/10 (x64 editions)/11 or Windows Server 2008 R2/2012 R2/2016/2019/2022 on Intel 64 or AMD 64 processors.

Linux

HALCON 20.11.4.0 Steady has been compiled for the following Linux platform versions:

  • x64 platform version for Linux x86_64, GLIBC_2.17, GLIBCXX_3.4.21, on Intel 64 or AMD 64 processors
  • armv7a platform version for Linux armv7a, Kernel with hidraw support, hard-float ABI, GLIBC_2.17, GLIBCXX_3.4.21 on Armv7-A processors with NEON support
  • aarch64 platform version for Linux aarch64, Kernel with hidraw support, GLIBC_2.17, GLIBCXX_3.4.21 on AArch64 processors

Please refer to the Installation Guide for detailed system requirements corresponding to the different Application Binary Interfaces.

macOS

HALCON 20.11.4.0 Steady has been compiled for the x64 platform version of macOS 10.15 on Intel 64.

Detailed Description of Changes in HALCON 20.11.4.0 Steady

The changes in HALCON 20.11.4.0 Steady are described with respect to HALCON 20.11.3 .

HDevelop

New Functionality

GUI
  • The visibility of check boxes in the dark theme of HDevelop has been improved.

Bug Fixes

Code Export
  • Using par_start with a global variable as thread ID could cause a crash in exported C code. This problem has been fixed.
  • The C export of dev_open_window did not work when the background color was not a constant value literal. This problem has been fixed.
GUI
  • Importing or exporting layout settings from the Preferences dialog caused a crash. This problem has been fixed.
  • Changing the active graphics window by clicking on the lamp icon did not always represent the correct state. This problem has been fixed.
  • The last column header of the tabs in the Quick Navigation window showed a white space upon resizing the window. This problem has been fixed.
  • Floating windows could be opened at invalid screen coordinates. This problem has been fixed.
  • When using HDevelop with the light theme, the separator line between the editor and the profiler was not shown. This problem has been fixed.
  • In rare cases (negative coordinates), floating windows were not opened on the correct display. This problem has been fixed.
  • The initial layout of the Create Procedure dialog was incorrect. This problem has been fixed. 
  • The multiple values for "Center" and "Bounding Box" were not properly displayed in the object model 3d inspect window. This problem has been fixed.
  • When connecting to Linux from Windows, it was possible that HDevelop lost its focus in some rare cases. This could cause unwanted shortcuts to be triggered or characters to be lost when editing an HDevelop program. This problem has been fixed.
Help
  • Pressing F1 did not properly bring up the help page for the Export Language, Read Image, Properties, and Print dialog. This problem has been fixed.
IDE
  • In rare cases, closing a 3D object model visualization window that was opened from inside a handle inspect window could crash HDevelop. This problem has been fixed.
Language
  • A program line with a C++ comment together with a line continuation did not work. This problem has been fixed. Now, the cases that worked before work again.
    read_image(Image, // my comment\
               'patras')
    
    However, combining C++ comments with line continuations is not recommended, as this does not work in all cases and can lead to runtime errors, such as in the case of string concatenations:
    a := 'pat' // my comment\
         'ras'
    
Procedures
  • In rare cases, adding a new parameter in HDevelop's Edit Procedure Interfaces dialog could cause additional, unnamed parameters and even crashes. This problem has been fixed.
  • Creating a new procedure from a code block containing invalid lines could cause a crash. This problem has been fixed.
Miscellaneous
  • The program window crashed when the tooltip for autocompletion was shown between two monitors, one scaled with 125% and the other with 150%. This problem has been fixed.
  • When using find_bar_code or find_data_code_2d with multiple threads within HDevelop, an automatic program stop could cause incorrect results. This problem has been fixed.
    When using display operations with multiple threads within HDevelop, an automatic program stop could cause error messages in rare cases. This problem has been fixed.
  • There could be a decrease in performance when two or more variable inspect widgets were tabbed together. This problem has been fixed.
  • In rare cases, restoring the window layout could crash HDevelop. This problem has been fixed.
  • It was possible to write code that opened a very large window. This could lead to a crash. This problem has been fixed. Now, the maximum width and height of a window is limited to 2^15.
  • HDevelop in some rare cases crashed while an inspection widget to select a specific iconic object was opened, and the displayed variable was modified by the running program. This problem has been fixed.
  • When using an HDevelop.ini file where the JSON-based entry 'MainWndDockingLayout_Canvas' has many children objects in the layout section, HDevelop took a long time to load this layout. This problem has been fixed.

HDevelop Example Programs

Bug Fixes
  • The HDevelop example program hdevelop/Calibration/Multi-View/calibrate_cameras_monocular.hdev in very rare cases raised an error. This problem has been fixed.
  • The example hdevelop/Calibration/Multi-View/check_calib_image_quality.hdev sometimes displayed a coordinate system of the calibration plate incorrectly. This problem has been fixed.
  • The example description for hdevelop/Tools/Geometry/angle_lx.hdev was wrong: The angle is calculated between the line and the horizontal axis (not the vertical axis). This problem has been fixed.
  • The HDevelop example mov_region.hdev was improved in regard to usability.

HDevEngine

Bug Fixes

  • In some cases, calling operators that return iconic values could lead to a memory leak in JIT-compiled procedures. This problem has been fixed.
  • Unloading an individual library procedure was not a well-defined operation and could cause a crash. This problem has been fixed. Now, calling UnloadProcedure on a library procedure implicitly unloads the entire library. Later attempts to create an HDevProcedure from one of the library procedures will reload the library.

HALCON Library

New Functionality

Bar Code
  • The new GS1 Application Identifiers 4330 (MAX TEMP F.), 4331 (MAX TEMP C.), 4332 (MIN TEMP F.), 4333 (MIN TEMP C.), and 8030 (DIGSIG) are now supported.
Data Code
  • The new GS1 Application Identifiers 4330 (MAX TEMP F.), 4331 (MAX TEMP C.), 4332 (MIN TEMP F.), 4333 (MIN TEMP C.), and 8030 (DIGSIG) are now supported.

Bug Fixes

3D
Bar Code
  • The barcode reader did not decode Code 128 codes containing Latin-1 characters correctly. This problem has been fixed.
  • The computation of decodability of UPC-A, UPC-E, EAN-13, and EAN-8 codes was incorrect due to an erroneous description in ISO/IEC 15420. The decodability of guard patterns was affected by this problem, such that perfectly printed codes never achieved a decodability of close to 100%. This problem has been fixed.
  • GS1 codes with two-digit application identifiers and only one-digit content were not decoded correctly. This problem has been fixed.
  • In some cases, find_bar_code in training mode, get_bar_code_result, and get_bar_code_object leaked memory if 'merge_scanlines' decoding attempts were enabled. This problem has been fixed.
  • find_bar_code could leak memory in error, timeout, or other interruption cases. This problem has been fixed.
  • In very rare cases, it could happen that find_bar_code did not consider all successfully decoded results for the composite code detection, if 'composite_code' was set to 'CC-A/B'. This problem has been fixed.
Calibration
  • calibrate_hand_eye sometimes did not raise an error when a needed calib_obj_pose was missing from the data but returned a wrong result. get_calib_data sometimes did not raise an error when a needed calib_obj_pose was missing from the data or returned the error 8458 ("Invalid calibration object index"). Now, calibrate_hand_eye returns the error 8467 ("Incomplete observation data"), get_calib_data returns the error 8459 ("Invalid calibration object pose index"). This problem has been fixed. Note that this change affects the compatibility. Read more.
  • get_calib_data sometimes returned wrong or undefined results when DataName was an array with more than one entry, containing 'hand_eye_calib_error'. This problem has been fixed.
  • The HDevelop example program hdevelop/Applications/Robot-Vision/pick_and_place_with_2d_matching_moving_cam.hdev did not correctly rectify the model images for matching and robot approach poses. This problem has been fixed.
  • binocular_calibration, get_calib_data, and set_calib_data_calib_object leaked memory in some error cases. This problem has been fixed.
  • query_calib_data_observ_indices could leak memory if the results were empty. This problem has been fixed.
  • find_calib_object leaked memory in case of an error. This problem has been fixed.
  • find_calib_object leaked a small amount of memory in some cases. This problem has been fixed.
  • set_stereo_model_image_pairs leaked memory in some error cases. This problem has been fixed.
Classification
Color Processing
Data Code
  • The DotCode reader did not decode small codes if the image dimension were very large. This problem has been fixed.
  • In some cases, get_data_code_2d_results returned incorrect ECC 200 intermediate quality results if the symbol region including the quiet zone was not fully inside the image and results for different quality standards had been queried. Further, some ECC 200 intermediate quality results queried with get_data_code_2d_results could differ from those visible in the handle inspect in those cases. These problems have been fixed.
  • In rare cases, get_data_code_2d_results could return wrong values for 'module_height' and/or 'module_width' when a DotCode symbol was decoded successfully. This problem has been fixed.
  • The calculation of the notional Unused Error Correction grade as part of the modulation and reflectance margin grading for Data Matrix ECC 200 symbols during the print quality inspection was incorrect. The issue was limited to small Data Matrix ECC 200 symbol sizes, i.e., 10x10, 12x12, 8x18 and 8x32. These sizes need a special treatment according to ISO/IEC 16022. This problem has been fixed.
  • In rare cases, the assessment of the axial non-uniformity of Data Matrix ECC 200 symbols could lead to slightly wrong results due to a small difference compared to Annex R.3 of ISO/IEC 16022:2006. This problem has been fixed.
  • For 144x144 Data Matrix ECC 200 symbols, the reflectance margin and modulation grading did not account for the different block sizes of this symbol type. This problem has been fixed.
  • The DotCode reader returned negative numbers for Latin-1 codepoints in 'decoded_data' of get_data_code_2d_results. This problem has been fixed.
  • The part concerning Annex M.1.2 “Grading of the outside L of fixed pattern” of ISO/IEC 16022:2006/Cor 1:2008 was not implemented. In rare cases, this could lead to wrong Fixed Pattern Damage grades – following the original standard without corrigendum – for the Data Matrix ECC 200 symbol. This problem has been fixed.
  • In rare cases, the 'clock track damage' and 'solid fixed pattern' intermediate grades and values, which can be queried via get_data_code_2d_results using the 'quality_isoiec15415_intermediate' and 'quality_isoiec15415_intermediate_values' parameters, did not always report the worst grades and values leading to the final Fixed Pattern Damage grade for Data Matrix ECC 200 symbols. This problem has been fixed. This issue had no implication on the final grading.
  • Due to an ambiguity in ISO/IEC16022:2006, there are two distinct ways a Data Matrix ECC 200 data code of size 144x144 can be encoded. HALCON is now able to decode both variants properly.
  • In rare cases, find_data_code_2d returned duplicate DotCode results. This problem has been fixed.
  • set_data_code_2d_param and find_data_code_2d accept strings as input for many numerical or boolean GenParamValues. However, the internal conversion mechanism did not reliably catch all conversion errors. This problem has been fixed. Additionally, for the DotCode, the error codes of find_data_code_2d have been changed if a wrong GenParamName or wrong GenParamValue are used. The new error codes are in accordance with the other 2D symbols: a wrong value leads to 8830 ("Invalid parameter value") and a wrong name to 8831 ("Unknown parameter name").
  • set_data_code_2d_param and find_data_code_2d accepted values of different types, which could lead to an overflow, unexpected narrowing conversion, or were simply not supported. However, the internal parsing mechanism did not reliably catch all errors. This problem has been fixed. Now, an extended error message will be thrown informing the user about bad input values.
  • GS1 codes with two-digit application identifiers and only one-digit content were not decoded correctly. This problem has been fixed.
  • The Data Matrix ECC 200 code reader had a problem detecting the correct symbol size for codes with strongly different module dimensions. The mentioned issue could also impact print quality results. This problem has been fixed.
  • The MicroQR code reader crashed in rare cases. This problem has been fixed.
  • The DotCode reader may have rejected good candidates due to too few dots located at the symbol boundary. This problem has been fixed.
  • The QR code reader crashed in rare cases. This problem has been fixed.
  • For DotCode symbols, find_data_code_2d leaked memory when called in training mode. This problem has been fixed.
  • read_data_code_2d_model leaked memory when reading model files generated with HALCON 6.1 or earlier. This problem has been fixed.
  • find_data_code_2d in some cases caused a memory leak in subsequent operator calls for Aztec Code symbols when used in training mode. This problem has been fixed.
  • In some cases, find_bar_code in training mode, get_bar_code_result, and get_bar_code_object leaked memory if 'merge_scanlines' decoding attempts were enabled. This problem has been fixed.
  • find_data_code_2d leaked a small amount of memory for Aztec Codes. This problem has been fixed.
  • For DotCode symbols, find_data_code_2d could run into the internal error 3513 ("Internal error: number of chords too big for num_max") due to an insufficient number of chords. This problem has been fixed.
Deep Learning
  • apply_dl_model and train_dl_model could crash for runtime 'cpu' if the deep learning model was initialized in another thread. This problem has been fixed.
  • set_dl_model_param could cause memory leaks when setting the parameter 'device' to a GPU device with insufficient GPU memory. This problem has been fixed.
  • apply_dl_model could crash if any of the deep learning model parameters 'fuse_conv_relu' or 'fuse_bn_relu' was set to 'true' after the model runtime was initialized. This problem has been fixed.
  • In very rare cases, using AVX2 with parallelization could lead to non-reproducible results for several operators. This problem has been fixed.
  • Using apply_deep_ocr and write_deep_ocr with the same model simultaneously in different threads could lead to a crash. This problem has been fixed.
  • set_dl_model_param could have lead to a crash for models with big image dimensions when setting 'runtime' to 'cpu', or 'device' to a CPU device. This problem has been fixed.
  • In very rare cases, apply_dl_model and train_dl_model_batch could have slowed down significantly on CPU devices if not all processors were available to the device. This problem has been fixed.
  • Saving HALCON Deep OCR models in the variable window resulted in an unreadable file. This problem has been fixed.
  • read_dl_model leaked memory in some error cases. This problem has been fixed.
Filter
  • projective_trans_image calculated the image area incorrectly in case of specific image sizes and bilinear interpolation. This problem has been fixed.
  • zoom_image_factor and zoom_image_size with the interpolation method 'constant' could produce unwanted interpolation artifacts (vertical or horizontal lines) for large byte images. This problem has been fixed. Now, the results might differ slightly (± 1) for some pixels. Apart from zoom_image_factor and zoom_image_size, the operators apply_dl_model, gen_gauss_pyramid, find_data_code_2d, text_line_orientation, and adapt_shape_model_high_noise might also produce slightly different results.
  • Channel-based automatic operator parallelization did not work correctly when processing arrays of multi-channel images. This problem has been fixed.
  • optical_flow_mg returned the same VectorField when multiple images with the same reference were passed as input images, even when the other input images were different. This problem has been fixed.
  • zoom_image_size returned incorrect results for Interpolation 'weighted' on int2, uint2, and real images. Specifically, the 'constant' interpolation method was used instead of the required 'weighted' method. This problem has been fixed. Now, the correct interpolation method is used for all image types.
  • edges_image could leak memory when using the Deriche filters. This problem has been fixed.
  • gen_filter_mask leaked memory in case of an error. This problem has been fixed.
  • In rare cases, convol_image could raise error 3513 ("Internal error: number of chords too big for num_max") for non-rectangular input regions. This problem has been fixed.
Graphics
  • dump_window_image did not set the timestamp of the returned image correctly. This problem has been fixed.
  • read_string returned an exception when the last character was deleted. This problem has been fixed.
  • In buffer windows and in HDevelop graphics windows, get_mposition(_subpix) returned the state of the modifier keys even if no mouse button was pressed. This problem has been fixed and get_mposition(_subpix) now does not return the state of the modifier keys in this case.
  • draw_nurbs and draw_nurbs_mod leaked memory. This problem has been fixed.
  • Displaying a scene containing a cylinder model with display_scene_3d or render_scene_3d leaked this model. This problem has been fixed.
  • HALCON could crash when displaying large vector fields with disp_obj or dev_display. This problem has been fixed.
  • Using the 'pixmap' or 'PostScript' window type leaked memory when HALCON was loaded and unloaded. This problem has been fixed.
  • set_drawing_object_params returned an error for very small rectangular drawing objects. This problem has been fixed.
    Further, the signature of drawing object callback functions has not been updated to HALCON handles in the reference documentation. This problem has been fixed.
Inspection
Images
  • crop_domain, crop_domain_rel, crop_part, crop_rectangle1, and crop_rectangle2 crashed for very large image sizes. This problem has been fixed.
  • zoom_image_factor was performing erroneous calculations for very big images in HALCON XL due to floating point errors. This problem has been fixed.
  • convert_image_type could crash for very large images in HALCON XL on 64-bit systems. This problem has been fixed.
  • convert_image_type rounded complex numbers incorrectly to signed integer types. This led to wrong conversion results for complex images with negative real part values. This problem has been fixed.
  • The operator cooc_feature_matrix leaked small amounts of memory when an internal error occured. This problem has been fixed.
  • convert_image_type could overflow during the conversion from 'float'/'complex' type to signed integer types. This problem has been fixed.
  • convert_image_type did not clip the lower bound value of -0.5 for the type conversion from 'float'/'complex' to 'direction'. This problem has been fixed.
Matching
Matrix
  • read_matrix had difficulties reading matrices from ASCII files, which under certain cases could lead to not reading the file or reading wrong numbers. This problem has been fixed.
Miscellaneous
Morphology
OCR
  • In very rare cases, using AVX2 with parallelization could lead to non-reproducible results for several operators. This problem has been fixed.
  • trainf_ocr_class_box leaked memory in case of an error. This problem has been fixed.
  • read_ocr_trainf leaked memory in case of an error. This problem has been fixed.
  • read_ocr_trainf_select leaked memory in case of an error. This problem has been fixed.
  • trainf_ocr_class_mlp leaked memory in case of an error. This problem has been fixed.
  • select_characters could leak memory if 'punctuation' was set to 'true'. This problem has been fixed.
  • find_text for a text model of mode 'manual' could leak memory inside the text result after calling clear_text_result, if 'manual_persistence' was set to 'true'. This problem has been fixed.
  • read_ocr_trainf_names and read_ocr_trainf_names_protected leaked memory in case of an error. This problem has been fixed.
  • create_ocr_class_svm returned the error 6006 ("Tmp-memory management: could not find memory element") if the input tuple 'Characters' contained duplicates. This problem has been fixed. Now, the correct error 1305 ("Wrong value of control parameter 5") is returned.
Parallelization
  • hcheck_parallel did not correctly report the name of the file to which the parallelization information is written. This problem has been fixed.
Region
  • zoom_region in rare cases returned the error 3513 ("Internal error: number of chords too big for num_max"). This problem has been fixed.
  • gen_ellipse did not generate a full ellipse for some orientations. A very small sector was missing in this case. This problem has been fixed.
  • get_region_convex returned indeterministic results for regions that consist of a single pixel. This problem has been fixed. Now, the correct convex hull, i.e. row and column of the region pixel, is returned.
  • sort_region did not check the value of the input Order and RowOrCol. This problem has been fixed. Now, sort_region returns the error 1302 ("Wrong value of control parameter 2") and 1303 ("Wrong value of control parameter 3").
  • expand_region, expand_gray, and expand_gray_ref did not respect the setting of the 'clip_region' system parameter and always behaved as if it were 'true'. This problem has been fixed.
  • In rare cases, HALCON operators with multiple output control parameters could crash in case of an error. The problem could only occur on systems with multiple CPUs if HALCON is used with automatic operator parallelization, and only in HALCON versions 23.05 and 22.11.2. This problem has been fixed.
System
  • open_socket_connect leaked memory when resolving the given hostname failed. This problem has been fixed.
Transformation
Tuple
  • Processing tuples that contained NaN elements with tuple_select_rank or tuple_median resulted in a crash under certain conditions. This problem has been fixed.
  • Integer tuple elements smaller than INT32_MIN were not properly handled by serialize_tuple. This problem has been fixed.
XLD

Language Interface Example Programs

Bug Fixes

  • In the reference manual entries of dev_set_preferences and dev_get_preferences, as well as in the HDevelop and HDevEngine example test_jit_speedup.hdev, the HDevelop preference dialog was incorrectly named "Experienced Users" instead of "Experienced User". This problem has been fixed.

HALCON Variable Inspect

Functionality

  • There is now a HALCON Variable Inspect for Visual Studio 2022 and later.

Bug Fixes

  • Displaying HALCON data in the HALCON Variable Inspect could stop working after opening and running multiple projects in Visual Studio. This problem has been fixed. Further, the issue of larger data (e.g., big images) not being shown has mostly been fixed.

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.

Digital I/O Interfaces

The latest information about new interface revisions and newly supported digital I/O interfaces can be found on MVTec's web server. Please refer to the release notes within the documentation of the individual digital I/O interfaces for information about improvements, bugfixes, or whether a new revision of the corresponding device driver is required.

Miscellaneous

  • If two threads attempted to open an I/O interface simultaneously, the HIOInit function of the interface could be called concurrently. This problem has been fixed.

Documentation

User Guides

  • In the Installation Guide, it was difficult to locate the description of the option for silent installation. This problem has been fixed.
  • The operator precedences given in the HDevelop User's Guide were incorrect. This problem has been fixed.

Solution Guides

  • In the Solution Guide III-C, the section on depth from focus stated a wrong order of focus levels (sharp, blurred, sharp instead of blurred, sharp, blurred) within its four rules that define how the measurement range can be acquired. This problem has been fixed.

Reference Manual

  • The reference manual entry of apply_bead_inspection_model did not state that the image domain is ignored. This problem has been fixed.
  • The reference manual entry for channels_to_image did not state the memory allocation behavior for images of different dimensions. This problem has been fixed.
  • The reference manual entries of several operators (like create_pose or threshold) now provide a C++ code example.
  • The reference manual entry of dev_inspect_ctrl did not state that expressions within the operator call are not evaluated. This problem has been fixed.
  • The reference manual entry of visualize_object_model_3d did not mention that camera parameters are adapted to fit within the window size (in case that camera parameters are given).
    The reference manual entries of disp_object_model_3d, display_scene_3d, and visualize_object_model_3d did not mention that sometimes the aspect ratios of window handle and camera parameters should be similar to obtain the intended results. This problem has been fixed.
  • The German reference manual entry of erosion_rectangle1 did not state correctly how an image would be affected by the erosion operation if Width and Height were not odd numbers. This problem has been fixed.
  • The German reference manual entry of find_planar_uncalib_deformable_model was missing the paragraph on output parameters in detail. This problem has been fixed.
  • The reference manual chapter for deep-learning-based object detection missed the normalization factor in the SoAP formula. This problem has been fixed.
  • The German reference manual entries of get_data_code_2d_param and set_data_code_2d_param missed the sections specific for Micro QR Codes. This problem has been fixed.
  • The relationship between the order of 'bin_module_data' and the modules, for 2D-datacodes, accessible via 'module_1_rois' and 'module_0_rois' was not well documented. This problem has been fixed. For more information, see the reference manual entries of get_data_code_2d_results and get_data_code_2d_objects.
  • The reference manual entry for get_mbutton and get_mbutton_sub_pix suggested that pressing multiple mouse buttons would be summed up and returned in 'Button'. This problem has been fixed.
  • The reference manual entries of get_object_model_3d_params and select_object_model_3d contained incomplete value lists. This problem has been fixed.
  • The reference manual entry of get_system erroneously stated that trailing zeros are omitted for the parameter 'file_version'. This problem has been fixed.
  • The reference manual entry for hom_mat2d_translate listed a non-applicable example in the list of possible application examples. This problem has been fixed.
  • The reference manual entries for hough_lines and hough_lines_dir were not clear regarding the parameters 'AngleGap' and 'DistGap'. This problem has been fixed.
  • The reference manual entry of rigid_trans_object_model_3d did not correctly mention all non-modified attributes. This problem has been fixed.
  • The reference manual entry for segment_contours_xld did not clearly state that for Mode 'lines' MaxLineDist2 is ignored. This problem has been fixed.
  • The reference manual entry for set_calib_data_calib_object suggested invalid values for the parameter 'CalibObjDescr'. This problem has been fixed.
  • The German reference manual entry of set_metrology_object_param falsely stated that a transition from light to dark gray values defines a positive edge (and vice versa for negative edges). In fact, it is the other way around. This problem has been fixed.
  • The reference manual entries of set_generic_shape_model_param, set_shape_model_param, and set_system did not clearly state for the parameter 'border_shape_models' how much a match instance may be outside the search image to still be found. This problem has been fixed.
  • The reference manual entry of set_spy stated that the output on stdout does not work with HDevelop. As this works if HDevelop is used with the console, the statement was invalid. This problem has been fixed.
  • The reference manual entry of set_system missed mentioning the parameter 'do_low_error' as exclusive. This problem has been fixed.
  • The reference manual entry of set_system stated that 'shared' is supported for the parameter 'global_mem_cache'. However, the 'shared' mode does not have an effect anymore, and is set to 'exclusive' internally to avoid breaking compatibility. The parameter documentation has been adjusted accordingly. This problem has been fixed.
  • The reference manual entry for surface_normals_object_model_3d incorrectly stated that a 5x5 mask was used when using the xyz_mapping method. In fact an 11x11 mask is used. This problem has been fixed.
  • The documentation for unlock_mutex incorrectly claimed that attempting to unlock a mutex that is not locked has no effect. This problem has been fixed.
  • The reference manual entry for write_tuple did not properly explain what happens when writing a tuple that contains handles. This problem has been fixed. The documentation now correctly states that handles are replaced by zeroes.

Miscellaneous

  • The Third-Party Copyrights page now contains links to the corresponding software location.

Installation

  • The .profile_halcon file created by the HALCON installer did not set LD_LIBRARY_PATH correctly if LD_LIBRARY_PATH was either empty or unset prior to sourcing .profile_halcon. This problem has been fixed.
  • The registration and deregistration of environment variables did not always work correctly when installing HALCON via SOM. This problem has been fixed.
  • Some HALCON SOM package descriptions were not localized. This problem has been fixed.

Licensing

  • The grace period for embedded evaluation and student licenses was not handled correctly. This problem has been fixed.
  • On Windows, the check whether the HALCON dongle is still present did not work reliably if CodeMeter Runtime was running on the system. This problem has been fixed.

Miscellaneous

  • The project file in the vs2005 directory of the example c#/HDevelopTemplate was not actually in a proper Visual Studio 2005 format. This problem has been fixed.
  • hrun leaked small amounts of memory if the option -t was used. Additionally the same problem applied to examples/arm-linux/hrun.cpp These problems have been fixed.
  • hrun and hpeek leaked small amounts of memory if the option -D was used. Additionally, the same problem applied to examples/arm-linux/hrun.cpp These problems have been fixed.
  • gen_grid_rectification_map leaked memory in some error cases. This problem has been fixed.
  • gen_projective_mosaic returned an image that had an overflow of the gray value for some pixels. This problem has been fixed.
  • gen_projective_mosaic returned an output image that was one pixel larger than the input image when using just one input image and identity transformation. This problem has been fixed.

Follow this link to read about the changes of previous HALCON versions.