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

Release Notes for HALCON 22.11.2.0 Steady

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

Compatibility

Licenses

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

HALCON Library

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

  • If the augmentation method 'saturation_variation' was already used as input of augment_dl_samples in a training script for Deep OCR recognition models, then the script will fail in a newer HALCON version. In order to make the script work, the key 'saturation_variation' has to be removed from the input dictionary. More information.
  • get_calib_data for ItemType='calib_obj_pose' sometimes did not raise an error when the calib_obj_pose was missing from the data, or returned the error 8458 ("Invalid calibration object index"). get_calib_data now returns the error 8459 ("Invalid calibration object pose index"). More information.
  • Applications using the Hpar f union member can safely be modified to use the binary compatible d member. Any usage of the macro FLOAT_PAR can safely be replaced with the identical macro DOUBLE_PAR. More information.
  • Trainings using the 'pretrained_dl_classifier_resnet18.hdl' model may have slightly different results compared to previous releases. More information.

HALCON Applications

Applications (i.e. executables) developed with HALCON 22.11 Steady or HALCON 22.11.1 can be used with HALCON 22.11.2.0 Steady, i.e. HALCON 22.11.2.0 Steady is binary compatible with HALCON 22.11 Steady and HALCON 22.11.1.

All programs (C, C++ or .NET) that have been developed with HALCON 20.11 must be recompiled. The incompatibility with HALCON 20.11 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 22.11 Steady and HALCON 22.11.1, respectively.

Please note that applications using HALCON/.NET (and HDevEngine/.NET) have local copies of the corresponding assemblies (halcondotnet.dll etc.). After installing HALCON 22.11.2.0 Steady, 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

In general, image acquisition interfaces of HALCON 22.11.2.0 Steady are library compatible to those of HALCON 22.11 Steady and HALCON 22.11.1, as well as HALCON 20.11.

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

Digital I/O Interfaces

In general, digital I/O interfaces of HALCON 22.11.2.0 Steady are library compatible to those of HALCON 22.11 Steady and HALCON 22.11.1, as well as HALCON 20.11.

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

Extension Packages

Extension packages developed with HALCON 22.11 Steady or HALCON 22.11.1 can be used with HALCON 22.11.2.0 Steady without further action. Extension packages developed with HALCON 20.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.

Legacy or No Longer Supported Functionality

The following functionality may be discontinued in a future major release:

See the reference manual entries of legacy operators for details on how to replace them.

Discontinuation of the x86-win32 Platform Version for Windows

With HALCON 20.11, the x86-win32 platform version for Windows is discontinued. Switch any existing x86-win32 applications to the x64-win64 platform version for Windows to be able to use HALCON 20.11.

Supported Operating Systems

Windows

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

Linux

HALCON 22.11.2.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 with SSE2 (AVX2 dispatch) 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 with AArch64 support

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

macOS

HALCON 22.11.2.0 Steady has been compiled for the x64 platform version of macOS 11, macOS 12 on Intel 64 with SSE2.

Detailed Description of Changes in HALCON 22.11.2.0 Steady

The changes in HALCON 22.11.2.0 Steady are described with respect to HALCON 22.11.1 Steady.

HDevelop

New Functionality

Miscellaneous
  • The design of the HDevelop close buttons in tabs has been improved. The close buttons in HDevelop now look the same in all widgets.

Bug Fixes

Assistants
  • In the Calibration Assistant, user-defined calibration did not reactivate previously excluded parameters. This problem has been fixed.
  • Manually entering or editing fuzzy values in the measure assistant did not work. This problem has been fixed.
  • Using a line profile dialog associated with a measure assistant did not work under Windows. This problem has been fixed.
Code Export
  • Dictionary expressions in conditionals of block statements could lead to incorrect code export in some cases. This problem has been fixed.
GUI
  • The graphics windows appeared to be pushed to the top left corner within the canvas upon maximizing and restoring. 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.
  • The labels of the x- and y-axis of the Function Inspect window were not visible in the dark theme. This problem has been fixed.
  • When displaying a small image, it did not fit correctly to the window while resizing. It either was displayed too large, and parts were clipped, or too small, causing black borders to appear. This problem has been fixed.
  • The tooltip color of the autocompletion was not correct after a theme change. This problem has been fixed.
  • Zoom out via the '-' button did not work, if the zoom factor was at the maximum value. 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.
  • Autocompletion in the program editor was slow. This problem has been fixed.
  • The autocompletion was hidden after pressing the left or right arrow keys. This problem has been fixed.
  • Some modal dialogs appeared as sheets on Mac OS X despite not being designed for it. This caused usability and layout issues and in rare cases even a crash. This problem has been fixed.
  • An updated iconic variable within a dict was not immediately displayed in the graphics window. This problem has been fixed. The graphics window is now updated, once the user clicks on the iconic variable in the Handle Inspect Widget.
  • 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.
  • In some cases, HDevelop notified that a new software update is available even if the version was up-to-date. This problem has been fixed.
  • dev_open_tool, did not consider the origin of coordinates while opening the tool. The tool was always opened with respect to the primary screen. This problem has been fixed. dev_open_tool now considers the selected origin while opening the tools.
  • In rare cases, it took very long until the dialog Attach To Process was shown. This problem has been fixed.
  • If the display was set to a scaling other than 100%, lines in the Object Model 3D Inspect Window were cut off in rare cases. This problem has been fixed.
Help
  • The documentation of the Extension Package operator did not appear in the HDevelop help window. This problem has been fixed.
Procedures
  • Reusing an existing parameter name, in the procedure interface dialog, caused an invalid renaming. This problem has been fixed.
  • Creating a procedure, using dictionary or vector access expressions from selection, did not always determine the proper input parameters for code. This problem has been fixed.
  • The procedure read_dl_dataset_ocr_recognition did not use additional text classes that can be defined in a Deep OCR project of the Deep Learning Tool (DLT). 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.
  • The autocompletion sometimes suggested the framegrabber interface where it was not applicable. This problem has been fixed.
  • Opening the read image dialog after checking the option to show low-level errors (Preference > General Options > Experienced User) led to an error. Further, opening HDevelop with an image as parameter from a Linux shell threw a low-level error. These problems have 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.
  • In rare cases, the program window could enter an inconsistent state causing erratic behavior and coloring as well as corruption of the currently edited procedure body in the HDEV/HDVP/HDPL file. While the root cause of this issue has not yet been identified with certainty, several mitigating fixes have been implemented that reduce both the probability and the impact of such an event. In particular, one potential problem involving typing with an open handle inspect widget has been fixed. Also, there is now defensive early detection of an internal inconsistent state in the editor, which allows saving a plain text backup copy of the current editor contents prior to potential corruption.
  • HDevelop crashed during the attempt to auto complete an inactive line with the TAB key. This problem has been fixed.
  • HDevelop could crash when canceling the loading of a program, while the start dialog was open. This problem has been fixed.

HDevelop Example Programs

Bug Fixes
  • 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 hdevelop/OCR/Deep-OCR/deep_ocr_recognition_training_workflow.hdev did not use the proper test images in step 5.) DEEP OCR INTEGRATION AND INFERENCE. 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.

HDevEngine

Bug Fixes

  • Loading or writing a procedure using dynamic dictionary keys caused a very small one-time memory leak. This problem has been fixed.
  • In some cases, calling operators that return iconic values could lead to a memory leak in JIT-compiled procedures. This problem has been fixed.

HALCON Library

New Functionality

Bar Code
  • The new GS1 Application Identifiers 7241 (AIDC MEDIA TYPE) and 7242 (VCN) are now supported.
Data Code
  • The print quality inspection of direct part marked codes now supports continuous grading according to ISO/IEC 29158 by using the new get_data_code_2d_results parameter 'quality_isoiec29158_float_grades' for the following code types:
    Data Matrix ECC 200, QR Code, Micro QR Code, Aztec Code
    Additionally, the parameters
    • quality_isoiec_tr_29158
    • quality_isoiec_tr_29158_labels
    • quality_isoiec_tr_29158_values
    • quality_isoiec_tr_29158_rows
    • quality_isoiec_tr_29158_cols
    • quality_isoiec_tr_29158_intermediate
    • quality_isoiec_tr_29158_intermediate_labels
    • quality_isoiec_tr_29158_intermediate_values
    • quality_isoiec_tr_29158_reflectance_margin_module_grades
    are renamed to
    • quality_isoiec29158
    • quality_isoiec29158_labels
    • quality_isoiec29158_values
    • quality_isoiec29158_rows
    • quality_isoiec29158_cols
    • quality_isoiec29158_intermediate
    • quality_isoiec29158_intermediate_labels
    • quality_isoiec29158_intermediate_values
    • quality_isoiec29158_reflectance_margin_module_grades
    preserving backward compatibility.
    The debug procedures grade_data_code_2d and dev_display_data_code_2d_print_quality_results now use 'isoiec29158' as input for the parameter 'Standard' and 'QualityStandard', respectively. This also preserves backward compatibility.
  • It is now possible to set the list of supported GS1 Application Identifiers by providing the syntax dictionary, which can be obtained from https://ref.gs1.org/tools/gs1-barcode-syntax-resource/syntax-dictionary/, to the new set_system parameter 'gs1_syntax_dictionary'.
  • The new GS1 Application Identifiers 7241 (AIDC MEDIA TYPE) and 7242 (VCN) are now supported.
Miscellaneous
  • The Hpar f union was declared legacy since HALCON 11.0 and has been removed. Furthermore, the macro FLOAT_PAR has been removed. Note that this change affects the compatibility. Read more.
  • The version of OpenSSL shipped with HALCON has been updated to 1.1.1s.
System
  • On Windows, HALCON 22.11 added usage of the mimalloc memory allocator (see https://microsoft.github.io/mimalloc for more details) to improve performance in some specific cases. However, this change increased overall memory consumption for all cases. As a result, mimalloc can now be disabled with set_system's new 'memory_allocator' parameter. Additionally, the mimalloc memory allocator is now also available for Linux.

Bug Fixes

3D
Bar Code
  • 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
  • Due to an insufficiency of the reference decode algorithm for rectangular Data Matrix ECC 200 codes with a small number of modules in the short direction (e.g., 8x..), print quality inspection (ISO/IEC 15415) with 'quality_isoiec15415_decode_algorithm' set to 'reference' could have failed, even for nearly perfect codes. 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.
  • find_data_code_2d, gray_closing_shape, gray_dilation_shape, gray_erosion_shape, and gray_opening_shape showed a significant slowdown on armv7a and aarch64. This problem has been fixed.
  • The reference decoding algorithm, which can be activated via set_data_code_2d_param using the generic parameter 'quality_isoiec15415_decode_algorithm' and the associated value 'reference', did not inform the user in case that the grid determination failed, but instead used a fallback mechanism leading to a fixed grid. This problem has been fixed. Now, quality grades equal to -1 will be returned if the reference decoding algorithm is not applicable. In these cases, we suggest using the 'robust' mode instead.
  • 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.
  • If 'mirrored' was set to 'any' via set_data_code_2d_param, get_data_code_2d_objects returned incorrect 'module_0_rois' and 'module_1_rois' for non-decodable QR-code candidates. 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.
  • In rare cases, get_data_code_2d_results leaked memory for the parameter 'quality_isoiec15415_additional_reflectance_check'. This problem has been fixed.
  • For DotCode symbols, find_data_code_2d could run into an internal error due to an insufficient number of chords (error 3513, "Internal error: number of chords too big for num_max"). This problem has been fixed.
Deep Learning
  • Saving HALCON Deep OCR models in the variable window resulted in an unreadable file. This problem has been fixed.
  • The augmentation method 'saturation_variation', for Deep OCR recognition models, was wrongly supported by the procedure augment_dl_samples. This problem has been fixed. Note that this change affects the compatibility. Read more.
  • The procedures read_dl_dataset_anomaly and read_dl_dataset_segmentation could have failed for image directories, containing characters with special meaning in regular expressions. This problem has been fixed.
  • If a deep learning dataset contained big numbers as class IDs some procedures have used too much memory. The following procedures have been affected by this issue: read_dl_dataset_from_coco, split_dl_dataset. This problem has been fixed. The public procedure create_dl_class_id_mapping has been added to support a memory efficient mapping of class IDs even if the IDs are big integer values.
  • The procedure check_dl_gc_anomaly_scores_normalization threw the error 2105 ("Access to undefined gray value component") if it was called for a model that had been optimized with optimize_dl_model_for_inference. This problem has been fixed.
  • The classification model 'pretrained_dl_classifier_resnet18.hdl' had slightly inconsistent initial values for the batch norm statistics. This should not have been a problem in applications, because the batch norm statistics are learned during finetuning to fit the new custom domain. This problem has been fixed. Note that this change affects the compatibility. Read more.
  • If apply_deep_ocr was aborted due to a timeout or a break event, there could have been a memory leak. This leak only occurred if the parameter 'tiling' of the Deep OCR handle was set to 'true'. This problem has been fixed.
  • read_dl_model leaked memory in some error cases. This problem has been fixed.
  • train_dl_model_batch leaked memory if a model with a permutation layer was trained on the CPU. This problem has been fixed.
File
  • An open file descriptor did not get closed and has been leaked, when an error occurred while using read_memory_block. This problem has been fixed.
  • write_image_metadata leaked memory when EXIF tags were written to a TIFF file. Furthermore, read_image_metadata leaked memory when reading a tuple of tags and at least one tag could not be read. These problems have been fixed.
Filter
  • 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.
  • gen_filter_mask leaked memory in case of an error. This problem has been fixed.
Graphics
  • 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.
  • For dev_set_draw_mode('margin'), the visualization of regions is limited to their contours. This interacted badly with the new pixel-grid feature, which overlayed the region contours and made them hard to see. This problem has been fixed.
  • 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.
Images
  • 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.
  • 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
Region
  • 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").
  • inner_rectangle1 sometimes returned different results than in previous HALCON versions. This problem has been fixed.
System
  • open_socket_connect leaked memory when resolving the given hostname failed. This problem has been fixed.
  • send_data did not allow sending data over unbound UDP sockets on Windows. This problem has been fixed.
Tools
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.
  • The HDevelop User's Guide did not state, how handling large tuples in dicts, using dict access expressions, can increase the runtime. This problem has been fixed.
XLD

Procedures

Bug Fixes

  • The procedure gen_dl_samples did not throw an error if images containing multiple objects were processed. This could have caused subsequent errors in other procedures that do not support this kind of images. This problem has been fixed. Now, gen_dl_samples throws a corresponding error for images with multiple objects.

HALCON/PYTHON

Bug Fixes

  • Using iconic output in multidimensional vectors and get_global_iconic_var in HDevEngine/Python caused a memory leak. This problem has been fixed.

Language Interface Example Programs

Bug Fixes

  • The c#/IACallback/dotnetcore31 example was incorrectly configured for a desktop application. This problem has been fixed.

HALCON Variable Inspect

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.
  • The VSIX for Visual Studio 2022 was not signed correctly, prompting the VSIX installer to display a message that the digital signature is invalid. This problem has been fixed.

Extension Packages

Bug Fixes

  • Visual Studio showed some compiler warnings when building the useropencl example. This problem has been fixed.
  • The documentation for gen_image_device_ptr in examples/extension_package/useropencl was missing. This problem has 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

  • The Installation Guide described invalid system requirements. The Deep OCR recognition component was declared to be trainable on CPUs. However, training for this component is only possible on GPUs. This problem has been fixed.
  • The description of the restart behavior of floating windows in the HDevelop User's Guide was unclear. This problem has been fixed.
  • When using two versions of HALCON and executing Variable Inspect, this could result in a licensing error. The Installation Guide has been updated describing how to avoid this error.
  • The operator precedences given in the HDevelop User's Guide were incorrect. 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 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 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 reference manual entry of find_generic_shape_model was not precise enough for the case of multiple image objects. 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 reference manual chapter for 2d transformations contained erroneous statements about pixel centered coordinates. 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 of get_dl_model_param did not state that changing the 'solver_type' of a DL model resets the model's 'learning_rate'. 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 documentation of the extended attributes of get_object_model_3d_params, set_object_model_3d_attrib, and remove_object_model_3d_attrib was not correct. This problem has been fixed.
  • The reference manual entry of image_to_memory_block now correctly lists 'png' as a supported image file format.
  • 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 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.

Miscellaneous

  • The HDevelop User's Guide did not state, how handling large tuples in dicts, using dict access expressions, can increase the runtime. This problem has been fixed.

Installation

  • The default location for examples and images on Windows for a current user installation was not searched automatically, requiring the environment variable HALCONEXAMPLES to be set externally. This problem has been fixed. Now, the path for "current user" and "for all users" are checked and the first available is used.

Miscellaneous

  • The program window did not always have focus on startup under Linux. This problem has been fixed.
  • The extension package examples did not limit symbol export for Linux, making it impossible to use multiple extension packages simultaneously. 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.

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