Release Notes for HALCON 11.0.5

This document provides the release notes for MVTec HALCON 11.0.5, as released in November 2015.

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

Contents

Compatibility

Licenses

HALCON 11.0 licenses are also valid for HALCON 11.0.5. In contrast, all HALCON 10.0 licenses or licenses of earlier versions must be replaced or upgraded. Please contact your local distributor.

HALCON Library

HALCON 11.0.5 is fully compatible with HALCON 11.0 except for the changed behavior of some operators owing to bug fixes. Compared to HALCON 10.0, many extensions have been introduced. Thus, the HALCON 11.0 libraries are not compatible with HALCON 10.0 or earlier versions.

In detail, please note the following incompatibilities with respect to HALCON 11.0.4:

  • Applications using var_threshold with images of format int2, uint2, int4, or real must be adapted by duplicating the value of the parameter StdDevScale. More information.

HALCON Applications

Applications (i.e., executables) developed with HALCON 11.0, HALCON 11.0.1, HALCON 11.0.2, HALCON 11.0.3, or HALCON 11.0.4 can be used with HALCON 11.0.5, i.e., HALCON 11.0.5 is binary compatible with HALCON 11.0, HALCON 11.0.1, HALCON 11.0.2, HALCON 11.0.3, and HALCON 11.0.4 (except for applications that were developed with HALCON 11.0 and that use the HALCON/C++ interface).

All programs (C, C++, .NET, or COM) that have been developed with HALCON 10.0.x must be recompiled. The incompatibility with HALCON 10.0.x 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 11.0, HALCON 11.0.1, HALCON 11.0.2, HALCON 11.0.3, and HALCON 11.0.4, respectively.

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

If you have developed your own acquisition interfaces with HALCON 11.0, HALCON 11.0.1, HALCON 11.0.2, HALCON 11.0.3, or HALCON 11.0.4, you can use them with HALCON 11.0.5 without further action.

Extension Packages

Extension packages developed with HALCON 11.0, HALCON 11.0.1, HALCON 11.0.2, HALCON 11.0.3, or HALCON 11.0.4 can be used with HALCON 11.0.5 without further action. Extension packages developed with HALCON 10.0.x 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.

Detailed Description of Changes in HALCON 11.0.5

The changes in HALCON 11.0.5 are described with respect to HALCON 11.0.4. The detailed description of changes in previous HALCON versions can be found in the release notes of the previous HALCON versions.

HDevelop

New Functionality

Procedures
  • The setting of an external procedure path to a directory with many (>500) procedures via the Directories tab card of the Manage Procedures dialog has been substantially accelerated.

Bug Fixes

Assistants
  • The Calibration Assistant did not use the relative path settings correctly. Even when a calibration plate description file was loaded from a directory relative to the program or relative to %HALCONROOT%, the absolute path was stored in the assistant's settings file. This problem has been fixed.
  • The Matching Assistant did not allow to modify the model image after a switch from the mode "Create from Image" to the mode "Load" and back again. This problem has been fixed.
  • Opening the dialog Add Samples from System Font from HDevelop's OCR Training File Browser was very slow, in particular, under OS X and Linux, were more then 60000 Symbols may be listed in the panel Available Symbols. This problem has been fixed.
  • The dialog "Add Samples from System Font" used by the OCR Training File Browser did not always display the correct number of listed symbols. This problem has been fixed.
  • The undo/redo mechanism of the OCR Training File Browser did not behave as expected. The names of added symbols were not removed. Renaming symbols more than once as well as restoring empty symbols that had been deleted did not work properly. These problems have been fixed.
GUI
  • When accessing the OCR Training File Browser via the OCR Assistant, the menu 'Save Training File As' from the File menu was grayed out. Furthermore, the OCR Assistant was not linked correctly to the training. It did not react upon adding or removing samples or saving the training file via the OCR Training File Browser. These problems have been fixed.
  • When the Gray Histogram was displayed for floating point (i.e., real) images that contained extreme values (e.g., 1e38), sometimes low level errors occurred. This problem has been fixed.
  • When the display area of the profiler in a Program Window was resized, the display areas of the profilers of all open Program Windows were resized, as well. This problem has been fixed. Now, only the display area of the profiler in the current Program Window is resized.
  • On Windows systems, it is possible to change the size of text and other items on the screen. When this scaling factor was set to a value larger than 100%, the program lines in HDevelop's dialog-based editor were not high enough to display all characters completely. This problem has been fixed. Note that this problem did not affect HDevelop's full text editor.
  • HDevelop's ROI tool incorrectly calculated the perimeter for rotated rectangles. This problem has been fixed.
IDE
  • HDevelop crashed when the respective buttons in the Preferences dialog were used to reset the visualization settings to the factory default or to adopt the active settings as new persistent default. This problem has been fixed.
  • When a code line was split into several text lines by entering the continuation character '\' and new lines, the automatic indentation of the next text line was not intuitive in some cases. This problem has been fixed. Now,
    • if '\' is used within a list of values, expressions, or parameters after a comma, i.e., at the beginning of the next item, the following line is indented to the first position after the opening bracket of the list and
    • if '\' is used within an expression, the following line is indented to the beginning of that expression.
  • HDevelop programs that contain program lines where the first text line ends with the continuation character '\' and this line is followed by an empty line have not been loaded correctly. After saving and reloading such a program, the empty line was not displayed in the text area although in the line number area an empty line with no line number was inserted. Therefore, the text lines and the line numbers did no longer match. This problem has been fixed.
  • HDevelop sometimes had problems with the renaming of variables if the new name was longer than the original name and if it contained the original name. E.g., the line 'm := min2 ( a , a )' became something like 'm := min2 ( aaaaaaa , a )' instead of 'm := min2 ( aaaaa , aaaaa )' when renaming 'a' into 'aaaaa'. This problem has been fixed.
  • The behavior of HDevelop's auto completion in the free text editor has been changed.
    • When you first started typing, a list box with all variables, functions, operators, and procedures that contained this string appeared.
    • When you closed this list box with Esc and pressed Ctrl+Space, the list box with all variables,functions, operators, and procedures that contained this string appeared again.
    • When you closed this list box with Esc and pressed the Tab key, only those operators and procedures were listed that started with the string. For functions and variables, the behavior was similar to pressing Ctrl+Space.
    Now, the Tab key behaves like Ctrl+Space and lists all variables, functions, operators, and procedures that contained this string.
Procedures
  • HDevelop crashed when the procedure interface of a saved procedure was modified in the following way: A parameter of one group, e.g., an iconic output parameter, was deleted and its name was used for a parameter of another group, e.g., for a control input parameter and then, the Reset button was pressed. This problem has been fixed.
  • The behavior of HDevelop with respect to procedure files with capitalized file extensions (.DVP, .HDVP, .HDPL) was inconsistent. HDevelop was able to open those procedure files explicitly for editing, but it did not use them if they were placed in the external procedure path. This problem has been fixed. Now, HDevelop is able to open those procedure files for editing and uses them also if they are placed in the external procedure path.
  • Pasting procedures of a library that was directly referenced by an import statement, triggered the dialog to add the directory where the library file resides to the list of external procedures paths, although the import statement pointed directly to the procedure library file and not to the directory. This problem has been fixed.
  • In the procedure interface dialog, the Parameter Documentation area was not always in a consistent state. It could have happened that input fields for specifying the minimal and maximal value of the parameter ('Value Min' and 'Value Max') were visible although no numeric type was specified. Furthermore, it could have happened that a type was selected as default type that was not checked to be a supported type. These problems have been fixed.
  • If there were two import statements that pointed to the same library, one directly to the library file itself and one to the directory where the library resided, and if the former was deleted or deactivated, the library procedures became unavailable. This problem has been fixed.
  • The loading of a protected program or procedure led to a small memory leak. This problem has been fixed.
  • If a procedure was explicitly opened, for example by opening it via File -> Open Procedure, and then modified inside HDevelop, HDevelop did not warn the user about unsaved changes, e.g., when closing HDevelop. This problem has been fixed.
  • After changing the file location of an imported HDevelop procedure with the Edit Interface dialog, it was not possible to step into this procedure. This problem has been fixed.
Code Export
  • In some cases, the message boxes displayed by HDevelop were too big. This happened, e.g., if an HDevelop program that contained many invalid lines was exported via the Export dialog. All invalid lines were shown in the message box, which made it too big to fit onto the screen. This problem has been fixed. Now, a maximum of 20 invalid lines is shown in the message box.
  • HDevelop in some cases exported switch statements incorrectly to HALCON/C++ if the switch statement's argument was not a constant or a variable name. This problem has been fixed.
Miscellaneous
  • On OS X, HDevelop lost the keyboard focus after dev_close_window has been executed. Thus a window different to the Program Window must be activated by clicking on it and after that the Program Window has to be clicked, to get the focus back to the program editor. This problem has been fixed.
  • When working with monotonically increasing image sizes, the temporary memory cache could have caused the total memory consumption to increase unnecessarily. This problem has been fixed.
  • When a valid procedure file was (falsely) tried to be opened with the Open Program dialog, the error "Format error: file is not a valid HDevelop program or procedure (HDevelop error code: 21020)" was returned. This was misleading, as the file actually was a valid procedure file. This problem has been fixed. Now the message states specifically that the file is not a valid HDevelop program.
  • On OS X, the procedure drop-down menu in the procedure interface dialog filled the entire screen. This problem has been fixed. Now, the width of the menu is restricted to the width of the combo box.

HDevelop Example Programs

Bug Fixes
  • The following HDevelop example programs had memory leaks:
    • hdevelop/3D-Object-Model/Transformations/projective_trans_object_model_3d.hdev
    • hdevelop/3D-Reconstruction/Multi-View/reconstruct_points_stereo.hdev
    • hdevelop/Applications/Color-Inspection/color_fuses_lut_trans.hdev
    • hdevelop/Applications/OCR/ocr_embossed_photometric_stereo.hdev
    • hdevelop/Applications/Position-Recognition-2D/matching_multi_channel_clamp.hdev
    • hdevelop/Applications/Security-Systems/movement_bg.hdev
    • hdevelop/Calibration/Hand-Eye/calibrate_hand_eye_stationary_3d_sensor.hdev
    • hdevelop/Graphics/Output/disp_object_model_3d.hdev
    • hdevelop/Image/Acquisition/abs_simple.hdev
    • hdevelop/Image/Acquisition/ensenso-nxlib_surface_based_3d_matching.hdev
    • hdevelop/Image/Acquisition/gigevision_atc4_objectmodel3d.hdev
    • hdevelop/Image/Acquisition/gigevision_photonfocus3d_objectmodel3d.hdev
    • hdevelop/Image/Acquisition/openni_create_camera_calibration.hdev
    • hdevelop/Image/Acquisition/openni_simple.hdev
    • hdevelop/Image/Acquisition/openni_surface_based_3d_matching.hdev
    • hdevelop/Image/Acquisition/sentech_simple.hdev
    • hdevelop/Image/Acquisition/siliconsoftware_objectmodel3d.hdev
    • hdevelop/Image/Acquisition/swissranger_simple.hdev
    • hdevelop/Image/Acquisition/video4linux2_parameters.hdev
    • hdevelop/Matrix/hom_mat_3d_from_3d_point_correspondences.hdev
    • hdevelop/Tools/Interpolation/interpolate_scattered_data.hdev
    • solution_guide/3d_vision/camera_calibration_external.hdev
    • solution_guide/basics/color_pieces.hdev
    • solution_guide/classification/train_characters_ocr.hdev
    These problems have been fixed.
  • The HDevelop example program
    • hdevelop/Applications/Completeness-Check/check_blister_mixed.hdev
    has been modified slightly because of the slightly changed behavior of affine_trans_image.
  • The HDevelop example program
    • hdevelop/Applications/Measuring-2D/track_wires_on_chip.hdev
    did not update the orientation used for tracking the wires. This problem has been fixed.
  • The HDevelop example program
    • solution_guide/1d_measuring/measure_switch.hdev
    produced incorrect results since a modification of the 1D measure in HALCON 10.0.3 that fixed the problem that the returned edge amplitudes were too low. This problem has been fixed. Now, the example program uses accordingly adapted parameters and returns correct results.
    The HDevelop example program
    • solution_guide/1d_measuring/fuzzy_measure_switch.hdev
    has been adapted as well in order to use consistent amplitude thresholds, although this example always returned correct results.

HDevEngine

Bug Fixes

  • Under Windows, the HDevEngine crashed in rare cases when loading external procedures. This problem has been fixed.
  • The loading of a protected program or procedure led to a small memory leak. This problem has been fixed.
  • The file examples/hdevengine/cpp/my_hdevoperatorimpl.cpp contained the incorrect comment: "Attention: This class must not be used in a multi-threaded application." This problem has been fixed. The incorrect comment has been removed.

HALCON Library

New Functionality

Bar Code
  • HALCON now supports all GS1 application identifiers specified in the latest version of the "GS1 General Specifications" (Version 15, Issue 2, January 2015).
Data Code
  • find_data_code_2d has been improved to find 2D data codes more consistently even if the domain of the image was reduced rather tightly around the code region, as long as the reduced image domain contains the complete symbol including its quiet zone.
  • HALCON now supports all GS1 application identifiers specified in the latest version of the "GS1 General Specifications" (Version 15, Issue 2, January 2015).
System
  • get_system now allows to determine the name of the machine on which HALCON is running. For this, the parameter Query must be set to 'hostname'.

Bug Fixes

3D
  • get_disp_object_model_3d_info sometimes threw an exception if called with multiple values for the parameter Information, e.g., if called with the control parameter tuple ['object_index','depth']. This problem has been fixed.
  • get_stereo_model_param returned an incorrect value for the generic parameter 'disparity_method'. This problem has been fixed.
  • photometric_stereo returned a wrong error message when the passed images were multichannel images. Furthermore, classify_image_class_lut returned an unclear error message when the number of channels of the image and the dimensions of the look-up table did not match. These problems have been fixed.
  • prepare_object_model_3d destroyed the precomputed data structure and did not recompute it when it was called twice for the same 3D object model. This resulted in a longer runtime of a subsequent call of distance_object_model_3d. This problem has been fixed.
  • set_stereo_model_param crashed if the number of parameter values did not match the number of parameter names. This problem has been fixed.
  • triangulate_object_model_3d with Method set to 'implicit' might have crashed or might hung when the generic parameter 'implicit_octree_depth' was set to a value of 9 or more. This problem has been fixed.
Bar Code
  • find_bar_code sometimes crashed when candidates existed near the image's border. This problem has been fixed.
  • find_bar_code sometimes returned the error 3503 ("Run length row >= image height") if huge images were used. This problem has been fixed. Note that this problem did not occur in HALCON XL.
  • get_bar_code_object sometimes returned deformed 'symbol_regions' for bar codes that are located close to the image border after a print quality assessment, i.e., after calling get_bar_code_result with the parameter 'quality_isoiec15416'. This problem has been fixed.
  • get_bar_code_result with ResultName set to 'quality_isoiec15416' returned the error 3515 ("Image acquisition: wrong color space") for PharmaCodes with print growth or PharmaCodes with only thick bars. This problem has been fixed.
  • get_bar_code_result sometimes returned the error 3513 ("Internal error: number of chords too big for num_max") when the parameter ResultName was set to 'quality_isoiec15416', i.e., when get_bar_code_result was used to get a tuple with the assessment of the print quality in compliance with the international standard ISO/IEC 15416. This problem has been fixed.
  • In rare cases, bar codes of type Code 128 could not be read correctly in some rotations. This problem has been fixed.
Calibration
  • read_calib_data and deserialize_calib_data did not work correctly if the calibration data model contained calibration plates with rectangularly arranged marks. Using find_calib_object based on such a (read or deserialized) calibration data model could have led to problems. This problem has been fixed.
Classification
Compute Device
  • convol_image returned incorrect results with some masks with a center of gravity different to the center of the mask if executed on OpenCL compute devices. For example, a 3x3 mask where the first or last column is empty (i.e., all entries in this column are zero) was affected. This problem has been fixed.
  • find_ncc_model returned slightly incorrect and nondeterministic results on compute devices in rare cases. So far this problem was only observed on OS X systems with Intel HD4000 graphic cards. This problem has been fixed.
  • image_to_world_plane in rare cases returned the error 3513 ("Internal error: number of chords too big for num_max") if executed on compute devices. This problem has been fixed.
  • zoom_image_size could have produced incorrect results for certain parameter combinations when executed on an OpenCL device. This problem has been fixed.
Data Code
  • create_data_code_2d_model and set_data_code_2d_param set the model parameters 'module_gap_col_max' and 'module_gap_row_max' to the value 'small' instead of to the value 'big' for QR codes and for Micro QR codes if the parameter 'default_parameters' was set to 'enhanced_recognition' or 'maximum_recognition'. This problem has been fixed.
  • find_data_code_2d may have crashed with signal 11 for data codes of type 'Data Matrix ECC 200' when a candidate was found close to the image border. This problem has been fixed.
  • find_data_code_2d returned corrupt decode strings for rune Aztec codes in the case the symbol size was set larger than the size of a rune symbol (= 11), the 'format' was set to 'rune', and 'strict_model' was set to 'true'. This could have resulted in a crash. This problem has been fixed.
  • find_data_code_2d sometimes failed to read Aztec codes that were used for training, although they could be read with 'default_parameters' set to 'maximum_recognition'. This problem has been fixed.
  • find_data_code_2d in rare cases caused a stack overflow. This problem has been fixed.
  • find_data_code_2d in very rare cases returned false QR codes and Micro QR codes for images with a reduced domain. This problem has been fixed.
  • find_data_code_2d had a memory leak for ECC 200, PDF417, MicroQR, and QR codes. The memory leak occurred only in the case of successive calls to find_data_code_2d on images with increasing image or domain sizes. This problem has been fixed.
  • The HALCON ECC 200, Aztec, QR, and Micro QR data code readers did always return a grade 4 for 'Decode'. Even in the case where the code could only be successfully decoded with HALCON's data code reader but not with the reference decode algorithm as required by the standard. This problem has been fixed.
  • The QR code reader crashed in very rare cases. This problem has been fixed.
  • get_data_code_2d_results crashed for ECC 200 codes when 'reader_programming' was queried for 'all_candidates'. This problem has been fixed.
  • get_data_code_2d_results in some cases returned a wrong 'Fixed Pattern Damage' grade for 'quality_isoiec15415' and 'quality_aimdpm_1_2006'. This problem has been fixed.
  • get_data_code_2d_results always returned 1 for 'timeout_occurred' if the timeout was disabled after a call of find_data_code_2d where a timeout occurred. This problem has been fixed.
  • get_data_code_2d_results returned an incorrect value for the AIM DPM-1-2006 grade for cell modulation. Instead of the notional UEC levels, the cell modulation grade levels were reduced with respect to the ISO/IEC 15415 values (see AIM DPM-1-2006, Chap. 9.3). This problem has been fixed.
  • get_data_code_2d_results in rare cases crashed for 'quality_aimdpm_1_2006' and 'quality_isoiec15415' when the inspected or found symbol was too close to the image border. This problem has been fixed.
  • get_data_code_2d_results in rare cases returned incorrect grades for 'quality_aimdpm_1_2006' and 'quality_isoiec15415'. This problem has been fixed.
  • set_data_code_2d_param did not allow to set more than one format for Aztec codes. Setting 'format', e.g., to 'rune compact' resulted in an error 8830 ("Invalid parameter value"). This problem has been fixed.
File
  • list_files returned wrong paths on Asian Windows systems for paths that contained multi-byte characters. This problem has been fixed. Note that the wrong paths may have led to errors in subsequent operators like read_image if they used these paths as input.
  • read_image may have crashed with signal 11 when reading a TIFF file with an alpha channel and a SubIFD. This problem has been fixed.
  • read_image sometimes had problems to read 16- and 32-bit TIFF images that were stored using tiles. If the tiles were not aligned with the scanline size of the TIFF file, the data of the last tiles in each row were read incorrectly. This problem has been fixed.
  • write_image in rare cases crashed when writing JPEG-XR images. This problem occurred when two threads or processes writing JPEG-XR images shared the same working directory. This problem has been fixed.
Filter
  • affine_trans_image_size in very rare cases crashed for very large images (large width, small height) because of incorrect rounding. This, e.g., could have caused operators like train_model_components to crash since they internally use affine_trans_image_size. All operators that internally use image transformations (scaling or rotation) were affected as well. This problem has been fixed. Note that images processed with, e.g., affine_trans_image_size using updated versions might have slightly different gray values.
    This change led to slightly different results in the HDevelop example program
    • hdevelop/Applications/Completeness-Check/check_blister_mixed.hdev.
    Therefore, this program has been adapted accordingly.
  • derivate_gauss crashed or returned a memory error if it was called for images with a width smaller than or equal to 4 (SSE2 implementation) or smaller than or equal to 8 (AVX implementation). This problem has been fixed.
  • gen_image_to_world_plane_map and gen_radial_distortion_map in rare cases created corrupt maps of type 'coord_map_sub_pix', such that HALCON may have crashed if these maps were used in map_image. This problem has been fixed.
  • points_foerstner in rare cases returned points that lay outside the image. This problem has been fixed.
  • polar_trans_image_ext may have returned a wrong result image when at least one of the values for Row, Column, RadiusStart, or RadiusEnd was greater than 65536 and the width and height of the input and output images was smaller than 32768. This problem has been fixed.
  • projective_trans_image and projective_trans_image_size returned non-deterministic images outside their image domain although 'init_new_image' was set to 'true'. This could have led to non-deterministic behavior of subsequent operator calls, where the domain was used to restrict the search space of that operator (e.g., find_data_code_2d). This problem has been fixed.
  • projective_trans_image could have crashed in rare cases. This happened when projective_trans_image was applied to an uint2 image and the parameter Interpolation was set to 'bilinear'. This problem has been fixed.
  • var_threshold returned non-deterministic regions for input images with non-rectangular reduced domains. This problem has been fixed.
Graphics
  • disp_object_model_3d did not support the use of user-defined attributes of triangles to define the intensities of displayed faces. This problem has been fixed.
  • disp_rectangle1 always returned the error 3040 ("Row value of a coordinate > 2^15-1") if one coordinate was too big and the error 3043 ("Column value of a coordinate < -2^15") if one coordinate was too small, regardless whether the coordinate was a row or a column coordinate. This problem has been fixed. Now, disp_rectangle1 returns the correct 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.
  • new_line provoked BadWindow warnings on Linux machines if called on buffer windows. This problem has been fixed.
Matching
Measure
  • get_metrology_object_measures returned no edges if it was called after apply_metrology_model for a metrology object configured with 'measure_transition' set to 'uniform' and if only the positive
    or negative edges were requested. Furthermore, when negative edges were requested, the measure regions were missing. These problems have been fixed.
  • When using set_metrology_object_param to set the transition type to 'uniform', calling apply_metrology_model, and then setting the transition type to 'positive' or 'negative', the resulting edge points were different from the edge points of a metrology model where the transition type has not been set to 'uniform' in the first step. Additionally, a small memory leak occurred. These problems have been fixed.
Memory
  • When working with monotonically increasing image sizes, the temporary memory cache could have caused the total memory consumption to increase unnecessarily. This problem has been fixed.
Miscellaneous
  • Some HALCON operators did not check the correct coordinate boundaries in HALCON XL. As a consequence they were not raising an error if the user tried to generate a region with coordinates larger than MAX_FORMAT-1 (2^30-1). This could result in errors in subsequent operator calls. This problem has been fixed.
  • select_lines_longest returned incorrect results for large line lengths. This problem has been fixed.
Morphology
  • gray_range_rect in rare cases returned incorrect results when parallelized on domain level. This was only the case for very narrow images. This problem has been fixed.
OCR
Parallelization
  • get_threading_attrib did not check the input handle on validity and crashed on corrupt, invalid input handles. This problem has been fixed.
Region
  • hamming_distance sometimes returned the error 3513 ("Internal error: number of chords too big for num_max") when working with highly structured regions, i.e. regions with a high number of runs. This problem has been fixed.
  • polar_trans_region crashed when the value for at least one of the parameters Width and Height was very large. This problem has been fixed. Note that this problem only occurred with HALCON XL on 32-bit systems.
Segmentation
  • var_threshold did not work correctly for images of format int2, uint2, int4, and real. This problem has been fixed. Note that this change affects the compatibility. Read more.
System
  • set_system ('tsp_store_empty_region','false') failed and returned the error 1302 ("Wrong value of control parameter 2"). This problem has been fixed.
  • set_system did not allow to set the maximum size of memory blocks to be cached ('alloctmp_max_blocksize') to values larger than 8MB. This limitation has been removed.
  • Turning off the temporary memory cache with set_system ('temporary_mem_cache','false') in a multi-threaded environment could have led to crashes under rare circumstances. This problem has been fixed.
  • set_system ('tsp_thread_num',1) did not work correctly and switched off the automatic operator parallelization thread specifically. This problem has been fixed.
Tuple
  • The tuple operators did not always work correctly with large integer ranges. This problem has been fixed.
  • tuple_str_bit_select might have returned a wrong value if the type of the input tuple element was 'string' and the index was greater than the length of the string. This problem has been fixed. Now, tuple_str_bit_select returns an empty string in these cases.
XLD

Procedures

Functionality

  • The procedure disp_message is now able to display strings at multiple positions in a single call by passing tuples for the input parameters Row and Column.

HALCON/.NET

Bug Fixes

  • The class HWindowControlWPF did not take into account the display scaling level on Windows platforms. This problem has been fixed.

Extension Packages

Bug Fixes

  • The extension package halconuser for C# could not be executed on 64-bit machines if it was compiled for 32-bit architectures. This problem has been fixed. For 32-bit architectures, the variable CSC_FLAGS has been extended by /platform:x86. Moreover the output files have been renamed to be architecture-dependent, e.g., testthresholddotnet_$(HALCONARCH).exe.
  • The Xcode project for the OpenCL extension package example did not compile/link properly on OS X. This problem has been fixed.

hbench

Bug Fixes

  • The HALCON benchmark program hbench did not check for license errors. If no license was found, it crashed or returned an unspecific error. This problem has been fixed. Now, the error 2036 ("could not find license.dat") is returned in this case.

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

Image Acquisition Example Programs

Modified Image Acquisition Example Programs
  • The XCode project for the ia_integration example displayed cyclic dependency warnings when building. This problem has been fixed.

Documentation

Reference Manual

  • The reference manual entries of did not clearly describe the coordinate system that is used by these operators. Furthermore, the reference manual entries of did not clearly describe the meaning of the resulting coordinates. These problems have been fixed.
  • The reference manual entries of described the shape models to be invariant with respect to scale. This is incorrect. Instead, the shape models are anisotropically or isotropically scaled, respectively. This problem has been fixed.
  • The reference manual entry of dev_open_window contained wrong default values for the parameters Width and Height. Instead of the value 512, the value 256 was given. This problem has been fixed.
  • The reference manual entry of disp_object_model_3d and the documentation of the procedure visualize_object_model_3d wrongly stated that an empty camera parameter tuple would lead to a completely visible scene. This problem has been fixed.
  • The reference manual entry of distance_pc did not explicitly state that the distance is calculated between the specified points and the segments of the specified contour and not between the specified points and the base points of the specified contour. This problem has been fixed.
  • The reference manual entry of get_bar_code_result falsely stated that 'decoded_reference' returns a value of 10 for the special character FNC1 for GS1-128, GS1 DataBar, and GS1 DataBar Stacked codes. Instead, the operator returns a value of 102 for GS1-128 codes and a value of 29 for GS1 DataBar Expanded and GS1 DataBar Expanded Stacked codes. This problem has been fixed.
  • The reference manual entry of get_data_code_2d_results did not clearly state that some results of the print quality inspection are only meaningful if the code has been successfully decoded. This problem has been fixed.
  • The reference manual entries of region_features and select_shape did not explicitly state that the features 'width' and 'height' are measured parallel to the coordinate axes. This problem has been fixed.
  • The reference manual entry of remove_sample_identifier_preparation_data has been extended to make clear that removing the last preparation sample of a preparation object will also remove the corresponding preparation object itself from the sample identifier.
  • The reference manual entry of set_system did not describe that the maximum size of memory blocks to be cached by temporary memory management, which is defined with the parameter 'alloctmp_max_blocksize', has to be given in bytes. This problem has been fixed.
  • The reference manual entry of set_window_type did not explain that windows of the type 'pixmap' support only HALCON objects (images, regions, and XLDs). This problem has been fixed.

Solution Guides

User Guides

  • The documentation stated at different places that the maximum image size of HALCON (not HALCON XL) is 32k x 32k or rather 32767 x 32767, while in fact, the maximum image size is 32768 x 32768. This problem has been fixed.

Supported Operating Systems

Windows

HALCON 11.0.5 has been compiled for the following Windows platform versions:

  • x86sse2-win32 platform version for Windows XP/2003/Vista/2008/7/8/2012 on x86 processors with SSE2 extension, i.e., Intel Pentium 4 / AMD Athlon 64 or newer
  • x64-win64 platform version for Windows XP/2003/Vista/2008/7/8/2012 x64 Edition on Intel 64 or AMD64 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 11.0.5 has been compiled for the following Linux platform versions:

  • x86sse2-linux2.4-gcc40 platform version for Linux, Kernel 2.4 or higher with ABI 2 on x86 processors with SSE2 extension, i.e., Intel Pentium 4 / AMD Athlon 64 or newer
  • x64-linux2.4-gcc40 platform version for Linux x86_64, Kernel 2.4 or higher with ABI 2, on Intel 64 or AMD64 processors

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

The installation script checks whether it is running on a 32 or 64 bit system and provides a suitable list of platform versions that can be installed.

OS X

HALCON 11.0.5 has been compiled for OS X in the following platform versions:

  • x64-macosx platform version for OS X 10.7, 10.8, 10.9, and 10.10.

Miscellaneous

Licensing

  • HALCON uses version 11.11.1 of the FLEXnet Publisher license manager software.
  • The USB dongle driver version Sentinel HASP 7.32 is included.

Follow the links below to read about major new features of previous HALCON versions.

The changes in HALCON 11.0.5 are described with respect to HALCON 11.0.4. Follow the links below to read about changes in previous HALCON versions.