With HALCON 26.05, automatic contour optimization for shape-based matching (SBM) enables users to automatically remove unstable or misleading contours from SBM models. Reflections, shadows, or random texture often introduce unreliable contours that reduce matching robustness and require labor-intensive manual cleanup. With the new feature, users simply provide sample images of real object instances. Based on these samples, the system analyzes which contours appear consistently across variations and retains only the stable contours while removing unreliable ones.
By focusing the model on robust contours only, matching becomes faster, more stable, and more accurate. The feature replaces time-consuming manual contour editing with a data-driven optimization step during model training. It is particularly valuable for reflective or textured objects, such as mechanical or electronic components, and for automation scenarios like feeder-based pick-and-place systems where stable matching is critical. The automated optimization also reduces the effort for retraining models when new objects are introduced, making inline retooling more practical in production environments.
HALCON 26.05 expands its code reader with Data Matrix rectification, enabling reliable reading of Data Matrix codes even when they appear on curved or deformed surfaces. In many industrial applications, codes are printed on non-flat materials, which can distort the symbol geometry and reduce reading reliability. With the new rectification capability, HALCON compensates for these distortions before decoding, significantly improving robustness in such scenarios.
The rectification step can be enabled optionally within the code reader and integrates seamlessly into existing workflows. Although processing time is slightly higher than with standard Data Matrix reading, the improved decoding reliability enables stable operation in demanding environments. Typical applications include codes printed on cylindrical components, curved packaging, or flexible materials used in manufacturing and logistics.
HALCON 26.05 introduces enhanced data augmentation for deep-learning workflows. The new approach replaces the previous procedure-based augmentation and preprocessing steps with configurable operators that integrate directly into HALCON deep-learning pipelines.
Users can define augmentation pipelines programmatically, apply transformation techniques such as geometric transforms, color variations, and blurring, and preview the resulting image variations. This lets developers test and refine augmentation strategies quickly within their existing workflow. Training samples generated this way help model robustness and generalization, which can reduce the reliance on large training datasets.
This feature is initially available for object detection and instance segmentation, supporting more reliable training and improving model generalization under challenging conditions such as varying illumination, perspective changes, occlusions, or noisy image data.
A new generation of deep-learning-based object detection is available with HALCON 26.05, delivering up to 5x faster inference while maintaining high detection accuracy. The new architecture enables efficient detection of objects and is optimized for demanding machine vision scenarios where both speed and precision are critical.
Users can train and run detection models directly within HALCON and start from MVTec-provided pretrained models that can be adapted to specific applications. The anchor-free detection approach improves bounding-box localization and performs reliably even for small objects and varying object sizes. Integrated data augmentation techniques further increase robustness against changes in illumination, rotation, distortion, and partial occlusion. The feature integrates directly into HALCON workflows and supports inspection, localization, and sorting tasks across industrial automation applications.
For information about the major new features of HDevelopEVO 26.05 and HALCON Script Engine 26.05, see this separate page .
HALCON 26.05.0.0 Progress requires a valid HALCON Progress license and does not run with licenses of HALCON 13 and earlier versions or HALCON Steady.
Compared to HALCON 25.11 Progress, many extensions have been introduced. Thus, the HALCON 26.05.0.0 Progress libraries are not binary compatible with HALCON 25.11 Progress or earlier versions. However, HALCON 26.05.0.0 Progress is mostly source-code compatible to HALCON 25.11 Progress except for the changes listed below:
In earlier versions of HALCON, the GenParamName and GenParamValue parameters of enqueue_message were simply ignored. Now, you must pass an empty tuple for GenParamName and GenParamValue if you do not want to pass any valid generic parameters to enqueue_message.
More information.As the behavior of linking edge points to contours changed in edges_sub_pix and edges_color_sub_pix, different results are to be expected. This can also result in weak edges being omitted from the returned contour, which were present before.
More information.Internal optimizations in the ONNX reader may change the ordering of output dimensions for models loaded from ONNX files compared to previous versions of HALCON. Customers who use ONNX models (including YOLO models) in their programs may need to update their integration accordingly.
More information.HALCON now uses OpenJPEG to read JPEG 2000 images. While this should be faster and more robust than the previously used libjasper, there will be differences in compression between images written by both libraries.
More information.Applications setting the parameter 'contrast_min' for the (Micro) QR Code reader must be adapted, as this parameter has been removed and set_data_code_2d_param and get_data_code_2d_param now return an error with this parameter for these readers. Applications that explicitly trained 'contrast' with the (Micro) QR Code reader must be adapted as well.
More information.For Deep 3D Matching, the parameter 'sort_single_views_last' is by default set to 'true' when reading models created with previous HALCON versions. This may lead to a different ordering of the results when setting 'min_num_views' to 1 and having more than one camera.
More information.In general, HALCON 26.05 Progress and HALCON 25.11 Progress image acquisition interfaces are library compatible.
HALCON 26.05.0.0 Progress includes only a subset of available image acquisition interfaces. For more information, see the reference documentation of the Image Acquisition Interfaces. You can download additional interfaces from our web server.
In general, HALCON 26.05 Progress and HALCON 25.11 Progress digital I/O interfaces are library compatible.
HALCON 26.05.0.0 Progress includes only a subset of available digital I/O interfaces. For more information, see the reference documentation of the I/O Interfaces. You can download additional interfaces from our web server.
Please re-generate your own extension packages developed with HALCON 25.11 Progress.
The following functionality may be discontinued in a future major release or has been removed with this release.
See the reference manual entries of legacy operators for details on how to replace them.
The legacy functionality Sample Based Identification has been removed.
Support for the 32‑bit HALCON Variable Inspect Visual Studio Extension has been moved to legacy status. To ensure continued support and compatibility, please switch to the 64‑bit versions of Microsoft Visual Studio 2022 or 2026.
The Hailo AI² plugin has been transitioned to legacy status and is no longer actively developed or maintained.
HALCON 26.05.0.0 Progress has been compiled for the x64-win64 platform version for Microsoft Windows 10 (x64 editions), 11, Windows Server 2016, 2019, 2022, 2025 on Intel 64 or AMD64 with SSE2 (AVX2 dispatch) processors.
HALCON 26.05.0.0 Progress has been compiled for the following Linux platform versions:
Please refer to the Installation Guide for detailed system requirements corresponding to the different Application Binary Interfaces.
The changes in HALCON 26.05.0.0 Progress are described with respect to HALCON 25.11.
The following issues are relevant in the context of cybersecurity:
The OpenVINO and TensorRT AI² interfaces now provide an SBOM in the form of *.spdx.json files.
The HALCON/.NET interface now provides an SBOM in the form of *.spdx.json files.
For .NET Framework, these reside under bin/dotnet20 and bin/dotnet35.
For .NET Core 3.1 and later, the SBOM is included in the Nuget package under the _manifest directory.
The third-party library libxml has been updated to version 2.13.9.
The third-party library libxslt has been updated to version 1.1.45 to provide a fix for CVE-2025-7424.
Internal security checks identified the following security vulnerabilities in the third-party CUDA SDK:
CVE-2024-0110, CVE-2025-23275, CVE-2025-23308, CVE-2025-23339, CVE-2025-23247, CVE-2024-0111, CVE-2025-23338, CVE-2025-23272, CVE-2025-23274, CVE-2025-23273, CVE-2024-0125, CVE-2024-0124, CVE-2024-0109, CVE-2024-0123, CVE-2024-53878, CVE-2024-53879, CVE-2024-53870, CVE-2024-53871, CVE-2024-53872, CVE-2024-53873, CVE-2024-53874, CVE-2024-53875, CVE-2024-53876, CVE-2024-53877, CVE-2025-23271, CVE-2025-23340, CVE-2025-23248, CVE-2025-23255, CVE-2025-23346.
These vulnerabilities concern components of the CUDA SDK that are neither shipped nor used by HALCON. Exploitation in the context of HALCON is therefore not possible and the CVEs are not applicable for our product.
Internal security checks identified the security vulnerability CVE-2023-6228 (third-party library libtiff). This vulnerability affects the tiffcp utility, which is not distributed as part of HALCON.
Internal security checks identified the security vulnerability CVE-2023-6277 (third-party library libtiff). This is not considered a security vulnerability by the libtiff maintainers, as there is no proven application crash.
Internal security checks identified the security vulnerability CVE-2023-52356 (third-party library libtiff). This vulnerability does not apply to HALCON, as the vulnerable APIs are not used in HALCON.
Exploitation in the context of HALCON is therefore not possible and the CVEs are not applicable for our product.
The third-party library OpenSSL has been updated to version 3.0.18 to provide fixes for CVE-2025-9230 and CVE-2025-9232.
The third-party library cJSON has been updated to version 1.7.19.
Internal security checks identified the following security vulnerabilities in the third-party CUDA SDK:
CVE-2025-33228, CVE-2025-33230, CVE-2025-33229, CVE-2025-33231.
These vulnerabilities concern the NVIDIA Nsight System for Windows and Linux, which are neither shipped nor used by HALCON. Exploitation in the context of HALCON is therefore not possible and the CVEs are not applicable for our product.
The third-party library libxml2 has been updated to version 2.15.2. This fixes the security vulnerabilities CVE-2025-6021, CVE-2025-10911, CVE-2025-7425, CVE-2025-6170.
The third-party library OpenSSL has been updated to version 3.5.5 to provide fixes for CVE-2025-15467, CVE-2025-68160, CVE-2025-69418, CVE-2025-69419, CVE-2025-69420, CVE-2025-69421, CVE-2026-22795, and CVE-2026-22796.
The third-party library zlib has been updated to version 1.3.2 to provide a fix for CVE-2026-27171.
Internal security checks identified the security vulnerability CVE-2026-28500 (third-party ONNX). The vulnerability concerns the Python function onnx.hub.load(), which is neither shipped nor used by HALCON. Therefore, exploitation in the context of HALCON is not possible, and the CVE is not applicable to our product.
The third-party library libpng has been updated to version 1.6.57. This fixes the security vulnerabilities CVE-2025-64505, CVE-2025-64506, CVE-2025-64720, CVE-2025-65018, CVE-2025-66293, CVE-2025-22801, CVE-2026-22695, CVE-2026-25646, CVE-2026-33416, CVE-2026-33636, and CVE-2026-34757.
We have discontinued the extended telemetry program. Limited telemetry functionality remains in place, as described in our Privacy Policy, and continues to be processed in accordance with applicable data protection requirements.
Using the Operator Window with incomplete input could crash HDevelop. This problem has been fixed.
The procedures dev_display_dl_interactive_confusion_matrix and draw_deep_counting_templates displayed the text on buttons using the same color as the background depending on the set drawing mode. This problem has been fixed.
HDevelop could crash or hang during startup when using an HDevelop.ini file with content from older versions. This problem has been fixed.
When opening a program editor and then opening and closing a modal dialog (such as the About dialog) using the ‘X’ button, copy, cut, and paste stopped working in the editor. This problem has been fixed.
For the release notes of HDevelopEVO and HALCON Script Engine (HScriptEngine), see this separate page .
affine_trans_image, affine_trans_image_size, zoom_image_factor (if ScaleWidth and ScaleHeight are not exactly 0.5), zoom_image_size (if the output image size is not half the input image size), rotate_image (for angles not multiples of 90 degrees), and crop_rectangle2 with AlignToAxis set to 'true' with system parameter 'int_zooming' set to 'true' for interpolation 'bilinear', 'constant', and 'weighted', have been accelerated on Arm 64-bit processors that support the NEON instruction set. A speedup of up to 35% can be expected for images of type 'byte'.
The same holds for gen_gauss_pyramid using interpolation 'weighted' for images of type 'byte', when the Scale is not exactly 0.5.
affine_trans_region with system parameter 'int_zooming' set to 'true' is now up to 35% faster for interpolation 'constant' on Arm 64-bit processors that support the NEON instruction set
affine_trans_region has been additionally parallelized on internal data level. Previously, it was only parallelized on tuple level. Now, affine_trans_region can be up to twice as fast with two threads, four times faster with four threads, and five times faster with six threads. The overall performance gain depends on the image size, the actual transformation used, and the interpolation method selected.
mean_image for byte images and masks between 7x7 and 15x15 is now faster by up to 35% on AVX2-capable processors.
emphasize for byte images and masks between 7x7 and 15x15 is now faster by up to 25% on AVX2-capable processors.
highpass_image for byte images and masks between 7x7 and 15x15 is now faster by up to 25% on AVX2-capable processors.
projective_trans_image, projective_trans_image_size, and projective_trans_region with system parameter 'int_zooming' set to 'true' for interpolation 'bilinear' on processors that support the Arm NEON instruction set are now up to 45% faster for images of type 'byte'. For interpolation 'nearest_neighbor', a speedup of up to 35% can be expected.
gen_bundle_adjusted_mosaic and gen_projective_mosaic are now up to 45% faster on processors that support the Arm NEON instruction set for images of type 'byte'.
find_surface_model now supports the new parameter 'scene_sampling_mode', which can be set to 'fast' (previous and default behavior) or the new mode 'voxel'. Voxel-based sampling is faster by up to 105% compared to the 'fast' mode, allowing to speed up surface-based matching especially for scenes with a high point density.
Deep 3D Matching now supports the new parameter 'sort_single_views_last', which allows sorting instances seen by only a single camera last in the result list, as they are potentially less reliable and accurate than instances seen by more than one camera.
Note that this change affects the compatibility. Read more.Enhanced Data Augmentation introduces a more flexible, operator-based augmentation system for HALCON deep-learning workflows. You can build configurable augmentation pipelines and preview the transformations, which makes it easier to iterate quickly and integrate augmentation cleanly into existing DL training setups. The initial scope targets Object Detection and Instance Segmentation, using modern techniques such as color (HSV) variation, flips, crops, perspective transforms, blur, and combinations to improve robustness under real-world variability, such as lighting changes, viewpoint shifts, and occlusions, often reducing the amount of training data needed. Since this moves from procedure-based setups to operator-based pipelines, existing example workflows remain a key compatibility point and custom workflows may need small adjustments.
The example hdevelop/Deep-Learning/Augmentation/dl_transform_pipeline.hdev has been added to illustrate how to visualize the output of the new augmentation pipeline. The example hdevelop/Deep-Learning/Detection/dl_advanced_object_detection_workflow.hdev demonstrates how the new workflow can be applied in practice and includes a use case showing the new augmentation in action.
To create the new transform pipelines, this operator has been added:
To define the single transform steps, seven operators are now available:
To get and set transform parameters or read and write the pipeline, these operators have been introduced:
The transform pipeline can be executed with:
Additionally, two new deep learning procedures are now available. One to get the transformed DLSamples and one to display and inspect the transform pipeline:
HALCON has been extended with deep-learning-based advanced object detection to locate object instances in an image.
Advanced object detection comes with three models, pretrained for object detection.
This new approach is significantly faster than the previous one on both GPU and CPU runtimes as well as on AI² interfaces.
The new anchor-free network architecture is easier to use because no anchor parameters have to be tuned.
Further, the new models showed superior precision and recall on testing datasets due to an improved network architecture and pretraining.
This update replaces the previous object detection for axis-aligned bounding box prediction.
Now, creating object detection models with create_dl_model_detection is no longer needed for rectangle1 instances.
The HDevelop example hdevelop/Deep-Learning/Detection/dl_advanced_object_detection_workflow.hdev has been added to demonstrate how to use advanced object detection in HALCON.
The HDevelop example series hdevelop/Deep-Learning/Detection/detect_pills_deep_learning_*.hdev has been extended to advanced object detection. The example covering the old object detection, hdevelop/Deep-Learning/Detection/dl_object_detection_workflow.hdev, has been removed.
The reference manual entry “Deep Learning” > “Advanced Object Detection” has been added, providing instructions on how to configure and use the new object detection models.
For more information on specific usage, please refer to the documentation for the respective operators:
set_dl_model_layer_param now supports a new parameter 'coefficients' to set the coefficients of an elementwise layer.
The pretrained Deep OCR recognition models have been updated and now offer improved compatibility with INT8 calibration. Furthermore, it is now possible to recognize whitespace between words.
Deep learning models of type 'segmentation' now support the parameters 'tiling' and 'tiling_overlap' to enable automatic tiling of large images.
The Deep OCR recognition component now returns more reliable confidences for character candidates.
The pretrained MobileNetV4 classification models have been updated and now offer improved compatibility with INT8 calibration.
create_dl_layer_loss_ctc now accepts 'loss_weight' as an optional parameter. Its scalar value can be used to weigh its contribution to the overall loss.
The HDevelop example hdevelop/Deep-Learning/Detection/dl_detection_inference_yolo.hdev has been adapted. The model in the example does not need a special treatment in case it is executed on an AI² device anymore.
HALCON now uses OpenJPEG to read JPEG 2000 images instead of libjasper, as previous versions of HALCON did.
Note that this change affects the compatibility. Read more.edges_sub_pix and edges_color_sub_pix were improved by adding a suppression of small, spurious edge contours, for example, to facilitate postprocessing. The suppression was added to all subpixel edge operators except 'sobel_fast'.
The legacy functionality Sample Based Identification has been removed.
The following GS1 Application Identifiers are now supported:
set_bar_code_param has been extended with the generic parameter 'strict_ean13_upc_a'. This parameter defines the distinction of barcodes of type EAN-13 and barcodes of type UPC-A.
Previously, UPC-A barcodes had been handled as a subset of EAN-13 barcodes. Most notably their decoded data string did consist of 13 digits instead of the expected 12 digits.
Now, 'strict_ean13_upc_a' can be set to either 'false' or 'true'. Setting it to 'false' keeps the previous behavior. Setting it to 'true' enforces a strict distinction between these two types of barcodes as described in ISO/IEC 15420:2009, Table 3.
get_bar_code_object now allows querying 'scanlines_identical' and 'scanlines_identical_plain'. 'scanlines_identical' shows a subset of 'scanlines_valid', defined by the scanlines, which were needed to reach 'min_identical_scanlines' (see set_bar_code_param).
HALCON's Data Matrix reader is now more robust on deformed codes. The parameter 'deformation_tolerance' has been added to toggle this new functionality. With the default mode 'maximum_recognition', this parameter is set to 'curved'. This parameter is trainable.
To ease debugging of this new functionality, get_data_code_2d_objects has been extended with 'candidate_xld_deformed' to return a more accurate estimation of the symbol boundary. get_data_code_2d_results has been extended with 'deformation_objects' to return a dict with a rectified image of the code and respective module regions.
The example hdevelop/Identification/Data-Code/2d_data_codes_default_settings.hdev has been extended with two new images: images/datacode/ecc200/ecc200_deformed_01.png and images/datacode/ecc200/ecc200_deformed_02.png.
HALCON's 2D code readers can now heuristically determine the string encoding of an encoded message. set_data_code_2d_param has been extended with the new value 'auto' for the parameter 'string_encoding'. This is now the default for this parameter.
set_data_code_2d_param has also been extended with the new value 'gb2312' for the parameter 'string_encoding' to support GB2312 encoded messages.
The parameter 'contrast_min' has been removed from the (Micro) QR Code reader as its influence on the decoding performance was neglectible after the improvements of the last releases. The training of 'contrast' has been removed for these readers as well. It is not possible to query 'contrast' with get_data_code_2d_results for the (Micro) QR Code reader anymore.
Note that this change affects the compatibility. Read more.The generic shape matching interface now allows restricting all models passed in find_generic_shape_model by a global number of matches. To enable global num_matches, call set_generic_shape_model_param with 'num_matches_global_enable' set to the value 'true'.
HALCON shape-based matching has received a new class of algorithms: Automatic Contour Optimization.
This feature optimizes the model contours during training using the sample-based approach from extended parameter estimation. In addition, 'extended parameter estimation' is renamed to 'sample-based training' to better reflect the functionality of the existing and new algorithms and to allow access through one unified interface.
To query if the current shape model setting and the desired sample-based training methods are compatible, the operator get_generic_shape_model_param has been extended with the parameter 'sample_based_training_compatible'.
The first method for Automatic Contour Optimization is the 'contour pruning' algorithm, which removes unstable contour parts of the model based on the provided samples. To use the new algorithm, set the corresponding value in the 'sample_based_training' parameter (formerly known as 'extended_parameter_estimation') and add the samples using set_generic_shape_model_param. The next train_generic_shape_model call will then apply the contour pruning during training. The result is a model that only keeps the parts of your model that are stable, which can lead to a faster, more robust and more accurate matching model.
To configure the contour pruning algorithm, the new 'contour_pruning_threshold' parameter can be set with a set_generic_shape_model_param call. This value determines which score each part of the model has to reach to still be considered for the optimized model contours.
The new HDevelop example hdevelop/Matching/Shape-Based/train_generic_shape_model_contour_pruning_workflow.hdev shows how to use this feature in HALCON.
When adding a message to a message queue that is already full, the operator enqueue_message can now wait and block until space becomes available in the queue. This allows using producer-consumer threads that automatically throttle the producer to the rate of the consumer.
Note that this change affects the compatibility. Read more.object_model_3d_to_xyz with Type 'cartesian_faces_no_opengl' in rare cases returned the error 3513 ("Internal error: number of chords too big for num_max"). Further, object_model_3d_to_xyz with Type 'cartesian_faces' was not as accurate as possible for telecentric lenses. These problems have been fixed.
reconstruct_surface_stereo in rare cases crashed or raised a memory error with enabled 'persistence' of the stereo model. This problem has been fixed.
run_scene_engine returned an empty visibility tuple and no masks image in GeneratedData.images when no part objects were visible in a generated scene. This led to errors in subsequent procedure calls of visualize_scene_engine_run and get_data_generation_gt. This problem has been fixed. Now, run_scene_engine returns a tuple of zeros as visibility and an appropriate masks image.
apply_deep_matching_3d did not always return all poses seen from single cameras when setting the parameter 'min_num_views' of a Deep 3D Matching model to 1 and using multiple cameras. This problem has been fixed.
projective_trans_image_size with TransformDomain='true' crashed in rare cases. This problem has been fixed.
find_calib_object crashed in very rare cases. This problem has been fixed.
Reading ONNX models containing elementwise layers with inputs that specify different numbers of explicit dimensions could trigger an error due to a dimensional mismatch. This problem has been fixed.
The HDevelop example hdevelop/Deep-Learning/Detection/dl_detection_inference_yolo.hdev has been adapted to changes in the ONNX reader, which can result in a change in the ordering of output dimensions for models loaded from ONNX files.
Note that this change affects the compatibility. Read more.add_dl_pruning_batch wrongly changed the batch normalization statistics for deep learning classification models containing batch normalization layers, which could lead to a worse model performance. This problem has been fixed.
There was an inconsistency between CPU and GPU results for depth-wise convolution layers on ARM architectures. The issue occurred when using a 5×5 kernel, stride 2, and non-zero padding. The problem has been fixed by switching to an alternative implementation for this specific configuration. Note that the alternative implementation can be about ten times slower for the affected cases.
The AI² optimization of a model containing a dropout layer with parameter ‘is_inference_output’ set to ‘true’ raised an error. This problem has been fixed.
The Deep Learning elementwise layer raised an error during training for the operation 'sum' with broadcasting. This problem has been fixed.
set_dl_model_param crashed for parameters expecting a handle if HNULL was passed. This problem has been fixed. Now, a corresponding error is raised.
The deep learning detection example dataset “screws” had wrong orientation labels for some screws of class_13. This problem has been fixed.
In some Deep Learning preprocessing procedures, the parameters 'image_range_min' and 'image_range_max' were restricted to -127 and 128. This applied in combination with the following model types: classification, multi-label classification, and detection. This restriction has now been removed. The procedure check_dl_preprocess_param in dl_preprocessing.hdpl has been updated accordingly.
The elementwise layer could produce incorrect results on runtime 'cpu' for the operations 'minimum', 'maximum', and 'sum' with broadcasting. This problem has been fixed.
Running CPU inference on a model containing a resized, broadcasting elementwise layer could cause a crash. This problem has been fixed.
In the context of Deep OCR training, the procedure gen_dl_samples did not consider the angle when calculating the cropped box dimensions, which could lead to cropped text in cases of strongly rotated input images. This problem has been fixed.
load_dl_model_weights did not properly update the weights of batch normalization layers with ReLU activation when the model runtime was set to 'gpu'. This problem has been fixed.
When reading PNG files that do not contain a .png file name extension in read_image, errors were not detected properly, potentially resulting in corrupted image data. This problem has been fixed.
edges_sub_pix and edges_color_sub_pix returned interrupted edge contours in some cases, for example, in tight corners or when the edge points extracted by the edge operator were located in the same pixel. This problem has been fixed.
Note that this change affects the compatibility. Read more.highpass_image only processed the first channel for images of type 'byte'. This problem has been fixed.
sobel_amp('sum_sqrt') could crash for uint2 images. This problem has been fixed.
edges_sub_pix returned with an internal error when passing an image with specific, reduced domains in rare cases. This problem has been fixed.
find_bar_code returned wrong results for CodeType = 'auto' and CodeType = ['Code 128', 'GS1-128'] in rare cases. This problem has been fixed.
find_bar_code could return wrong symbol regions and orientation values if 'min_identical_scanlines' was set to a value greater than one and multiple barcodes with an identical decoded string were covered by a successfully decoded scanline. In this case, the correspondence among the different scanline segments taken into account by the 'min_identical_scanlines' check could be wrong. This problem has been fixed.
find_bar_code in rare cases returned the error 3100 ("Wrong segmentation threshold"). This problem has been fixed.
find_bar_code in rare cases crashed when trying to decode GS1 DataBar Extended Stacked symbols. This may also have happened in the 'auto' mode of find_bar_code. This problem has been fixed.
find_bar_code crashed in rare cases during the quiet zone check. This only occurred with element_size_min below 2.0. This problem has been fixed.
find_bar_code sometimes returned errors regarding temporary memory. This problem has been fixed.
get_data_code_2d_objects unexpectedly returned an empty object for the module regions of a Data Matrix code in rare cases. This problem has been fixed.
find_data_code_2d in some cases leaked memory for the 2D code model QR Code if 'deformation_tolerance' was set to 'curved' and timeouts were enabled. This problem has been fixed.
find_data_code_2d could crash for 2D code models of symbol type “QR Code” if the persistence parameter was set to a value less than zero and the 'deformation_tolerance' parameter was set to 'curved'. This problem has been fixed.
create_shape_model, create_scaled_shape_model, create_aniso_shape_model, and train_generic_shape_model added the last model point twice (or even three times) to the model for some rare combinations of the number of model points and optimization. This problem has been fixed. Note that as a consequence, the score of matches with new models may change and hence different matches may be found.
find_generic_shape_model and find_aniso_shape_model had slowdowns during tracking. This problem has been fixed.
find_shape_model, find_shape_models, find_scaled_shape_model, find_scaled_shape_models, find_aniso_model, find_aniso_models, find_generic_shape_model, and determine_shape_model_params could take a long time to set the parameter values and could not be interrupted during this time. This problem has been fixed.
find_shape_models, find_scaled_shape_models, find_aniso_models, and find_generic_shape_model returned incorrectly sorted matches, in case different values were used for the lowest pyramid level for the different passed models. This problem has been fixed.
set_metrology_object_fuzzy_param could crash when given invalid parameter values. This problem has been fixed.
For x64-linux, the HALCON library exported symbols from the Intel compiler runtime libraries. This problem has been fixed.
Under certain circumstances hinfo could be manipulated into loading two different HALCON shared libraries simultaneously, leading to inconsistent output. This problem has been fixed.
HALCON implements copy_dict, write_dict, and serialize_handle for dict handles recursively. This can lead to stack overflow if the dict is nested too deeply, so HALCON will now report an error if any of these operators is called with a dict that is nested to a depth of more than 100.
The signature of the receive_data operator was wrong in the HALCON language interfaces. As a result, receive_data could not be used from the Python language interface. This problem has been fixed.
The Python qt_gui example did not build because of an outdated reference to version 5.15.2 of PyQt5. This problem has been fixed.
HALCON Variable Inspect Extension for Visual Studio is now also available for Microsoft Visual Studio 2026. It can be installed with the installer “Variable Inspect Extension for Visual Studio 2022 and later”.
The HALCON Variable Inspect Extension was inconsistent about when it was responsive or not. Now, it is only responsive during debugging and while at a break, as intended. Further, on first open, the variables to inspect were not loaded correctly. These problems have been fixed.
HALCON Variable Inspect is now clearly visible as being disabled when not in debug mode.
The Easy Extensions Interface now uses the HALCONEXTENSIONS environment variable to determine the location of configuration file and plugins at runtime. This means the built adapter can be transferred to a different machine more easily. Previously, the absolute build path was compiled into adapter_dotnet.dll.
In addition, the ManagedLibrary.runtimeconfig.json file has been moved into the dotnet folder (next to ManagedLibrary.dll).
The CMake build for the Easy Extensions Interface, as well as the build instructions in the corresponding Readme file have been improved to simplify the build experience.
hcomp could insert invalid characters into the HALCON help files under certain circumstances. This problem has been fixed.
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.
Image Sources now support persisting either individual parameter groups or the complete Image Source configuration, enabling easy restoration of device and setup parameters across sessions and machines.
Image Sources now support querying a nested dictionary of each parameter group containing all parameter categories, sub-categories, and their parameters.
For HALCONARCH x64-linux, libmvimgsrc.so contained undefined references to Intel runtime libraries. This problem has been fixed.
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.
The documentation incorrectly stated that dict access expressions on long tuples can be slow due to tuples being copied. The documentation has been updated, accessing long tuples is no longer slow.
The reference manual entry of the operators find_aniso_shape_models, find_scaled_shape_models, find_shape_models and find_generic_shape_model did not mention the special behaviour of the parameter MinScore or 'min_score', respectively, on the highest pyramid level in a multi-model case. The documentation has been adapted accordingly.
The reference manual entry of get_data_code_2d_param falsely stated that only for DotCode symbols the module size restrictions are not checked even if 'strict_model' is set to 'yes'. However, this is the case for all symbol types.
The reference manual entry of set_data_code_2d_param falsely stated that the parameter 'abort' is ignored when running in training mode.
These problems have been fixed.
The default values for 'detection_optimize_for_inference' and 'recognition_optimize_for_inference' have been removed from the documentation of get_deep_ocr_param, since the actual value depends on the used underlying model.
The reference manual entry of get_generic_shape_model_param did not state that multi-value GenParamValues cannot be returned together with further values and therefore need to be queried in a distinct get_generic_shape_model_param call. The documentation has been adapted accordingly.
The reference manual entry of set_dl_model_param stated that the parameter 'alignment_available' could be set for OCR recognition models, although this was not possible. This problem has been fixed, and the corresponding documentation entry has been removed.
The term “data code” has been replaced with the more commonly used term “2D code” throughout the documentation.
When run on a system under very high load, HALCON could erroneously detect system-time manipulation. This problem has been fixed.
For aarch64-linux, the CID licensing has been extended to also accept NVME SSD serial numbers.
hinfo now reports the full version number of HALCON, including the hotfix version.
The third-party library libxml has been updated to version 2.13.9.
The third-party library libxslt has been updated to version 1.1.45 to provide a fix for CVE-2025-7424.
The third-party library cJSON has been updated to version 1.7.19.
The third-party library libxml2 has been updated to version 2.15.2. This fixes the security vulnerabilities CVE-2025-6021, CVE-2025-10911, CVE-2025-7425, CVE-2025-6170.
The third-party library OpenSSL has been updated to version 3.5.5 to provide fixes for CVE-2025-15467, CVE-2025-68160, CVE-2025-69418, CVE-2025-69419, CVE-2025-69420, CVE-2025-69421, CVE-2026-22795, and CVE-2026-22796.
The third-party library libcurl has been updated to version 8.19.0.
The third-party library zlib has been updated to version 1.3.2 to provide a fix for CVE-2026-27171.
The third-party library mimalloc has been updated to version 2.2.7.
Follow this link to read about the changes of previous HALCON versions.