Compatibility
Licenses
HALCON 18.11 Steady licenses are also valid for HALCON
18.11.4.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.4.0 Steady is fully compatible with HALCON
18.11 Steady, HALCON 18.11.2, and HALCON 18.11.3 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.3 :
HALCON Applications
Applications (i.e., executables) developed with HALCON 18.11
Steady, HALCON 18.11.2, or HALCON 18.11.3 can be used with HALCON
18.11.4.0 Steady, i.e., HALCON 18.11.4.0 Steady is binary compatible
with HALCON 18.11 Steady, HALCON 18.11.2, and HALCON 18.11.3.
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, HALCON 18.11.2, and HALCON 18.11.3,
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.4.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.4.0
Steady are library compatible to those of HALCON 18.11 Steady, HALCON
18.11.2, and HALCON 18.11.3, as well as HALCON 13.0.x.
HALCON 18.11.4.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.4.0
Steady are library compatible to those of HALCON 18.11 Steady, HALCON
18.11.2, and HALCON 18.11.3, as well as HALCON 13.0.x.
HALCON 18.11.4.0 Steady includes only a subset of available
digital I/O interfaces. Digital I/O interfaces that are included are:
Linux-GPIO, OPC_UA, and Hilscher-cifX. You can download additional
interfaces from our web server.
Extension Packages
Extension packages developed with HALCON 18.11 Steady,
HALCON 18.11.2, or HALCON 18.11.3 can be used with HALCON 18.11.4.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.
With HALCON 20.11, the x86-win32 platform version for
Windows was discontinued. Switch any existing x86-win32 applications to
the x64-win64 platform version for Windows to be able to use HALCON
20.11 or later.
Supported Operating Systems
Windows
HALCON 18.11.4.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/11 or
Windows Server 2008 R2/2012 R2/2016/2019/2022 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.4.0 Steady has been compiled for the following Linux platform versions:
- x64 platform version for Linux x86_64, GLIBC_2.17, GLIBCXX_3.4.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.4.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.4.0 Steady
The changes in HALCON 18.11.4.0 Steady are described with respect to HALCON 18.11.3 .
HDevelop
Bug Fixes
Assistants
- Deleting individual
calibration images in the Calibration Assistant, followed by adding new
images could yield incorrect calibration results as not all images were
used in the calibration process. This problem has been fixed.
- The Calibration
Assistant wrongly indicated an error when trying to modify calibration
parameters if no images were loaded. This problem has been fixed.
- The code generated
by the matching assistant for finding DXF models only considered the
first (red) channel ('ignore_local_polarity') instead of all channels
('ignore_color_polarity') when using color images. This problem has been
fixed.
- Using planar
deformable matching with calibration in the HDevelop Matching Assistant
could lead to failures, even though the model was actually found
correctly and code generated from the assistant would work fine. This
problem has been fixed. In addition, the assistant now visualizes the
transformed model contour properly for this scenario.
Code Export
- If an output
variable for an operator call was also used in an expression passed as
input parameter (e.g., concatenation), the export to C# and VB.net did
not work. This problem has been fixed.
- For C, Visual Basic .NET, and C#, HDevelop exported the comparison of two objects '( obj1 != obj2)' as test_equal_obj, without the necessary negation. This problem has been fixed.
- Using the
HDevWindowStack member functions of the C++ language interface before
calling the first HALCON operator led to a crash. This problem has been
fixed.
GUI
- For big numbers, variable inspection may have corrupted the input. This problem has been fixed.
- Minimizing the line profile dialog caused it to stop updating after ROI changes. This problem has been fixed.
- In the Move mode of
HDevelop's graphics window, moving an image outside of the graphics
window while pressing the CTRL key (i.e., displaying the pixel info)
caused the displayed image to jump and change its display size. This
problem has been fixed.
- When opening the
'Invalid Lines' tab of the Quick Navigation window, HDevelop crashed in
rare cases. This problem has been fixed.
- HDevelop crashed
when either a zoom window received keyboard input or the content of a
zoom window was moved by dragging. This problem has been fixed.
- In certain cases,
HDevelop's autocompletion obscured the line that was currently being
edited. This happened if a procedure was running in a subthread during
editing. This problem has been fixed.
- Double-clicking in the HDevelop graphics window could result in incorrect coordinates when using interactive operators like get_mposition. This problem has been fixed.
- HDevelop could crash when using the magnify mode in a graphics window. This problem has been fixed.
IDE
- If the variable
window was closed then the automatic display of changed iconic variables
in the graphics window did not work. This problem has been fixed.
- HDevelop was not able to load ROIs of the type 'Arbitrary Region' from file. This problem has been fixed.
Miscellaneous
- Calls to HDevelop's inline functions tuple_select and tuple_substr could have been corrupted by HDevelop's command line option reset_free_text. This happened when the first argument of the inline function was an infix operation, e.g., reset_free_text turned six := ([1,2,3] + [1,2,3]) [2:2] into six := [1,2,3] + [1,2,3] [2:2], which has completely different semantics. This problem has been fixed.
HDevEngine
Bug Fixes
- Failing to initialize
a vector output parameter of a procedure caused the return values for
all subsequent output parameters to be ignored as well if the call was
made using par_start. This problem has been fixed.
- Initializing HDevEngine in a multi-threaded context could cause a crash in rare cases. This problem has been fixed.
- When executing
programs or procedures with par_start subthreads, an uncaught exception
in a subthread could cause a crash of the application. This problem has
been fixed.
- When JIT compiling procedures that contained comparisons of iconic variables using the ==
operator, the HEngine could crash either during the compilation or when
attempting to execute the compiled procedure. This problem has been
fixed.
HALCON Library
New Functionality
Bar Code
- HALCON now supports the GS1 application identifier 395x.
- HALCON now supports
all GS1 application identifiers specified in the latest version of the
"GS1 General Specifications" (January 2021).
Data Code
- HALCON now supports the GS1 application identifier 395x.
- HALCON now
supports all GS1 application identifiers specified in the latest version
of the "GS1 General Specifications" (January 2021).
Bug Fixes
3D
- Some files in the binary PLY format could not be read by read_object_model_3d. This problem has been fixed.
- The procedure visualize_object_model_3d
returned the error "Wrong type or value for parameter" when the used
attribute for GenParamName 'color_attrib', 'red_channel_attrib',
'green_channel_attrib', 'blue_channel_attrib' was not attached to the
points of the 3D object model. This problem has been fixed.
visualize_object_model_3d
now returns the error extended by GenParamValue "may not be attached to
the points of the 3D object model. Compare the parameter
AttachExtAttribTo of set_object_model_3d_attrib."
- When using find_surface_model with 'ReturnResultHandle' set to 'true', a memory leak occurred. This problem has been fixed.
- triangulate_object_model_3d, find_text, segment_object_model_3d, and prepare_object_model_3d with parameter 'Purpose' set to 'segmentation' have not been thread-safe. This problem has been fixed.
- register_object_model_3d_pair and register_object_model_3d_global
crashed, leaked memory, or deadlocked if at least one of the input
models did not contain any points. This problem has been fixed.
- Errors were not handled properly when passing wrong parameters to set_metrology_model_param, get_metrology_model_param, select_object_model_3d, volume_object_model_3d_relative_to_plane, or adjust_mosaic_images. This problem has been fixed.
- triangulate_object_model_3d with 'Method' set to 'greedy' crashed in very rare cases. This problem has been fixed.
- binocular_disparity, binocular_distance, and reconstruct_surface_stereo
for a stereo model with 'disparity_method' set to the default
'binocular' may have crashed in rare cases when applied to large images.
This problem has been fixed.
- pose_compose, pose_invert, serialize_pose, write_pose, set_metrology_model_param, create_calib_descriptor_model, create_planar_calib_deformable_model, create_planar_calib_deformable_model_xld, refine_surface_model_pose, refine_surface_model_pose_image, and set_surface_model_param
did not raise an error when an input pose contained an invalid pose
type in its last entry. This problem has been fixed. Now, the operators
return the error 8427 ("Wrong type in Pose (rotation / translation)").
- segment_object_model_3d
could crash if the input 3D object model contained triangles that were
topologically invalid. This problem has been fixed. Now, the operator
returns an error when encountering such a topology.
- simplify_object_model_3d in rare cases generated meshes that subsequently could not be segmented by segment_object_model_3d but raised an error. This problem has been fixed.
- disp_object_model_3d, display_scene_3d, and render_object_model_3d in rare cases might have crashed for ObjectModel3D containing primitives not of type plane. get_object_model_3d_params
with GenParamName set to 'has_primitive_rms' or 'primitive_rms' in rare
cases did not work correctly for primitives of type plane. These
problems have been fixed.
- triangulate_object_model_3d
with 'Method' set to 'implicit' in rare cases generated meshes that
were not watertight, i.e., were not completely closed. This problem has
been fixed.
- set_scene_3d_instance_param
did not work correctly if (unrelated) instances had been removed from
the scene before. This problem has been fixed. Note that this change
affects the compatibility. Read more.
Bar Code
- In rare cases, find_bar_code failed to decode Pharmacodes if the width of a thick bar was larger than the width of the spaces. This problem has been fixed.
- In rare cases, find_bar_code, decode_bar_code_rectangle2, get_bar_code_result, and get_bar_code_object raised the error 3513 ("Internal error: number of chords too big for num_max"). This problem has been fixed.
- When in training mode, find_bar_code sometimes returned results that could not be decoded with the trained parameter afterwards. This problem has been fixed.
- In very rare cases, find_bar_code
could have caused a deadlock if the barcode parameter 'merge_scanlines'
was set to 'true'. This problem has been fixed. Note that this change
affects the compatibility. Read more.
- In find_bar_code,
the training of the parameter 'barcode_width_min' could lead to wrong
results when training multiple different images. This problem has been
fixed.
- In rare cases, find_bar_code
could misread certain GS1 Databar Limited barcodes, resulting in a
slightly wrong symbol region and an incorrectly decoded string. This
problem has been fixed.
- For Pharmacodes with 16 bars, get_bar_code_result always returned the 'Decode' grade 0 ('quality_isoiec15416'). This problem has been fixed.
- In some cases, find_bar_code
did not return any result if it was aborted or a timeout was set even
though results could have been found with a smaller timeout or earlier
abort. This problem has been fixed.
Classification
- add_sample_class_train_data wrongly handled mixed float and integer values inside the parameter 'Features'. This problem has been fixed.
Color Processing
- In rare cases, an overflow could occur in the operator trans_from_rgb for the color spaces 'cielchab' and 'cielchuv', leading to wrong results for single pixels. This problem has been fixed.
Compute Device
- When used with large images of more than two gigapixels, some OpenCL operations (arithmetic image operations like abs_diff_image) were very slow or returned an error. This problem has been fixed.
Data Code
- In some cases, get_data_code_2d_results
returned inconsistent values if a result-specific parameter name was
passed in 'ResultNames' but 'CandidateHandle' was set to 'general'. This
problem has been fixed. Now, get_data_code_2d_results returns the value '-1' in those cases. Note that this change affects the compatibility. Read more.
- For mirrored Data Matrix ECC 200 codes with a square shape, get_data_code_2d_objects returned wrong results for 'module_1_rois' and 'module_0_rois' in some cases. Additionally, get_data_code_2d_results returned wrong results for 'bin_module_data' for the same cases. These problems have been fixed.
- In very rare cases, find_data_code_2d showed non-deterministic behavior if the Data Matrix ECC 200 code was located very close to the image borders. This problem has been fixed.
- get_data_code_2d_objects returned wrong results for 'module_1_rois' and 'module_0_rois' in case of mirrored QR codes. This problem has been fixed.
- When find_data_code_2d
was called in training mode for data codes with modules greater than
100 pixel, the parameters 'module_size_min' and 'module_size_max' in
some cases were set to values greater than 100, thus exceeding the
maximum value that can be set for them with set_data_code_2d_param. This problem has been fixed.
- For Data Matrix ECC 200 symbols, get_data_code_2d_results
in some cases returned wrongly calculated grades for fixed pattern
damage with the parameters 'quality_aimdpm_1_2006' or
'quality_isoiec_tr_29158'. This problem has been fixed.
- find_data_code_2d
in rare cases could not find and decode mirrored Data Matrix ECC 200
codes if the parameter 'mirrored' was set to 'yes' but could if it was
set to 'any'. This problem has been fixed.
- For mirrored Data Matrix ECC 200 codes with a square shape and multiple data fields, get_data_code_2d_objects returned wrong results for 'module_1_rois' and 'module_0_rois' in some cases. This problem has been fixed.
- HALCON did not cope
well with QR codes encoded in local encoding where a single character
was split between two decoding modes. This problem has been fixed.
- The grades for
Unused Error Correction, Modulation, and Reflectance Margin have been
computed incorrectly for M1 MicroQR codes. This problem has been fixed.
- get_data_code_2d_objects
leaked memory if the process and/or search image for candidates with a
process and/or search image on pyramid level -1 was queried. This
problem has been fixed.
- The QR code reader crashed in rare cases with very small codes. This problem has been fixed.
Deep Learning
- Serializing and deserializing a classifier as a handle was leading to a crash. This problem has been fixed.
File
- In rare cases, read_image read only one color channel of bitmap RGB image files (BMP). This problem has been fixed.
- read_image leaked memory for 'jpegxr' images containing an alpha channel. This problem has been fixed.
Filter
- abs_diff_image
with image type 'byte' returned wrong results if the multiplication
parameter was larger than 127 and at least one of the available SIMD
optimizations (SSE41 or AVX2) were enabled. This problem has been fixed.
- In rare cases, abs_diff_image
returned wrong results for image type 'byte' and 'int1' on all
supported platforms. The maximum difference was 1 gray value. This
problem has been fixed.
- In rare cases, optical_flow_mg could return nondeterministic results that might include NaNs. This problem has been fixed.
Graphics
- If any interpolation mode but 'nearest_neighbor' was chosen with set_part_style,
the visualization displayed garbage data outside the image when setting
the window part such that the image did not completely fill the window.
This problem has been fixed.
- When using specific corner-case parameters with legacy pixmap windows, a crash could occur. This problem has been fixed.
- drag_region1, drag_region2, and drag_region3 could not be canceled correctly using the HDevelop stop button when running in windows opened with open_window. This problem has been fixed.
- In very rare cases, draw_rectangle2
returned the error 3513 ("Internal error: number of chords too big for
num_max") if the current image part was very small. This problem has
been fixed.
- In very rare cases, dev_display and disp_obj
crashed if the region or image domain to be displayed had to be scaled
down to fit the window and contained a large number of runlengths. This
problem has been fixed.
- get_os_window_handle could return truncated handles on 64-bit systems. This problem has been fixed.
- get_drawing_object_iconic and get_drawing_object_params were not synchronized with window events. In rare cases, get_drawing_object_iconic thus returned the error 3513 ("Internal error: number of chords too big for num_max"). This problem has been fixed.
- disp_obj with the '3d_plot' paint mode displaying contour lines crashed in rare cases on Linux systems. This problem has been fixed.
Images
- threshold in rare cases did not clip 'MinGray' and 'MaxGray' to the correct bounds for 'int4' images. set_grayval in rare cases did not clip 'Grayval' to the correct bounds for 'int8' images. gen_image_proto, paint_region, and overpaint_region in some cases for large values did not paint the correct 'Grayval' for 'int8' images. These problems have been fixed.
- cooc_feature_matrix could crash on non-symmetric input. This problem has been fixed. Now, cooc_feature_matrix returns the error 2106 ("Wrong image width") in case of non-symmetric input.
- write_image did not correctly write images bigger than 2 GB. This problem has been fixed.
Morphology
- gray_range_rect crashed in rare cases if operator parallelization was disabled. This problem has been fixed.
OCR
- In some cases, the result of find_text
with text models of mode 'auto' was dependent on the internal image
width and height of the system or the current thread. This problem has
been fixed.
- In multi-threading applications, HALCON could crash during the execution of do_ocr_word_cnn, do_ocr_word_mlp, do_ocr_word_svm, or do_ocr_word_knn. This problem has been fixed.
- In some cases, text_line_orientation
used uninitialized values outside of the input region, which led to
inaccurate results. This problem has been fixed. Note that this change
affects the compatibility. Read more.
- In some cases, find_text returned overlapping or duplicate regions when using text models created with mode 'auto'. This problem has been fixed.
Region
- gen_region_points, gen_region_runs, and gen_rectangle1
did not raise an error if coordinates were too small or too big for
MAX_FORMAT. This problem has been fixed. Now, they return the errors
3040 ("Row value of a coordinate > 2^15-1"), 3041 ("Row value of a
coordinate < -2^15"), 3042 ("Column value of a coordinate >
2^15-1"), or 3043 ("Column value of a coordinate < -2^15"),
respectively.
- rectangularity, as well as region_features and select_shape for the feature 'rectangularity', sometimes unnecessarily ran out of memory for very large regions. This problem has been fixed.
Segmentation
- The operators watersheds and watersheds_threshold
did not always return the correct watersheds when passing an image of
type 'real' with a reduced domain. This problem has been fixed.
System
- Under certain conditions, timeouts for socket operations were ignored. This problem has been fixed.
- Under certain
language settings on Windows systems, socket-related extended error
messages were not encoded correctly and unreadable. This problem has
been fixed.
- In rare cases,
HALCON could crash when resetting a program in HDevelop with F2 while a
mutex or another synchronization object was destructed. This problem has
been fixed.
Tuple
- When calling the operators get_handle_tuple, get_handle_object, or get_handle_param
simultaneously from two different threads for the first time, HALCON
could return an incorrect error code or in crash in rare cases. This
problem has been fixed.
- Serializing the same dictionary or message either through write_dict, write_message, or serialize_handle
from multiple threads at the same time could lead to incorrect
serializations, error messages or, in rare cases, crashes. This problem
has been fixed. The serialization of dictionaries and handles is now
fully reentrant.
- When calling integer_to_handle
with multiple input integers and if some of those integers did not
represent a handle or represented a cleared handle, the operator could
leave the other handles in a defective state. This problem has been
fixed.
- If the handle legacy mode was enabled and either clear_handle was called twice on the same handle, or handle_to_integer
was called on an already cleared handle, HALCON could show undefined
behavior and crash in rare cases. These problems have been fixed. handle_to_integer now raises an exception when called on an already cleared handle.
XLD
- read_contour_xld_dxf and read_polygon_xld_dxf
did not properly treat the orientation of the arbitrary axis for the
DXF 2D entities POLYLINE and ARC. This caused wrong position and/or
orientation of XLDs when an arbitrary axis was specified. This problem
has been fixed.
- DxfStatus messages of read_contour_xld_dxf and read_polygon_xld_dxf were not returned completely in some cases. This problem has been fixed.
- In rare cases, union_cotangential_contours_xld returned suboptimal results when the parameter 'FitLength' was set to 'auto'. This problem has been fixed.
- When connecting both ends of two contours to each other, union_cotangential_contours_xld sometimes connected the wrong endpoints. This problem has been fixed.
- gen_cube_map_mosaic and gen_spherical_mosaic may have crashed in rare cases. This problem has been fixed.
- Certain excessively large values of 'Lookaround' for get_contour_angle_xld were not detected as invalid, resulting in a crash. This problem has been fixed.
- gen_contour_nurbs_xld
crashed if an empty tuple was passed to the parameter 'Weights'. This
problem has been fixed. Now, if an empty tuple is passed, the default
value 'auto' is used.
- distance_cc_min_points returned an erroneous point in case of crossing contours. This problem has been fixed.
- union_collinear_contours_xld did not unite almost collinear contours for large values of 'MaxAngle' in rare cases. This problem has been fixed.
HALCON/C++
Bug Fixes
- The ToLArr, ToDArr,
and ToSArr HTuple member functions in the HALCON C++ language interface
could leak memory in case an exception was thrown. This problem has been
fixed.
- Accessing the string
value of a tuple element with .C() threw an exception when the tuple was
a mixed tuple. This problem has been fixed.
HALCON/.NET
Bug Fixes
- On 64-bit systems,
certain window messages could lead to arithmetic overflow when using
HWindowControlWPF. This problem has been fixed.
HBench
Bug Fixes
- The hbench memory benchmarks could crash on Linux machines in low memory situations. 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.
Miscellaneous
- GStreamer Image Acquisition Interface was not listed when requesting the parameter 'Name' of the operator info_framegrabber or open_framegrabber via the operator get_param_info.
Linux-GPIO I/O Interface was not listed when requesting the parameter 'IOInterfaceName' of the operator control_io_interface, open_io_device, or query_io_interface via the operator get_param_info. These problems have been fixed.
- The MVTec GigE Vision Streaming Filter version 2.2.8.4, which is part of the Windows installer, fixes two problems:
- With the streaming filter, EventTransferEnd was only fired for successfully received blocks but not for undeliverable ones.
- In rare cases, if an
application did not shutdown gracefully while streaming was underway,
automatic unloading of the streaming filter could lead to a crash of the
operating system.
Image Acquisition Example Programs
- The HDevelop example
program
hdevelop/Image/Acquisition/genicamtl_basler_tof_objectmodel3d.hdev has
been replaced with the new example program
genicamtl_basler_blaze_objectmodel3d.hdev.
- It is now possible to
write and load persistence files for individual GenTL Producer modules
or the GenTL Consumer if the device has already been opened. This was so
far only possible for the remote device. The persistence file to be
written or loaded is selected with the parameter 'settings_selector'.
The following HDevelop examples have been added to
demonstrate writing parameter values to files and restoring parameter
values from files:
- hdevelop/Image/Acquisition/gstreamer_parameter_persistence.hdev
- hdevelop/Image/Acquisition/gigevision2_parameter_persistence.hdev
- hdevelop/Image/Acquisition/genicamtl_parameter_persistence.hdev
- hdevelop/Image/Acquisition/usb3vision_parameter_persistence.hdev
- The example
hdevelop/Image/Acquisition/usb3vision_information.hdev has been added to
gather information about the system and the camera configuration for
USB3Vision devices.
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.
Documentation
Programmer's Manuals
- The documentation did
not mention that HALCON Variable Inspect cannot inspect objects located
in GPU but only those in CPU memory. The Programmer's Guide has been
updated accordingly.
User Guides
- The list of reserved words in the HDevelop User's Guide was not complete. This problem has been fixed.
Solution Guides
- The Solution Guide
III-C 3D Vision still stated that camera parameters, camera pose, light
plane pose, and movement pose of calibrated sheet-of-light models could
not be obtained. As this is not the case anymore, the corresponding
section has been adapted.
Reference Manual
- The reference manual entries of add_scene_3d_camera, disp_object_model_3d, object_model_3d_to_xyz, and project_object_model_3d now explain more about using camera distortion on faces and primitives.
- The reference manual entry for find_planar_uncalib_deformable_model contained a paragraph that was only available in German. This problem has been fixed. Now, it is included for all languages.
- The reference manual entry for get_disp_object_model_3d_info
erroneously mentioned that the operator would return an error in case
of faulty row and column input values. This problem has been fixed.
- The reference manual entry of reconstruct_surface_stereo
stated that small base lines instead of long base lines between camera
pairs are more suitable for the extraction of depth information. This
problem has been fixed.
- The reference manual entry of rectangle1_domain stated that the old image domain would be ignored, which is not the case. The reference has been adapted accordingly.
- The reference manual still mentioned an outdated option of using set_paint with 'histogram'. This problem has been fixed.
- The reference manual entry of write_dl_model did not mention that the runtime-specific parameters 'runtime' and 'runtime_init' are not written. This problem has been fixed.
Miscellaneous
- The Installation Guide
mentioned Visual Studio support up to version 2017. This has been
extended to include version 2019 as well.
Installation
- The MVTec GigE Vision Streaming Filter version 2.2.8.4, which is part of the Windows installer, fixes two problems:
- With the streaming filter, EventTransferEnd was only fired for successfully received blocks but not for undeliverable ones.
- In rare cases, if an application
did not shutdown gracefully while streaming was underway, automatic
unloading of the streaming filter could lead to a crash of the operating
system.
Release Notes of Previous HALCON Versions
Follow this link to read about the changes of previous HALCON versions.