注册登陆后可查看附件和大图,以及购买相关内容
您需要 登录 才可以下载或查看,没有账号?注册会员
x
MVTEC Halcon 22.11.3.0 Steady Full Version Linux for Arm armv7a-linux HALCON22.11.3.0稳定版完整版 64位armv7a-linux版
HALCON 22.11.3.0 Full Version (armv7a-linux):
文件名: halcon-22.11.3.0-armv7a-linux.zip
文件大小: 1197453490 字节 (1.12 GB)
修改日期: 2024-08-10 17:55
MD5: 57108347a5f708f6404a489deefb7b63
SHA1: ba24c7a684a997b3674a2e3891af4bbf1b4b3042
SHA256: fcf3e8693fac0b7ace1d49ea7a14dfeedc8dc52e561542c05a72b91a8e151629
CRC32: 233d80f5
MVTEC官方下载
www.mvtec.com
百度网盘下载地址:
通过百度网盘分享的文件:halcon-22.11.3.0-armv7a-linux.zip
链接:https://pan.baidu.com/s/1W87R0Eh8i66GNaJEP5-91g
提取码:
--来自百度网盘超级会员V7的分享
Release Notes for HALCON 22.11.3.0 SteadyThis document provides the release notes for MVTec HALCON 22.11.3.0 Steady, as released in July 2024. Contents- Compatibility
- Licenses
- HALCON Library
- HALCON Applications
- Image Acquisition Interfaces
- Digital I/O Interfaces
- Extension Packages
- Further Compatibility Information
- Supported Operating Systems
- Detailed Description of Changes in HALCON 22.11.3.0 Steady
- HDevelop
- Bug Fixes
- HDevelop Example Programs
- HDevEngine
- HALCON Library
- New Functionality
- Bug Fixes
- Procedures
- HALCON/C
- HALCON/C++
- HALCON/.NET
- HALCON/PYTHON
- Language Interface Example Programs
- Extension Packages
- Image Acquisition Interfaces
- Digital I/O Interfaces
- Documentation
- Installation
- Licensing
- Release Notes of Previous HALCON Versions
CompatibilityLicensesHALCON 22.11 Steady licenses are also valid for HALCON 22.11.3.0 Steady. In contrast, all HALCON 20.11 licenses or licenses of earlier versions must be replaced or upgraded. Please contact your local distributor.
HALCON LibraryHALCON 22.11.3.0 Steady is fully compatible with HALCON 22.11 Steady and HALCON 22.11.2 except for the changed behavior of some operators owing to bug fixes. Compared to HALCON 20.11, many extensions have been introduced. Thus, the HALCON 22.11 Steady libraries are not compatible with HALCON 20.11 or earlier versions. In detail, please note the following incompatibilities with respect to HALCON 22.11.2 : - affine_trans_object_model_3d does not copy primitives anymore. affine_trans_object_model_3d and rigid_trans_object_model_3d do not copy precomputed data structures for 3D distance computation anymore. More information.
- The values retrieved by get_generic_shape_model_param of user-set parameters, i.e., the parameters queried with suffix '_param', may be different for HALCON versions after and including 22.11. Additionally, resulting shape models of train_generic_shape_model may be different.
To retain consistent behavior of get_generic_shape_model_param and train_generic_shape_model after reading shape models written with HALCON versions before 21.05, users have to set affected parameters to the values written in the shape model. For example, the parameter num_levels has to be queried first using get_generic_shape_model_param(ModelID, 'num_levels', NumLevels), and then set by set_generic_shape_model_param(ModelID, 'num_levels', NumLevels) to achieve that NumLevelsParam from get_generic_shape_model_param(ModelID, 'num_levels_param', NumLevelsParam) results in the same value as NumLevels. More information. - The behavior of train_generic_shape_model_param with a shape model created by create_shape_model, create_shape_model_xld, create_scaled_shape_model, create_scaled_shape_model_xld, create_aniso_shape_model, or create_aniso_shape_model_xld can differ regarding its treatment of 'min_contrast' and 'contrast'. More information.
- Due to numerical instabilities, the calculation of the value compared with aniso_scale_change_restriction has been fixed which can result in different results obtained by find_local_deformable_model, find_planar_calib_deformable_model, and find_planar_uncalib_deformable_model. More information.
- convex_hull_object_model_3d, triangulate_object_model_3d, intersect_plane_object_model_3d, register_object_model_3d_pair, and register_object_model_3d_global now return error 9526 ("Primitive in 3D object model has no extended data") instead of one of the errors 9203, 9511, 9514, 9515, 9517, or incorrect results for infinite primitives of type cylinder or plane. More information.
HALCON ApplicationsApplications (i.e. executables) developed with HALCON 22.11 Steady or HALCON 22.11.2 can be used with HALCON 22.11.3.0 Steady, i.e., HALCON 22.11.3.0 Steady is binary compatible with HALCON 22.11 Steady and HALCON 22.11.2. All programs (C, C++ or .NET) that have been developed with HALCON 20.11 must be recompiled. The incompatibility with HALCON 20.11 or earlier versions mainly concerns the binaries, with only few changes in the language interfaces. If you encounter problems during recompiling your programs, please check the detailed description of changes below and for HALCON 22.11 Steady and HALCON 22.11.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 22.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. 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 InterfacesIn general, image acquisition interfaces of HALCON 22.11.3.0 Steady are library compatible to those of HALCON 22.11 Steady and HALCON 22.11.2, as well as HALCON 20.11. HALCON 22.11.3.0 Steady includes only a subset of available image acquisition interfaces. Image acquisition interfaces that are included are: DirectFile, DirectShow, File, GenICamTL, GigEVision2, GStreamer, RealSense, USB3Vision, and Video4Linux2. You can download additional interfaces from our web server.
Digital I/O InterfacesIn general, digital I/O interfaces of HALCON 22.11.3.0 Steady are library compatible to those of HALCON 22.11 Steady and HALCON 22.11.2, as well as HALCON 20.11. HALCON 22.11.3.0 Steady includes only a subset of available digital I/O interfaces. Digital I/O interfaces that are included are: OPC_UA, Hilscher-cifX, and Linux-GPIO. You can download additional interfaces from our web server.
Extension PackagesExtension packages developed with HALCON 22.11 Steady or HALCON 22.11.2 can be used with HALCON 22.11.3.0 Steady without further action. Extension packages developed with HALCON 20.11 or earlier versions must be re-generated. Note that the old makefiles for HALCON/C++ must be adapted according to the sample makefile under extension_packages/halconuser.
Further Compatibility Information- For gray_histo, gray_histo_abs, and gray_histo_range, the input parameter 'Regions' has been renamed to 'Region', which breaks compatibility in case of calls with keyword argument. More information.
Supported Operating SystemsWindowsHALCON 22.11.3.0 Steady has been compiled for the x64-win64 platform version for Windows 8.1/10 (x64 editions)/11 or Windows Server R2/2012 R2/2016/2019/2022 on Intel 64 or AMD 64 with SSE2 (AVX2 dispatch) processors.
LinuxHALCON 22.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.21, on Intel 64 or AMD 64 with SSE2 (AVX2 dispatch) processors
- armv7a platform version for Linux armv7a, Kernel with hidraw support, hard-float ABI, GLIBC_2.17, GLIBCXX_3.4.21 on Armv7-A processors with NEON support
- aarch64 platform version for Linux aarch64, Kernel with hidraw support, GLIBC_2.17, GLIBCXX_3.4.21 on AArch64 processors with AArch64 support
Please refer to the Installation Guide for detailed system requirements corresponding to the different Application Binary Interfaces.
macOSHALCON 22.11.3.0 Steady has been compiled for the x64 platform version of macOS 11, macOS 12 on Intel 64 with SSE2.
Detailed Description of Changes in HALCON 22.11.3.0 SteadyThe changes in HALCON 22.11.3.0 Steady are described with respect to HALCON 22.11.2 . HDevelopBug FixesAssistants- In the HDevelop Matching Assistant, 'Display Image Pyramid Level' for the correlation-based, descriptor-based, and deformable matching was disabled. This problem has been fixed.
Code Export- The C export of dev_open_window did not work when the background color was not a constant value literal. This problem has been fixed.
GUI- Adding a new tuple element in HDevelop's Variable Inspect Window was not possible anymore. This problem has been fixed.
Procedures- For procedures without short description, the title of the corresponding (empty) section in the HTML documentation of the procedure always appeared in English, regardless of the selected language. This problem has been fixed.
Miscellaneous- Using HDevelop via command line, e.g., for hdevelop -convert operations, did not properly return floating licenses. This problem has been fixed.
- Compute devices were not deactivated when resetting the program in HDevelop (e.g., when pressing F2). This problem has been fixed.
HDevelop Example ProgramsBug Fixes- The HDevelop example program hdevelop/Calibration/Multi-View/calibrate_cameras_monocular.hdev in very rare cases raised an error. This problem has been fixed.
- The HDevelop examples locate_car_door, locate_engine_parts, and create_planar_calib_deformable_model mentioned erroneous coordinate systems in their explaining comments. This problem has been fixed.
HDevEngineBug Fixes- On Windows, accessing a non-existing dictionary key in a comparison using the dot syntax in JIT-compiled code did not always throw a proper exception. This problem has been fixed.
- Unloading an individual library procedure was not a well-defined operation and could cause a crash. This problem has been fixed. Now, calling UnloadProcedure on a library procedure implicitly unloads the entire library. Later attempts to create an HDevProcedure from one of the library procedures will reload the library.
HALCON LibraryNew FunctionalityBar Code- The new GS1 Application Identifiers 4330 (MAX TEMP F.), 4331 (MAX TEMP C.), 4332 (MIN TEMP F.), 4333 (MIN TEMP C.), and 8030 (DIGSIG) are now supported.
Data Code- The new GS1 Application Identifiers 4330 (MAX TEMP F.), 4331 (MAX TEMP C.), 4332 (MIN TEMP F.), 4333 (MIN TEMP C.), and 8030 (DIGSIG) are now supported.
Bug Fixes3D- affine_trans_object_model_3d copied primitives without modification. affine_trans_object_model_3d and rigid_trans_object_model_3d copied precomputed data structures for 3D distance computation without modification. These problems have been fixed. Now, these attributes are not copied anymore. Note that this change affects the compatibility. Read more.
- sample_object_model_3d threw an error with 3D primitives as input models when using methods furthest_point or furthest_point_compute_normals. However, the reference stated that the method is ignored for 3D primitives. This problem has been fixed. Now, the operator ignores the method and does not throw an error.
- disp_object_model_3d and render_object_model_3d leaked memory in some error cases. This problem has been fixed.
- gen_camera_setup_object_model_3d sometimes returned unintuitive cones for ConeLength= 'auto', and wrong cones for image-side telecentric cameras. This problem has been fixed.
- get_stereo_model_param sometimes leaked memory in case it raised an error. This problem has been fixed.
- max_diameter_object_model_3d, smallest_sphere_object_model_3d, smallest_bounding_box_object_model_3d, convex_hull_object_model_3d, distance_object_model_3d, and select_object_model_3d leaked memory when used with the parameters 'diameter_object' or 'diameter_bounding_box'.
prepare_object_model_3d leaked memory when used with the parameter 'distance_computation'.
In some cases, triangulate_object_model_3d, intersect_plane_object_model_3d, register_object_model_3d_pair, register_object_model_3d_global, and sample_object_model_3d also were affected. These problems have been fixed. - uncalibrated_photometric_stereo returned pixels with the value NaN in the output NormalField and Gradient images in rare cases. This problem has been fixed. Now, in case the reconstruction for some pixels cannot be calculated, the pixels of the resulting NormalField and Gradient are set to 0.
- write_object_model_3d accessed invalid memory in rare cases. This problem has been fixed.
- reconstruct_surface_stereo did not support OpenCL compute devices when 'disparity_method' was set to 'binocular_ms'. This problem has been fixed.
- On Windows, reading 3D STL files that are larger than 2 GB with read_object_model_3d did not always work. This problem has been fixed.
- intersect_plane_object_model_3d, convex_hull_object_model_3d, register_object_model_3d_pair, and register_object_model_3d_global sometimes delivered erroneous results for input models of primitive type 'cylinder'. This problem has been fixed.
- get_object_model_3d_params with the generic parameter 'has_points' returned 'true' for models created with empty XYZ mappings, which do not have any points. This problem has been fixed. Now, 'has_points' only returns 'true' if the 3D Object Model has at least one point.
- intersect_plane_object_model_3d crashed when using multiple input object models, when a model containing polygons was followed by a model without polygons. This problem has been fixed.
- convex_hull_object_model_3d, triangulate_object_model_3d, intersect_plane_object_model_3d, register_object_model_3d_pair, and register_object_model_3d_global behaved inconsistently for infinite primitives of type cylinder or plane. Depending on the input data, the operators returned different errors (9203, 9511, 9514, 9515, 9517) or incorrect results. This problem has been fixed. Now, the operators return error 9526 ("Primitive in 3D object model has no extended data") for infinite primitives. Note that this change affects the compatibility. Read more.
Bar Code- read_bar_code_model, write_bar_code_model, serialize_bar_code_model, and deserialize_bar_code_model did not consider the bar code model parameter 'quiet_zone'. This problem has been fixed. Now, the quiet zone value is correctly read, written, serialized, and deserialized, respectively.
- The quiet zone check settable via set_bar_code_param did not correctly work if the successful decode was based on the 'small_elements_robustness' feature. In these cases, the quiet zone check could invalidate correct decodes even though the quiet zone was completely free of any defects. This problem has been fixed.
- Some PharmaCode barcodes could not be read if the ratio of the number of wide bars to the number of narrow bars was extremely large. This problem has been fixed.
- In some cases, find_bar_code could decode barcodes by using edges outside the specified reduced image domain. This problem has been fixed. Now, edges outside the image domain will never be used for the decoding attempt.
- In some cases, get_bar_code_result and get_bar_code_object could fail to return the correct status and objects for a successfully decoded candidate. This problem has been fixed.
- find_bar_code did not always use the correct gray values as reference for the bar/space classification during the decoding step if the 'merge_scanlines' feature was used. This problem has been fixed. Note that the change can lead to slightly different decoding performance in rare cases.
Data Code- find_data_code_2d with Data Matrix ECC 200 codes in rare cases returned the error 3513 ("Internal error: number of chords too big for num_max"). This problem has been fixed.
- Calling find_data_code_2d with the set_system parameter 'database' set to true could cause HALCON to hang or crash. This problem has been fixed.
- The Aztec Code reader decoded codes with less than 3 words for error correction. These codes do not conform to ISO/IEC 24778:2008 and reading codes with less than 3 words for error correction increases the probability of a false read. This problem has been fixed and the Aztec Code reader now only reads conforming codes with at least 3 words for error correction.
- get_data_code_2d_results in some cases crashed for (Micro) QR Code models if the result parameter 'orientation' was used together with other parameters. This problem has been fixed.
- The ECC 200 reader returned false positives in very rare cases. This problem has been fixed.
- The DataMatrix reader in rare cases leaked a small amount of memory. This problem has been fixed.
- find_data_code_2d crashed if the image width or image height exceeded the maximum image size allowed with small modules robustness set to 'high'. This problem has been fixed.
- In rare cases, the modules obtained by get_data_code_2d_objects with `module_1_rois' or 'module_0_rois' were mirrored if 'finder_pattern_tolerance' was set to 'any' or 'high' and 'mirrored' was set to 'any'. This problem has been fixed.
Deep Learning- In some rare cases when deep learning operators could not access the CUDA functionality for some reason, the subsequent operator call could wrongly display an unrelated extended error information about the CUDA functionality in case of failure. This problem has been fixed.
- If the 'solver_type' of a deep learning model was set to 'adam' and then back to 'sgd' to allow reading with versions older than HALCON 22.05, this forward compatibility was broken. This problem has been fixed. Now, deep learning models can be read with older versions as long as the 'solver_type' is changed back to 'sgd'.
- set_dl_model_param leaked memory for the parameter 'device' if the model device was an AI2 device and it was changed to a standard CPU- or GPU-device. This problem has been fixed.
- When running GC-AD inference and calculating the anomaly score for very big images, an error "DL Internal Error" was thrown. This problem has been fixed.
- get_dl_model_layer could crash if layers were requested in a different order than they appeared in the network graph. This problem has been fixed.
- apply_deep_ocr returned wrong detection results when called with multiple images of different size. This problem has been fixed.
- HALCON has been extended with the public procedure get_image_dir. This procedure returns the directories that will be searched by HALCON when reading images (e.g., with read_image or read_sequence). This may include but is not limited to the contents of the HALCONIMAGES environment variable and the local directory.
Example programs now use get_image_dir instead of manually constructing the path using the example directory.
File- read_sequence could crash HALCON XL when reading very large binary images. This problem has been fixed.
- json_to_dict and read_dict could not convert JSON arrays containing at least one JSON object to a tuple containing dicts when the option 'convert_json_arrays_to' was set to 'tuple' or 'tuple_if_possible'. This problem has been fixed.
Filter- In rare cases, convol_image could raise error 3513 ("Internal error: number of chords too big for num_max") for non-rectangular input regions. This problem has been fixed.
- gen_gauss_pyramid, zoom_image_size, and zoom_image_factor could produce wrong values along the right and bottom image borders for zoom factors equal to 0.5 and interpolation set to 'weighted' if the input images had odd dimensions. There could also be an effect for exhaustive_match_mg during the resolution pyramid creation. This problem has been fixed.
- gen_gauss_pyramid, zoom_image_size, and zoom_image_factor did not respect rounding effects for byte, int2 and uint2 images for zoom factors equal to 0.5 and interpolation set to 'weighted'. There could also be an effect for exhaustive_match_mg during the resolution pyramid creation of byte images. This problem has been fixed.
Graphics- HALCON could crash when displaying large vector fields with disp_obj or dev_display. This problem has been fixed.
- When a drawing object was detached and as a consequence the next drawing object in a window was selected while the 'on_select' callback was registered for this drawing object, HALCON returned an error. This problem has been fixed.
- Using the 'pixmap' or 'PostScript' window type leaked memory when HALCON was loaded and unloaded. This problem has been fixed.
- set_drawing_object_params returned an error for very small rectangular drawing objects. This problem has been fixed.
Further, the signature of drawing object callback functions has not been updated to HALCON handles in the reference documentation. This problem has been fixed.
Identification- When training the Aztec Code reader, find_data_code_2d did not accept 'contrast' as parameter to be trained, instead it expected 'contrast_min'. This problem has been fixed, and both values are accepted now.
Inspection- Due to numerical instabilities, the calculation of the value compared with aniso_scale_change_restriction could have failed in special cases to produce meaningful values for operators find_local_deformable_model, find_planar_calib_deformable_model, and find_planar_uncalib_deformable_model. This problem has been fixed. Note that this change affects the compatibility. Read more.
Images- On Windows, reading memory blocks that are larger than 2 GB using read_memory_block could return an error. This problem has been fixed.
- When using the set_system options 'extern_alloc_funct' or 'extern_free_funct' in conjunction with read_image to read a PNG file with alpha channel, the var_threshold operator or the concat_ocr_trainf operator resulted in a heap corruption error. This problem has been fixed.
Matching- find_shape_model, find_shape_models, find_scaled_shape_model, find_scaled_shape_models, find_aniso_shape_model, and find_aniso_shape_models could run into undefined behavior when using a pregenerated model with a model center outside the model region. This problem has been fixed. In rare cases, this can lead to runtime regressions.
Note that the change leads to a new shape matching file version. As a result, models created with this HALCON version cannot be read in by older HALCON versions. - find_shape_models, find_scaled_shape_models, and find_aniso_shape_models returned overlapping instances of different models, although they should have been excluded based on the user-defined max_overlap, if the num_matches were set per model, too. This problem has been fixed.
- find_generic_shape_model suppressed correct matches when the option 'strinct_boundaries' is set to 'true'. This problem has been fixed.
- The following operators estimated the maximum number of pyramid levels differently compared to when the user set a pyramid level:
cluster_model_components, create_aniso_shape_model, create_aniso_shape_model_xld, create_component_model, create_generic_shape_model, create_local_deformable_model, create_local_deformable_model_xld, create_ncc_model, create_planar_calib_deformable_model, create_planar_calib_deformable_model_xld, create_planar_uncalib_deformable_model, create_planar_uncalib_deformable_model_xld, create_scaled_shape_model, create_scaled_shape_model_xld, create_shape_model, create_shape_model_xld, create_trained_component_model, determine_deformable_model_params, determine_ncc_model_params, determine_shape_model_params, train_generic_shape_model, train_model_components
When the parameter NumLevels was set to 'auto' in the operator or in the corresponding matching model and the model region was almost the full domain of the model image, the number of pyramid levels was estimated too high. As a consequence, the estimated pyramid level was not settable by the user and matches may not have been found robustly. This problem has been fixed. Now, the maximum possible estimated pyramid level uses the same heuristic as a pyramid level set by the user. - cluster_model_components, create_component_modelcreate_trained_component_model, deserialize_component_model, deserialize_training_components, get_component_model_tree, read_component_model, read_training_components, and train_model_components leaked memory or crashed in case of errors. This problem has been fixed.
- In rare cases, create_ncc_model estimated a small number of pyramid levels, although the model could be found on coarser pyramid levels as well, resulting in a very long runtime of find_ncc_model and find_ncc_models. This problem has been fixed. As a consequence, create_ncc_model might return a model with a different number of pyramid levels compared to previous versions.
- find_generic_shape_model, find_shape_model, find_shape_models, find_scaled_shape_model, find_scaled_shape_models, find_aniso_shape_model, and find_aniso_shape_models were uninterruptible for huge numbers of matches and allowed deformation. This problem has been fixed.
- read_shape_model did not consistently set the value of user-set parameters for shape models written with HALCON versions before 21.05. That is, the parameters queried with suffix '_param' using get_generic_shape_model_param were not consistent. This problem has been fixed. Note that this change affects the compatibility. Read more.
- Using train_generic_shape_model_param with a shape model created by create_shape_model, create_shape_model_xld, create_scaled_shape_model, create_scaled_shape_model_xld, create_aniso_shape_model, or create_aniso_shape_model_xld reset the user-set search parameter 'min_contrast' and the model parameter 'contrast' if the models were generated using an XLD. This problem has been fixed.
Note that the change leads to a new shape matching file version. As a result, models created with this HALCON version cannot be read in by older HALCON versions. Note that this change affects the compatibility. Read more. - Due to numerical instabilities, the calculation of the value compared with aniso_scale_change_restriction could have failed in special cases to produce meaningful values for operators find_local_deformable_model, find_planar_calib_deformable_model, and find_planar_uncalib_deformable_model. This problem has been fixed. Note that this change affects the compatibility. Read more.
- In very rare cases and when using a very low 'min_score', some matching operators did not allocate enough memory for the top-level matching. This problem has been fixed.
- find_local_deformable_model, find_planar_calib_deformable_model, and find_planar_uncalib_deformable_model crashed in rare cases when 'border_shape_model' was set to 'true' using set_system. This problem has been fixed.
- find_shape_models, find_scaled_shape_models, find_aniso_shape_models and find_generic_shape_model behaved unexpectedly when searching multiple models with different values for border_shape_models. Only the last model of the search was considered for the value of 'border_shape_models'. This problem has been fixed. Now, 'border_shape_models' is true for all models if it is true for any of the models in a search. Additionally, this behavior is now specified in the reference manual entries of these operators.
- find_generic_shape_model, find_shape_model, find_shape_models, find_scaled_shape_model, find_scaled_shape_models, find_aniso_shape_model, and find_aniso_shape_models suffered from a wrong offset when matches were not found on the last level with 'border_shape_model' set to true and allowed deformation. This problem could lead to erroneous match coordinates and has been fixed.
Measure- add_metrology_object_circle_measure, add_metrology_object_ellipse_measureadd_metrology_object_generic, add_metrology_object_line_measure, and add_metrology_object_rectangle2_measure could crash when given invalid parameter types. This problem has been fixed.
Miscellaneous- There were a number of operators that could show a float-division-by-zero under certain rare circumstances. Note that the behavior of float division by zero is well-defined according to ISO/IEC/IEEE 60559 / IEEE 754. However, these cases might lead to unexpected behavior in later program parts. The following operators were potentially affected:
adjust_mosaic_images, apply_sample_identifier, create_bg_esti, find_bar_code, find_data_code_2d (for QR Code, Micro QR Code and Aztec Code), find_text, gen_bundle_adjusted_mosaic, get_data_code_2d_results, gen_projective_mosaic, projective_trans_image, projective_trans_image_size, projective_trans_region, regiongrowing_n, select_feature_set_gmm, set_planar_calib_deformable_model_metric, set_planar_uncalib_deformable_model_metric, set_shape_model_metric, train_class_gmm, train_texture_inspection_model
These problems have been fixed. - protect_ocr_trainf, read_ocr_trainf_names_protected, and, when reading encrypted models, also read_dl_model, were not thread-safe. This problem has been fixed.
- For filename encoding not set to 'utf8', HALCON could fail to open acquisition interfaces or extension packages with non-ASCII characters in their name. This problem has been fixed.
- When image_to_memory_block had been called with an unsupported format, an empty memory block was created, and no error was raised. This problem has been fixed.
Morphology- gray_erosion_shape, gray_dilation_shape, gray_opening_shape, gray_closing_shape, gray_erosion_rect, gray_dilation_rect, gray_opening_rect, gray_closing_rect, gray_range_rect, and find_data_code_2d in some cases used a lot of memory, especially for many threads or big mask sizes. This problem has been fixed.
OCR- In some cases, text_line_orientation returned wrong orientation values if the parameters OrientationFrom and OrientationTo defined a large orientation range around the actual angle. This problem has been fixed.
- create_ocr_class_svm returned the error 6006 ("Tmp-memory management: could not find memory element") if the input tuple 'Characters' contained duplicates. This problem has been fixed. Now, the correct error 1305 ("Wrong value of control parameter 5") is returned.
Parallelization- hcheck_parallel did not correctly report the name of the file to which the parallelization information is written. This problem has been fixed.
- Calling par_start concurrently could lead to a crash. This problem has been fixed.
- timed_wait_condition did not relock the mutex in the event of a timeout when used in HDevelop. This problem has been fixed.
Region- expand_region, expand_gray, and expand_gray_ref did not respect the setting of the 'clip_region' system parameter and always behaved as if it were 'true'. This problem has been fixed.
- In rare cases, HALCON operators with multiple output control parameters could crash in case of an error. The problem could only occur on systems with multiple CPUs if HALCON is used with automatic operator parallelization, and only in HALCON versions 23.05 and 22.11.2. This problem has been fixed.
- For some regions, smallest_rectangle2 failed to determine the smallest surrounding rectangle. While returning a surrounding rectangle, it was not the smallest surrounding rectangle in these cases. This problem has been fixed.
Segmentation- auto_threshold incorrectly returned an error about a wrong segmentation threshold for a certain Sigma value for real images. This problem has been fixed.
System- get_system_info('available_license_files') returned error 2036 ("could not find license file") if no license files could be found. Now, it will return no error but an empty tuple instead.
Tools- gen_projective_mosaic returned an image that had an overflow of the gray value for some pixels. This problem has been fixed.
- gen_projective_mosaic returned an output image that was one pixel larger than the input image when using just one input image and identity transformation. This problem has been fixed.
- distance_funct_1d returned the error 6006 ("Tmp-memory management: could not find memory element") for Sigma not equal to zero. This problem has been fixed.
- In some cases, distance_funct_1d returned random values for Mode 'length'. This problem has been fixed.
Tuple- tuple_is_number returned 1 for the strings '08' and '09', which are not valid octal numbers. This problem has been fixed.
XLD- In rare cases, closed contours transformed by affine_trans_contour_xld or projective_trans_contour_xld were not closed. This problem has been fixed.
- create_distance_transform_xld crashed if MaxDistance was set to a very large value with the 'point_to_segment' mode. This problem has been fixed. Now, an error is returned in this case.
- In very rare corner cases, intersection_contours_xld could miss valid intersection points. This problem has been fixed.
ProceduresBug Fixes- The procedure train_dl_model failed to resume training if the given serialization base name had multiple subfolders. This problem has been fixed.
HALCON/CBug Fixes- Using null strings could cause crashes or memory leaks with the C, C++, or .NET language interface. This problem has been fixed. Note that this usage is not recommended, as HALCON tuples do not have the concept of an invalid element. Instead, consider using an empty tuple to represent an invalid value, for example.
In addition, the following three string functions of the HALCON/C API did not work if HC_FAST was not defined:
init_s_from_utf8, init_s_from_local8bit, init_s_from_wcs. This problem has been fixed as well.
HALCON/C++Bug Fixes- Using null strings could cause crashes or memory leaks with the C, C++, or .NET language interface. This problem has been fixed. Note that this usage is not recommended, as HALCON tuples do not have the concept of an invalid element. Instead, consider using an empty tuple to represent an invalid value, for example.
In addition, the following three string functions of the HALCON/C API did not work if HC_FAST was not defined:
init_s_from_utf8, init_s_from_local8bit, init_s_from_wcs. This problem has been fixed as well.
HALCON/.NETBug Fixes- Resizing a HSmartWindowControlWPF when zoomed in with HKeepAspectRatio set to true always caused the full image to be shown again at 1:1 aspect. This problem has been fixed. Now, the visible part is just extended or reduced according to the size change of the control. However, if the part has never been changed from the default full image view after control creation or the last call to SetFullImagePart, then resizing will still fit the full image at 1:1 aspect to the new size.
- Using null strings could cause crashes or memory leaks with the C, C++, or .NET language interface. This problem has been fixed. Note that this usage is not recommended, as HALCON tuples do not have the concept of an invalid element. Instead, consider using an empty tuple to represent an invalid value, for example.
In addition, the following three string functions of the HALCON/C API did not work if HC_FAST was not defined:
init_s_from_utf8, init_s_from_local8bit, init_s_from_wcs. This problem has been fixed as well.
HALCON/PYTHONBug Fixes- If the HALCON/Python interface edition does not match the HALCON edition, now a warning is logged.
Language Interface Example ProgramsBug Fixes- In the reference manual entries of dev_set_preferences and dev_get_preferences, as well as in the HDevelop and HDevEngine example test_jit_speedup.hdev, the HDevelop preference dialog was incorrectly named "Experienced Users" instead of "Experienced User". This problem has been fixed.
Extension PackagesBug Fixes- The sample documentation for the halconuser extension package example contained an incorrect link. This problem has been fixed.
Image Acquisition InterfacesThe latest information about new interface revisions and newly supported image acquisition devices can be found on MVTec's web server. Please refer to the release notes within the documentation of the individual image acquisition interfaces for information about improvements, bugfixes, or whether a new revision of the corresponding device driver is required.
Digital I/O InterfacesThe 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.
DocumentationProgrammer's Manuals- The Programmer's Guide chapter “Debugging HDevEngine From HDevelop” did not mention the example for Python remote debugging. This problem has been fixed.
Solution Guides- The Solution Guide II-B Matching gave an erroneous example how the parameter 'NumMatches' influences the tracking of found candidates. This problem has been fixed.
- The Solution Guide III-B 2D Measuring referenced an outdated location for further information about 2D metrology. This problem has been fixed.
- The Solution Guide III-B 2D Measuring mentioned a wrong operator regarding the center of a shape model region. This problem has been fixed.
Reference Manual- The reference manual entry of the procedure visualize_object_model_3d did not mention that camera parameters are adapted to fit within the window size (in case that camera parameters are given).
The reference manual entries of disp_object_model_3d, display_scene_3d, and visualize_object_model_3d did not mention that sometimes the aspect ratios of window handle and camera parameters should be similar to obtain the intended results. This problem has been fixed. - The reference of get_calib_data_observ_contours had a wrong description for the parameter 'marks_with_hole'. This problem has been fixed. Now, the type of the result is stated correctly.
- The reference manual entry for gray_histo, gray_histo_abs, and gray_histo_range mentioned erroneously that it is possible to set a tuple for the parameter 'Regions'. This problem has been fixed. Note that this change affects the compatibility. Read more.
- The reference manual entry for hom_mat2d_translate listed a non-applicable example in the list of possible application examples. This problem has been fixed.
- The reference manual entry of load_dl_model_weights wrongly stated that the operator cannot be used with the supplied deep-learning models. This section has been removed.
- The reference manual entry of map_image did not clearly state which constraints have to be fulfilled when interpolation is used. This problem has been fixed.
- The reference manual entry of read_char has been updated to better indicate when 'canceled' is returned.
- The reference manual entries of set_generic_shape_model_param, set_shape_model_param, and set_system did not clearly state for the parameter 'border_shape_models' how much a match instance may be outside the search image to still be found. This problem has been fixed.
- The German reference manual entry of set_metrology_object_param falsely stated that a transition from light to dark gray values defines a positive edge (and vice versa for negative edges). In fact, it is the other way around. This problem has been fixed.
- The reference manual entry of spatial_relation confused vertical and horizontal relations in the description of the parameters Relation1 and Relation2. This problem has been fixed.
- The documentation for unlock_mutex incorrectly claimed that attempting to unlock a mutex that is not locked has no effect. This problem has been fixed.
Miscellaneous- Several manuals mentioned legacy operators as examples or in code snippets. This problem has been fixed.
Installation- The .profile_halcon file created by the HALCON installer did not set LD_LIBRARY_PATH correctly if LD_LIBRARY_PATH was either empty or unset prior to sourcing .profile_halcon. This problem has been fixed.
- Installing hardware support for license dongles via SOM failed if the runtime package was not installed beforehand. This problem has been fixed.
- Some HALCON SOM package descriptions were not localized. This problem has been fixed.
- HALCON now uses version 7.60d of the CodeMeter Runtime.
- In HALCON installations for the architecture aarch64-linux, a superfluous third-party directory was installed. This problem has been fixed.
- HALCON now uses version 8.0a of the CodeMeter Runtime.
- The HALCON installation included a deprecated version of somctl, which on Windows systems made it impossible to uninstall HALCON via the control panel. As newer versions of SOM no longer require somctl in the HALCON installation, the latter has been removed completely from the installation.
Licensing- On Windows, socket communication is not possible during process termination, so HALCON cannot automatically return floating licenses to the license server for reuse. Instead, the license must be returned manually before terminating the process. The examples and HDevelop code export have been updated accordingly.
- libcurl has been updated to version 8.4.0.
- Using a numeric IP address for the license server connection did not work. This problem has been fixed. Further, you can now enforce certificate verification by prepending the string verify| to the server URL in the license file, e.g., server=verify|https://:22022.
- HALCON did not correctly map errors from the floating license server to HALCON error codes. This problem has been fixed.
Release Notes of Previous HALCON VersionsFollow this link to read about the changes of previous HALCON versions. |