HALCON Progress Key Visual shows a person running at high speed

Release Notes for HALCON 18.11.3 Steady

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

HALCON 18.11.3.0 Steady is primarily a maintenance release that fixes all known bugs in HALCON 18.11.2; besides, it provides added functionality.

Compatibility

Licenses

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

HALCON Library

HALCON 18.11.3.0 Steady is fully compatible with HALCON 18.11 Steady and HALCON 18.11.2 except for the changed behavior of some operators owing to bug fixes. Compared to HALCON 13.0, many extensions have been introduced. Thus, the HALCON 18.11 Steady libraries are not compatible with HALCON 13.0 or earlier versions.

In detail, please note the following incompatibility with respect to HALCON 18.11.2 :

HALCON Applications

Applications (i.e., executables) developed with HALCON 18.11 Steady or HALCON 18.11.2 can be used with HALCON 18.11.3.0 Steady, i.e., HALCON 18.11.3.0 Steady is binary compatible with HALCON 18.11 Steady and HALCON 18.11.2.

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

Please note that applications using HALCON/.NET (and HDevEngine/.NET) have local copies of the corresponding assemblies (halcondotnet.dll etc.). After installing HALCON 18.11.3.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 18.11.3.0 Steady are library compatible to those of HALCON 18.11 Steady and HALCON 18.11.2, as well as HALCON 13.0.x.

HALCON 18.11.3.0 Steady includes only a subset of available image acquisition interfaces. Image acquisition interfaces that are included are: BitFlow, DirectFile, DirectShow, Ensenso-NxLib, File, GenICamTL, GigEVision2, GStreamer, LinX, MILLite, MultiCam, O3D3xx, pylon, SaperaLT, SICK-3DCamera, SiliconSoftware, uEye, USB3Vision, and Video4Linux2. You can download additional interfaces from our web server.

Digital I/O Interfaces

In general, digital I/O interfaces of HALCON 18.11.3.0 Steady are library compatible to those of HALCON 18.11 Steady and HALCON 18.11.2, as well as HALCON 13.0.x.

HALCON 18.11.3.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 18.11 Steady or HALCON 18.11.2 can be used with HALCON 18.11.3.0 Steady without further action. Extension packages developed with HALCON 13.0 or earlier versions must be re-generated. Note that the old makefiles for HALCON/C++ must be adapted according to the sample makefile under extension_packages/halconuser.

Further Compatibility Information

  • The Linux installer script install-linux.sh now is run using bash. Any POSIX compatible shell with file globbing support can be used as alternative to bash. More information.
  • The C language interface created for a HALCON extension package did not properly initialize output parameters, which could have led to crashes. This problem has been fixed.
    Note that extension packages built with HALCON 18.11.3 will not load in HALCON 18.11.2 or 18.11.1. More information.

Planned Discontinuation of the x86-win32 Platform Version for Windows

MVTec plans to discontinue the x86-win32 platform version for Windows. Presumably, this will happen for HALCON 20.11 Steady. We recommend that you start switching your applications to the x64-win64 platform version for Windows.

Supported Operating Systems

Windows

HALCON 18.11.3.0 Steady has been compiled for the following Windows platform versions:

  • x86-win32 platform version for Windows 7/8.1/10 or Windows Server 2008 R2/2012 R2/2016/2019 on Intel Pentium 4 or AMD Athlon 64 with SSE2
  • x64-win64 platform version for Windows 7/8.1/10 or Windows Server 2008 R2/2012 R2/2016/2019 x64 Edition on Intel 64 or AMD 64 processors

The setup process checks whether it is running on a 32- or 64-bit system and provides a suitable list of platform versions that can be installed. During the installation, the environment variable HALCONARCH is set to x86sse2-win32 or x64-win64 to indicate the installed platform version. Please note that if you want to switch to another platform version, you must first install it. Then, you must adapt the environment variable HALCONARCH (see the Installation Guide for more information).

Linux

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

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

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

macOS

HALCON 18.11.3.0 Steady has been compiled for the x64 platform version of macOS 10.13/10.14/10.15 on Intel 64.

Detailed Description of Changes in HALCON 18.11.3.0 Steady

The changes in HALCON 18.11.3.0 Steady are described with respect to HALCON 18.11.2 .

HDevelop

Bug Fixes

Assistants
  • The Repair Edges tool of the HDevelop Matching Assistant did not work. This problem has been fixed.
Code Export
  • The HDevelop template export to C# or VB.Net with containing dev_open_window or open_window operators created "Dispose" methods to WindowHandle variables that were not initialized. This problem has been fixed.
  • In rare cases, HDevelop corrupted the names of variables during the code export. (The error only became visible when the program was exported a second time.) In particular, the problem occurred when global vector variables were used directly as input or output parameters of functions. This problem has been fixed.
GUI
  • In HDevelop, close_window did not work in legacy handle mode. This problem has been fixed.
  • HDevelop's Matrix Inspect window sometimes had layout issues. This problem has been fixed.
  • The layout of the HDevelop Variable Window did not always correctly adapt to a changed "Parameter and Value" font size. This problem has been fixed.
  • The line number in the Program Window could be off by one if the size of the height of the program window was only slightly bigger than the space needed to display the program. This problem has been fixed.
  • HDevelop's Variable Window and some tables did not adapt correctly to changes of the "Values and Parameters" font size. In particular, the height of the table rows did not increase if a bigger font size had required such behavior. As a consequence, the displayed values might have become unreadable. This problem has been fixed.
  • The first column in the handle inspect did not always resize to its contents. This problem has been fixed.
  • The font size of some elements in the Preferences dialog did not adapt properly to changes of the font size. This problem has been fixed.
  • String variables and expressions containing percent signs and numbers (e.g., '%1') could have shown corrupt tool tips in the Program and Variable Window. This problem has been fixed.
  • Editing a selected ROI in the ROI editor led to a freeze of HDevelop. This problem has been fixed.
  • Several GUI translations had unfortunate linebreaks, making it hard to read the displayed text. This problem has been fixed.
Help
  • The generated procedure documentation in HDevelop was truncated if a file extension was specified for a filename parameter. This problem has been fixed.
  • German umlauts were not displayed properly in the table of contents of the operator reference manual within the HDevelop Help. This problem has been fixed.
  • On Windows systems, using environment variable values of more than 128 characters could have caused problems in some situations. For example, HDevelop Help did not show the help for extension package operators if HALCONEXTENSIONS exceeded the limit. Further, such variables did not work in import paths using %VAR% syntax. This problem has been fixed.
  • The HDevelop help did not list the file with the third party copyrights. This problem has been fixed.
IDE
  • HDevelop sometimes reacted slowly when several variables contained large tuples. This problem has been fixed.
  • Invalidating the code line at the current program counter position (e.g., by edit operations) caused a crash if that line was the last line before an "else" or "catch" statement. This problem has been fixed.
Procedures
  • The JIT-compiled execution of procedures was unnecessarily prevented in some rare cases. This problem has been fixed.
  • In a dialog box, some translations were missing. This problem has been fixed.
Miscellaneous
  • Dropping an item on HDevelop while holding the Shift key removed the item from the source directory. This problem has been fixed.

HDevelop Example Programs

New HDevelop Example Programs
  • hdevelop/Image/Acquisition/genicamtl_information.hdev
  • hdevelop/Image/Acquisition/genicamtl_zivid_one_objectmodel3d.hdev
  • hdevelop/Image/Acquisition/gigevision2_sick_ranger3_objectmodel3d.hdev
  • hdevelop/Image/Acquisition/gstreamer_2pipelines.hdev
  • hdevelop/Image/Acquisition/gstreamer_acquisition_events.hdev
  • hdevelop/Image/Acquisition/gstreamer_nvidia_arguscamera_simple.hdev
  • hdevelop/Image/Acquisition/gstreamer_simple.hdev
  • hdevelop/System/IO-Devices/linux-gpio_digital_read.hdev
  • hdevelop/System/IO-Devices/linux-gpio_digital_write.hdev
  • hdevelop/System/IO-Devices/linux-gpio_list_channels.hdev
Bug Fixes

HDevEngine

Bug Fixes

  • The method HDevProgram::GetLocalProcedureNames returned all used procedures instead of only local ones. This problem has been fixed.
  • In rare cases, JIT compiled procedures could have crashed if they called dev_clear_obj. This problem has been fixed.

HALCON Library

Speedup

  • For some special cases, add_image used an MMX implementation that wrote results outside the actual region. This problem has been fixed.
    As a consequence of the fix, add_image is now up to 50% faster for images of type 'byte', 'uint2', and 'int2' for Mult = 1.0 and Add = 0.0.
    For Mult = 0.5 and Add = 0.0 a performance improvement of up to 200% can be expected for images of type 'byte', up to 250% for 'int2' images, and up to 120% for 'uint2' images.
  • The SIMD implementations for dyn_threshold returned wrong results in some cases if the values for the parameter 'Offset' exceeded the maximum for the used datatype (i.e., >= 256 for 'byte' and >= 65536 for 'uint2' images). This problem has been fixed.
    Due to a revised implementation, dyn_threshold is now faster if the parameter 'Offset' is set to values smaller than zero for 'light' and 'dark'. In particular, the performance improvement is up to 20% for 'byte' images and 50% for 'uint2' images.

New Functionality

System
  • During initialization HALCON attempts to open a hidden OpenGL window to determine the supported OpenGL capabilities. On systems with broken OpenGL drivers this can lead to HALCON crashing on startup. The environment variable HALCON_NO_OPENGL can now be set to 1 to tell HALCON to disable OpenGL support, avoiding the crash.

Bug Fixes

3D
  • Passing a parameter of wrong type to binocular_disparity_mg did not raise a proper error. This problem has been fixed.
  • connection_object_model_3d did not work with objects that had both triangles and polygons inside the model. This problem has been fixed.
  • The operators distance_object_model_3d, register_object_model_3d_pair, register_object_model_3d_global, and create_surface_model could produce incorrect results or, in rare cases, crash if an input 3D object model contains an empty attribute of type polygon, triangle, line, or xyz_mapping. These problems have been fixed.
  • find_deformable_surface_model in rare cases raised a memory error or crashed. This problem has been fixed.
  • The debug procedure debug_find_surface_model returned an error if 'scene_normal_computation' was set to 'mls' and no normals or XYZ-mappings were available for the 3D scene. This problem has been fixed.
  • moments_object_model_3d sometimes returned incorrect values for MomentsToCalculate set to 'principal_axes' if several models have been passed over as a tuple. This problem has been fixed.
  • object_model_3d_to_xyz with Type 'cartesian' sometimes did not show the projected coordinate values in the correctly rounded pixels. This problem has been fixed.
  • object_model_3d_to_xyz with Type 'cartesian' sometimes showed incorrect points in the output images, as well as points behind the camera given by CamParam and Pose. This problem has been fixed.
  • For .om3 files, read_object_model_3d did not raise an error when an unsupported generic parameter was passed. This problem has been fixed.
  • In rare cases, reconstruct_surface_stereo did not use the set values for the parameters 'binocular_mg_initial_guess' and 'binocular_mg_initial_level'. This problem has been fixed. Note that this change affects the compatibility. Read more.
  • select_points_object_model_3d did not preserve empty mappings of 3D points to 2D image coordinates. This problem has been fixed.
  • In rare situations, smallest_bounding_box_object_model_3d produced different results on different platforms (macOS, Windows, Linux). This problem has been fixed. The results are now more similar on all platforms.
  • triangulate_object_model_3d might have crashed when Method was set to 'greedy' and the generic parameter 'greedy_mesh_erosion' was set to a value bigger than zero. This problem has been fixed.
  • In rare cases, triangulate_object_model_3d could have crashed if method was set to 'greedy' and 'greedy_mesh_erosion' was turned on. This problem has been fixed.
Bar Code
  • In some cases, find_bar_code failed to find barcode candidates in 'uint2' images. This problem has been fixed.
  • In some cases, find_bar_code returned the error 6006 ("Tmp-memory management: could not find memory element") for 'uint2' images if the 'quiet_zone' check was activated. This problem has been fixed.
  • In rare cases, find_bar_code was slower with automatic operator parallelization than without. This problem has been fixed.
  • find_bar_code and decode_bar_code_rectangle2 could have led to a crash if 'GS1 DataBar Truncated' or 'GS1 DataBar Stacked' were part of the requested code types. This problem has been fixed.
  • get_bar_code_result returned unspecified quality grades, e.g., for 'quality_isoiec15416', in case of 2/5 Industrial and PharmaCode. This problem has been fixed.
  • When calling get_bar_code_result, timeouts could have occurred for some values of ResultName. This problem has been fixed.
  • HALCON now supports all GS1 application identifiers specified in the latest version of the "GS1 General Specifications" (July 2019).
Calibration
Classification
Compute Device
  • Operators that used the semantic type 'compute_device' returned a 'wrong type' error (#7002 or #1201) when using the operator via a corresponding method interface or the class ComputeDevice of the object oriented language interface HALCON/C++ or HALCON/.NET. This problem has been fixed.
Data Code
  • In rare cases, find_data_code_2d returned the error 3513 ("Internal error: number of chords too big for num_max") for ECC 200 codes. This problem has been fixed.
  • In very rare cases, find_data_code_2d returned wrong QR code results if ECI mode was used for decoding. This problem has been fixed.
  • In rare cases, memory leaked when calling find_data_code_2d for the data code model QR Code. This problem has been fixed.
  • In rare cases, find_data_code_2d missed decodable PDF417 symbols due to an inconsistent erasure treatment. This problem has been fixed.
  • In very rare cases, find_data_code_2d crashed for PDF417. This problem has been fixed.
  • In rare cases, get_data_code_2d_results crashed when attempting to read the parameter 'quality_semi_t10_labels' of a result that was not successfully decoded. This problem has been fixed.
  • In some cases, get_data_code_2d_results returned a 'pass_num' value that was one too high. This problem has been fixed.
  • In some cases, get_data_code_2d_results returned further candidates although the expected result number, defined by 'stop_after_result_num', has already been reached. This problem has been fixed.
  • When using the operator read_data_code_2d_model to read model files created with an older HALCON version, attributes not contained in the model may not have been initialized properly to default values. This problem has been fixed.
  • HALCON now supports all GS1 application identifiers specified in the latest version of the "GS1 General Specifications" (July 2019).
  • The ECC200 reader could not read codes of size 144x144. This problem has been fixed.
Deep Learning
  • The operator apply_dl_model computed unnecessary results for segmentation models based on pretrained_dl_segmentation_enhanced.hdl. This problem has been fixed.
  • apply_dl_model, read_dl_model, set_dl_model_param, and write_dl_model have not been part of the Deep Learning Inference module. This problem has been fixed.
  • Although do_ocr_multi_class_cnn does not use CUDA functionality, do_ocr_multi_class_cnn failed if the OCRHandle had been deserialized before and the CUDA version of the used system was smaller than the one requested by the HALCON deep learning system requirements. This problem has been fixed.
  • When training a deep learning model with the serialization strategy 'epochs', the given 'basename' parameter for the model file name was ignored and the default name used instead. Furthermore, in some cases, the model was not serialized at the correct iteration. These problems have been fixed.
  • In rare cases, handles visualized in the Handle Inspect window were not properly cleaned, even if all references to the handle were destroyed. This included resetting the program with F2, in which case the handles and their corresponding memory were not freed. This problem has been fixed.
  • read_dl_model crashed when models from a newer HALCON version were read. This problem has been fixed.
  • In the procedure split_dl_dataset, 'SplitRatiosInvSortIndices' was declared too late and thus the procedure was crashing in specific cases. This problem has been fixed.
  • The procedure dev_display_detection_evaluation_pie_charts sometimes used an unexpected font. This problem has been fixed.
Feature
  • The procedure calculate_features used the fixed gray value range of 0,255 for FeatureName 'edge_density_histogram'. This problem has been fixed. Now, the histogram is adapted to the gray value range of the edge image instead.
  • select_gray selected only pixels greater than 0 when using 'min' for the Min argument. This problem has been fixed.
File
Filter
  • affine_trans_image and affine_trans_region could have crashed in rare cases, if the interpolation method 'nearest_neighbor' was used together with the system parameter 'int_zooming' set to 'false'. This problem has been fixed.
  • convol_image created empty images on asymmetric separable filters. This problem has been fixed.
  • find_text returned non-deterministic results in the rare case when using the manual OCR mode to recognize imprinted characters in uint2 images. This problem has been fixed.
  • In rare cases, lines_gauss extracted the wrong line width when an input image with reduced domain has been used. This problem has been fixed.
  • In rare cases, lines_gauss returned different results when executed in parallel on AVX2- and AVX512f/dq/bw-compatible processors. This problem has been fixed.
  • In very rare cases, median_rect crashed or threw one of the errors 6002 ("Memory partition on heap has been overwritten") or 6006 ("Tmp-memory management: could not find memory element"). This problem has been fixed.
  • projective_trans_image crashed in rare cases if the interpolation was set to 'nearest_neighbor' and 'int_zooming' was 'false'. This problem has been fixed.
Graphics
  • In rare circumstances, HDevelop crashed when closing the father window before its children. This problem has been fixed.
  • disp_obj and disp_xld did not show concatenated contours containing only one point if the number of colors was less than the number of contours. This problem has been fixed.
  • draw_rectangle1 and draw_rectangle_mod1 did not work correctly when one edge of the rectangle was dragged over the opposite edge. This problem has been fixed.
  • draw_rectangle1 did not behave as expected when clicking in the surrounding area of the middle point between the center and the right side of the rectangle. This problem has been fixed.
  • get_disp_object_model_3d_info sometimes did not raise an error when information was not stored with the window, and 'opengl_compatibility_mode_enable' was set to 'true' via set_system. Instead, the depth information of a prior valid call was returned. This problem has been fixed.
  • get_drawing_object_params returned integers instead of floating point numbers for the drawing objects line and rectangle1. Further, create_drawing_object_line and create_drawing_object_rectangle1 rounded real number input to the nearest integers. These problems have been fixed.
  • For set_scene_3d_label_param, the parameter 'visible' was incorrectly listed as 'visibility' in the value list and autocompletion of the parameter. Additionally, when setting the 'position' parameter to a tuple with row and column coordinates, those coordinates were incorrectly set. These problems have been fixed.
  • set_window_param did not ensure to run in the GUI thread for non-buffer windows. This could have resulted in undefined behavior in rare cases. This problem has been fixed.
  • unproject_coordinates caused a crash in rare cases. This problem has been fixed.
  • write_string could crash if an invalid UTF-8 string was passed. This problem has been fixed.
  • Adding more than 50 objects to a smart buffer or window with the graphics stack enabled and graphics_stack_max_element_num set to 'unlimited' led to excessive memory usage. This problem has been fixed.
  • For displaying regions, a performance regression occurred. This problem has been fixed.
Inspection
Images
  • read_image accepted multi-channel images, where the different channels had inconsistent dimensions. This problem has been fixed.
Matching
Matrix
  • Passing a parameter of wrong type to pow_matrix or pow_matrix_mod was not properly detected. This problem has been fixed.
OCR
  • deserialize_handle, deserialize_tuple, and read_dict did not work correctly on handles of type 'ocr_mlp' and 'ocr_svm', and on dicts containing handles of these types. This problem has been fixed.
  • Calling get_text_model_param for 'text_line_structure' caused a buffer overrun. This problem has been fixed.
  • get_text_model_param did not return the last digit for a 'text_line_structure' with one single block. This problem has been fixed.
Region
  • For some special cases, add_image used an MMX implementation that wrote results outside the actual region. This problem has been fixed.
    As a consequence of the fix, add_image is now up to 50% faster for images of type 'byte', 'uint2', and 'int2' for Mult = 1.0 and Add = 0.0.
    For Mult = 0.5 and Add = 0.0 a performance improvement of up to 200% can be expected for images of type 'byte', up to 250% for 'int2' images, and up to 120% for 'uint2' images.
  • The operator gen_random_regions ignored the random seed defined via set_system. This problem has been fixed. Now, calls to gen_random_regions deliver reproducible results if the same random seed is set.
  • intersection failed if both regions had 65536 run lengths. This problem has been fixed.
  • min_max_gray, gray_features, and select_gray returned wrong values for regions consisting of a single pixel. This problem has been fixed.
  • select_shape selected only features greater than 0 when using 'min' for the Min argument. This problem has been fixed.
Segmentation
  • The SIMD implementations for dyn_threshold returned wrong results in some cases if the values for the parameter 'Offset' exceeded the maximum for the used datatype (i.e., >= 256 for 'byte' and >= 65536 for 'uint2' images). This problem has been fixed.
    Due to a revised implementation, dyn_threshold is now faster if the parameter 'Offset' is set to values smaller than zero for 'light' and 'dark'. In particular, the performance improvement is up to 20% for 'byte' images and 50% for 'uint2' images.
  • threshold returned wrong regions for vector_field images with very large component values. This problem has been fixed.
System
  • On Windows systems, using environment variable values of more than 128 characters could have caused problems in some situations. For example, HDevelop Help did not show the help for extension package operators if HALCONEXTENSIONS exceeded the limit. Further, such variables did not work in import paths using %VAR% syntax. This problem has been fixed.
  • Negative float values were incorrectly rejected by the operator send_data. This problem has been fixed.
Tuple
  • deserialize_handle, deserialize_tuple, and read_dict did not work correctly on handles of type 'ocr_mlp' and 'ocr_svm', and on dicts containing handles of these types. This problem has been fixed.
  • When calling integer_to_handle for a handle that was already cleared, HALCON would have entered an inconsistent state that could have led to handles being erroneously cleared later on. This problem has been fixed. Calling integer_to_handle on a cleared handle now throws an error message instead of returning the handle.
  • read_dict sometimes did not work correctly on dicts containing a 2D data code model. This problem has been fixed.
XLD
  • connect_grid_points accepted a wrong number of elements for the control parameter Sigma and crashed for an empty tuple. This problem has been fixed.
  • In rare circumstances, distance_contours_xld could have crashed in HALCON XL. This problem has been fixed.
  • elliptic_axis_xld returned incorrect results for squares with phi=0. This problem has been fixed.
  • In some cases, when outliers were present at the ends of the input contour, fit_circle_contour_xld returned a wrong PointOrder if a geometric approximation method was used. This problem has been fixed.
  • For a large number of input contours, gen_grid_rectification_map crashed on Windows. This problem has been fixed.

Procedures

Bug Fixes

  • The procedure calculate_features used the fixed gray value range of 0,255 for FeatureName 'edge_density_histogram'. This problem has been fixed. Now, the histogram is adapted to the gray value range of the edge image instead.

HALCON/C

Bug Fixes

  • Triggering error 4056 ("Object-ID is NULL (0)") by calling a HALCON operator from the C or C++ language interfaces with an invalid object could have also invalidated a handle created by the immediately preceding operator. This problem has been fixed.

HALCON/C++

Bug Fixes

  • Operators that used the semantic type 'compute_device' returned a 'wrong type' error (#7002 or #1201) when using the operator via a corresponding method interface or the class ComputeDevice of the object oriented language interface HALCON/C++ or HALCON/.NET. This problem has been fixed.
  • Triggering error 4056 ("Object-ID is NULL (0)") by calling a HALCON operator from the C or C++ language interfaces with an invalid object could have also invalidated a handle created by the immediately preceding operator. This problem has been fixed.
  • On Linux and macOS systems, the vtable of the HSerializeItem class of the C++ language interface was not exported. This problem has been fixed.

HALCON/.NET

Bug Fixes

  • Operators that used the semantic type 'compute_device' returned a 'wrong type' error (#7002 or #1201) when using the operator via a corresponding method interface or the class ComputeDevice of the object oriented language interface HALCON/C++ or HALCON/.NET. This problem has been fixed.

Language Interface Example Programs

Bug Fixes

  • The example c#/DrawingObjects only showed a part of the HALCON window on some systems. This problem has been fixed.
  • The C language interface created for a HALCON extension package did not properly initialize output parameters, which could have led to crashes. This problem has been fixed. Note that this change affects the compatibility. Read more.

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.

Miscellaneous

  • The MVTec GigE Vision Streaming Filter version 2.2.8.3 that is part of the Windows installer fixes two problems:
    When using '[Stream]EventTransferEnd' on multiple NICs, the filter driver sporadically stopped to deliver events. Further, get_framegrabber_param(..., 'num_buffers_underrun', ...) was only available with the socket driver up to now.

Image Acquisition Example Programs

  • The new HDevelop example programs
    • hdevelop/Image/Acquisition/gstreamer_2pipelines.hdev
    • hdevelop/Image/Acquisition/gstreamer_acquisition_events.hdev
    • hdevelop/Image/Acquisition/gstreamer_nvidia_arguscamera_simple.hdev
    • hdevelop/Image/Acquisition/gstreamer_simple.hdev
    show the usage of the GStreamer interface.

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

  • The information of the third-party libraries used in the Image Acquisition and Digital I/O Interfaces has been removed from the files third_party_copyrights.html and third_party_licenses.txt and moved to the corresponding file third_party_{interface_name}.txt, also located under %HALCONROOT%. This single file contains the third-party library version, copyright and license agreement.

Digital I/O Example Programs

  • The following HDevelop example programs have been added to show the functionality of the new Linux-GPIO I/O interface:
    • hdevelop/System/IO-Devices/linux-gpio_digital_read.hdev
    • hdevelop/System/IO-Devices/linux-gpio_digital_write.hdev
    • hdevelop/System/IO-Devices/linux-gpio_list_channels.hdev

Documentation

User Guides

  • The Installation Guide mentioned an outdated path for installing the Variable Inspect in a later installation. This problem has been fixed.
  • The HDevelop User's Guide has been improved. Now, the memory usage shown in the status bar is described in chapter 6.1 "Main Window".

Reference Manual

  • The reference manual entry for the operators create_dict and set_dict_object was ambiguous regarding how objects are copied into dictionaries. This problem has been fixed.
  • The reference manual entries of create_planar_uncalib_deformable_model, create_planar_calib_deformable_model and create_local_deformable_model did not mention the restriction regarding the parameter 'AngleStep'. Further, the description of the parameter 'Contrast' was not consistent.
    These problems have been fixed.
  • The reference manual entry of elliptic_axis_xld contained a wrong operator link. This problem has been fixed.
  • The reference manual entry of expand_domain_gray has been extended to better describe how to set the parameter 'ExpansionRange', in particular for the combination with 'mean_image' on images of type 'real'.
  • The reference manual entry of fit_primitives_object_model_3d did not mention that the parameter 'fitting_algorithm' has no impact on the fitting of planes, as the same result is returned for each option. This problem has been fixed.
  • The reference manual entries of gen_measure_rectangle2 and gen_measure_arc did not state that the coordinates of the rectangle's or arc's center point are rounded internally. This problem has been fixed.
  • The reference manual entry of get_data_code_2d_param did not mention the regarded width of the quite zone parameter used for the value 'strict_quiet_zone'. This problem has been fixed.
  • Within the reference manual entry of get_points_ellipse the description of the parameter 'angle' was misleading. This problem has been fixed.
  • The reference manual entry of lines_gauss did not contain the information that the values returned in the attribute 'contrast' may be higher than the maximum gray value specified by the type of the input image if the underlying line model is not present in the image. This problem has been fixed.
  • The example in the reference manual entries of open_io_device and query_io_interface contained a misspelled variable. This problem has been fixed.
  • The reference manual entry of points_sojka did not mention the restrictions applying to the value range of the parameter 'SigmaW'. This problem has been fixed.
  • The reference manual entry for read_char had an outdated attention block. This problem has been fixed.
  • The reference manual entry of set_bar_code_param did not mention the maximum value possible for 'quiet_zone'. This problem has been fixed.

Release Documents

  • The file name for the release notes has been adapted to show also the HALCON version for which the release notes are valid. In particular, for HALCON 18.11.3.0, the release notes are stored as release_notes_18_11_3_0.html instead of release_notes.html. Additionally, for maintenance versions of HALCON steady, the release notes of the previous HALCON versions related to the same major HALCON version are stored in the file set again. For HALCON 18.11.3.0, these are the additional files release_notes_18_11_1_0.html and release_notes_18_11_2_0.html within your %HALCONROOT% directory.

Miscellaneous

  • The information of the third-party libraries used in the Image Acquisition and Digital I/O Interfaces has been removed from the files third_party_copyrights.html and third_party_licenses.txt and moved to the corresponding file third_party_{interface_name}.txt, also located under %HALCONROOT%. This single file contains the third-party library version, copyright and license agreement.
  • Within the documentation, some links within different manuals were outdated or broken. This problem has been fixed. In particular, the outdated links were updated and the links pointing to no longer existing webpages were removed from the respective manuals.

Installation

  • The Linux installer script install-linux.sh failed to install all files on certain Debian armhf-based platforms due to lack of support for file globbing in the armhf version of the default shell "dash". This problem has been fixed. Now, install-linux.sh is run using bash. Note that this change affects the compatibility. Read more.
  • The Linux-GPIO interface is now available for Arm-based platforms.
  • On macOS, the installer displayed a wrong installation path for the HALCON examples during the installation process. This problem has been fixed. Note that the examples have been installed to the correct location, while only the text displayed by the installer was incorrect.
  • The GStreamer interface is now available for Linux platforms.

Miscellaneous

  • hrun did not correctly handle non-ASCII characters in the Windows command line. This problem has been fixed.

Errata Release Notes

  • The following release note was missing in HALCON 18.11 Steady:
    If the .NET interface was used, an error occurred in the deserialization. In particular, the deserialized result was not correct. The serialization performed directly on a HALCON object was not affected by this problem. Only if the tuple constructor was used with an object to be serialized as parameter this caused a problem. This problem has been fixed.

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