MVTec Software GmbH
  Building Vision For Business


Release Notes for HALCON 6.0.3

This document provides the release notes for MVTec HALCON 6.0.3, i.e., revision 3 of HALCON 6.0, as released in August 2002. HALCON 6.0.3 is primarily a maintenance release that fixes all known bugs in HALCON 6.0.2; besides, it provides added functionality and speedups.


Overview

This document contains the following information:

Compatibility
Major New Features of HALCON 6.0
Detailed Description of Changes in HALCON 6.0.3
Detailed Description of Changes in HALCON 6.0.2
Detailed Description of Changes in HALCON 6.0.1
Detailed Description of Changes in HALCON 6.0
Notes for Users of the Beta Version of HALCON 6.0
Major New Features of HALCON 5.2
Detailed Description of Changes in HALCON 5.2.3
Detailed Description of Changes in HALCON 5.2.2
Detailed Description of Changes in HALCON 5.2.1
Detailed Description of Changes in HALCON 5.2


Compatibility

O HALCON Library
    HALCON 6.0.3 is compatible with HALCON 6.0.2, HALCON 6.0.1, and HALCON 6.0. Compared to HALCON 5.2.x, however, many extensions have been introduced. Thus, the HALCON 6.0.3 libraries are not compatible with HALCON 5.2.x or earlier versions.

O HALCON Applications
    Due to a modification in the HALCON/C++ interface, you must recompile and relink HALCON/C++ applications that make use of the overloaded input and output operators >> and <<. See here for details.

    Please re-compile all C or C++ programs developed with HALCON 5.2.x. The incompatibility with HALCON 5.2.x or earlier versions mainly concerns the binaries, with only few changes in the operators' signatures. If you encounter problems during recompiling your programs, please check the detailed description of changes below and look up the signatures of the concerned operators in the reference manual.

O Frame Grabber Interfaces
    Please re-generate your own frame grabber interfaces developed with HALCON 5.2.x. Note that HALCON 6.0 introduced syntactic and semantic changes into the HALCON Frame Grabber Integration Interface, i.e., you might also need to adapt the code of your interface; please refer to the Frame Grabber Integration Programmer's Manual for details about the changes.

O Extension Packages
    Due to a modification in the HALCON/C++ interface, you must recompile extension packages that make use of the overloaded input and output operators >> and <<. See here for details.
    Please note that extension packages that were generated for HALCON 6.0 must be generated anew. The same holds for extension packages developed with HALCON 5.2.x.

O Licensing
    HALCON 6.0.3 requires a newer version of the dongle driver programs from GLOBEtrotter. If you install HALCON 6.0.3 via the setup program (InstallShield), the old driver is automatically uninstalled before the new one is installed (if you selected to install the dongle driver). However, if you use the update mechanism (ZIP file), only the new setup programs are provided. Therefore, you must uninstall the old dongle driver and install the new one manually. Please refer to the manual "Getting Started" for more information.

    All HALCON 5.2 license keys must be replaced or upgraded. Please contact your local distributor.

O ActivVisionTools
    Please note that ActivVisionTools 1.0 to 2.0 are not fully compatible with HALCON 6.0.3 (and HALCON 6.0.2)! See here for more information. Therefore, the setup program of HALCON 6.0.3 checks whether there is an ActivVisionTools installation on your computer.
    • If it detects ActivVisionTools 2.0, it offers to replace the corresponding OCX with a new one that is compatible to HALCON 6.0.3. Then, you can use ActivVisionTools 2.0 without any further action.
      Typically, you will choose this option. If not, you can replace the OCX manually as described in the manual 'Getting Started With HALCON'.
    • For ActivVisionTools 1.0 to 1.3 no compatible OCX is available. If the setup program of HALCON 6.0.3 detects such an ActivVisionTools version, it therefore warns that by continuing to install HALCON 6.0.3 you will damage your ActivVisionTools installation.
      As a workaround, you could keep your old HALCON 6.0.1 or HALCON 6.0 installation and switch back to it as described in the manual 'Getting Started With HALCON'.


Detailed Description of Changes in HALCON 6.0.3

Detailed release notes can be obtained for the following topics:

HDevelop
HALCON Library
HALCON/C
HALCON/C++
HALCON/COM
Frame Grabber Interfaces
Miscellaneous

HDevelop

O Enhancements:
  • HDevelop now has a menu entry Help -> HALCON News (WWW). This menu entry opens a browser with a page from MVTec's WWW server that displays customized software news about the HALCON version that is installed on the user's computer.
  • In HDevelop it is now possible to set multiple break points.
  • HDevelop now allows users to print the current HDevelop program. It is possible to print the entire program or the currently selected part.

O Functionality:
  • HDevelop now displays more precise information about the type of XLD objects in the status bar.
  • The dialog popping up every 100 operators in HDevelop Demo now allows the user to stop program execution.
  • After pressing enter in the combo box 'Operator:' of HDevelop's operator window the input focus now is set on the OK button if possible.
  • HDevelop now declares the default window handle as Variant when exporting to Visual Basic.
  • C and C++ programs exported by HDevelop no longer contain the operator call 'reset_obj_db'.

O Bug Fixes:
  • The status bar displayed a German text when operators from the Suggestions menu were selected. The status bar now displays the operator's short description as in the operators menu.
  • HDevelop's 'File->Read Image' dialog did not suggest the correct variable names for the input image. This problem has been fixed.
  • HDevelop exported the internal function sort_index incorrectly to C. This problem has been fixed.
  • HDevelop sometimes exported empty declarations to C, C++, and Visual Basic if the special variable _ was used. This problem has been fixed.
  • In HDevelop, the C++ export of nested tuple expressions like TupleA[TupleB[i]-1] sometimes was wrong. This problem has been fixed.
  • HDevelop's status bar and tool bar buttons did not observe the selected color scheme under Windows NT/2000/XP. The status bar and the background color of the tool bar bitmaps were always light gray. This problem has been fixed.
  • HDevelop very rarely crashed if a dialog (e.g. Zoom) was open and the user moved the mouse cursor over the Variable Watch window. This problem has been fixed.
  • The height of HDevelop dialogs now is adapted according to the height of the caption area under Windows.
  • C programs exported by HDevelop sometimes missed variable declarations. This problem has been fixed.
  • Sometimes, HDevelop crashed when trying to use control variables as object variables and vice versa. This problem has been fixed.
  • The internal HDevelop operators dev_update_pc, dev_update_time, dev_set_window_extents and dev_set_draw crashed when called with input control parameters of wrong type. This problem has been fixed.
  • The HDevelop function deviation returned a wrong result when 2 values were passed. This problem has been fixed.
  • On Unix systems, HDevelop's dialog 'Find Operator' sometimes left the HDevelop program window in an inconsistent state. This problem has been fixed.
  • HDevelop no longer sets the program counter on the next program line after a stop instruction if that line is a comment. Instead the program counter is set on the next line that is not a comment.

O Manual:
  • The HDevelop User's Manual is available in a new edition. It now also describes how to find operators and search and replace variable names, how to print HDevelop programs, and how to access customized software news about the HALCON version that is installed on the user's computer.

O Examples:
  • The example programs examples/hdevelop/Applications/OCR/fontt.dev examples/hdevelop/Applications/OCR/lettertt.dev examples/hdevelop/Tools/Function/match_function_trans_plot.dev wrote data into the directory '/tmp'. This caused errors under Windows systems. This problem has been fixed.

HALCON Library

O Speedup and Enhancements:
  • The operators gen_gauss_pyramid, zoom_image_size, and zoom_image_factor now also support real images. The documentation has been extended accordingly.
  • The operator gen_measure_rectangle2 and gen_measure_arc are now faster by up to 80%. The new fast mode is selected when the system parameter 'int_zooming' is set to 'true' (the default setting) with set_system. If 'int_zooming' is set to 'false', the original method, which uses floating point calculations, is used to construct the measure object. The documentation has been extended accordingly.
  • The operator invert_image is now faster by up to 75% for byte images.

O Modified Operators:
  • The operator integer_to_obj no longer has a default value for the parameter 'SurrogateTuple'.
  • The operator paint_region now supports multi-channel images. To enable users to specify a color for each channel, the parameter GrayValue now also accepts tuples as input. The documentation has been extended accordingly.
  • The operator lines_facet now sets the contour attributes 'angle' and 'response'. The documentation has been extended accordingly.
  • The operator edges_sub_pix now has a mode in which the junctions can be extracted more completely. This mode has a similar effect as the mode CompleteJunctions = 'true' in lines_gauss. The new mode is selected by appending '_junctions' to the parameter Filter of edges_sub_pix. The documentation has been adapted accordingly.

O Bug Fixes:
  • The operator x_range_funct_1d returned a wrong XMax value for 1d function pairs. This problem has been fixed.
  • The operator transform_funct_1d returned the function values of 1d function pairs in wrong index order if the parameter a3 was negative. This problem has been fixed.
  • The operator tuple_not returned values of type real. This caused problems whenever these values were used in other logical operators, e.g., tuple_and. tuple_not now returns values of type integer.
  • The operator shape_histo_all returned incorrect results for Feature = 'holes'. This problem has been fixed.
  • The operator find_shape_model found only one instance if MaxOverlap = 0, no matter how NumMatches was chosen. Furthermore, the operator sometimes discarded too many instances based on their overlap. These problems have been fixed.
  • The operators trans_to_rgb and trans_from_rgb produced incorrect results with ColorSpace = 'hsi', trans_to_rgb sometimes also with ColorSpace = 'hsv'. These problems have been fixed.
  • An error in the operator merge_regions_line_scan with parameter MergeBorder = 'top' has been fixed. merge_regions_line_scan sometimes returns the error 6001 (not enough memory available) for this choice of MergeBorder.
  • An error in the operator decode_2d_bar_code when decoding 2d bar codes with Base256 encodation has been fixed.
  • The operator get_serial_param did not return the parity correctly under Windows. The value returned by get_serial_param was always 'none'. This problem has been fixed.
  • The operator polar_trans_image no longer returns the error 3505 (Run length column >= image width) if the parameter Width is chosen larger than the input image width and the checking of data has been enabled using set_check('data').
  • The operators get_region_thickness, get_region_polygon, and get_region_chain sometimes returned the error 6041 (No memory block allocated at last). This problem has been fixed.
  • The operators distance_pr and distance_lr returned the error 3513 (Internal error: number of chords too big for num_max) if the region contained more than one hole. This problem has been fixed.
  • A bug in plane_deviation and moments_gray_plane, which caused illegal results (-1.#IND and NaN, respectively) for regions that either contain one pixel or pixels on a straight line has been fixed. The documentation has been extended to reflect this change.
  • The operator gen_region_polygon_filled sometimes created asymmetrical regions from a symmetrical polygon. This problem has been fixed.
  • The operator laplace_of_gauss crashed with int4 and real images. This problem has been fixed.
  • The operator close_edges_length no longer crashes in HALCON/C if edges are traced to the border of the image.
  • The operator elliptic_axis_gray sometimes returned illegal results. This problem has been fixed.
  • The operator depth_from_focus sometimes returned the error 7200 (Wrong number of output object parameter). This only happened if Selection was set to 'next_maximum'. This problem has been fixed.
  • The operator do_ocv_simple sometimes returned wrong quality values if AdaptGray was set to 'true'. This problem has been fixed.
  • The operator laplace now performs correct border treatment for NeighborhoodType = 'n_8' and 'n_8_isotrop'.
  • The operators zoom_image_factor and zoom_image_size could cause erroneous results for int2 images if the parameter Interpolation was set to 'none'. This problem has been fixed.
  • The operators regiongrowing_n, learn_ndim_box, and class_ndim_box created a stack overflow under Windows in HALCON/C and HALCON/C++. The operators have been modified to use less than the default 1 MB stack.
  • The operator union_straight_contours_xld sometimes failed to join contours that fulfill the specified collinearity criteria. Furthermore, the operator sometimes returned incorrect results for Mode = 'paralleltoo' and Mode = 'every'. These problems have been fixed. The mode 'every' has been improved so that a contour that is as useful as possible for further processing is returned. In particular, the algorithm now merges exactly two contours per iteration in this mode. The contours that are merged are the two contours having the closest distance. This ensures in most cases that the surrounding contour of a single object is created. As a consequence of this change, the mode 'every' has become slower than in previous HALCON versions and thus should only be used for a small number of contours as input.
  • The operator expand_gray_ref no longer crashes if an input region is larger than the image.
  • The operator lut_trans returned incorrect results if the LUT contained floating point numbers. This problem has been fixed.
  • Parallel HALCON sometimes crashed when exiting a HALCON program. This problem has been fixed.
  • The operator area_center_gray returned illegal results for Row and Column if the gray values defined by the input region were all 0. This problem has been fixed.
  • The operators camera_calibration, do_ocv_simple, vector_to_rigid, match_funct_1d_trans crashed under Solaris. This problem has been fixed.
  • The operator gen_parallel_contour_xld sometimes created incorrect contours if Mode = 'regression_normal'. This problem has been fixed.
  • The operator read_region crashed when reading non-binary Tiff images. Furthermore, the operator did not return the correct error 5567 when reading non-binary BMP images. Instead often the error 3510 was returned. These problems have been fixed.
  • The operator diameter_region did not compute the diameter correctly for regions with 0 or 1 runs. This problem has been fixed.
  • The operator find_marks_and_pose sometimes returned the error 8417 (Fitting of calibration target failed) although the image quality was good and the calibration target was planar enough that find_marks_and_pose should have been able to find the correct pose estimate. This problem has been fixed.
  • The operator select_contours_xld rejected contours from the output if the selection feature ('contour_length', 'maximum_extent', 'curvature') had exactly the value of one of the thresholds. This problem has been fixed. Now the operator complies with the standard HALCON behavior where the thresholds belong to the selection interval.
  • The operator read_ocr_trainf sometimes crashed under Linux 2.2. This problem has been fixed.
  • The operators do_ocr_single and do_ocr_multi in rare cases incorrectly returned an error. The error was caused if the input parameter Character was 1 pixel wide and was situated on the image border. This problem has been fixed.
  • The operator select_gray truncated the input parameters 'Min' and 'Max' when using the features 'min' and 'max' in conjunction with integer image types. This problem has been fixed.
  • The operators edges_sub_pix and lines_gauss sometimes created angle attributes for the extracted contours that pointed to the left side of the contour, whereas they should always point to the right side of the contour as the contour is traversed from start to end. This problem has been fixed.
  • The operator sp_distribution sometimes did not work when passing integer parameters in the parameter PercentPepper. This problem has been fixed.
  • The operator add_noise_white did not work correctly with int2 images. Negative output values were clipped to 0. This problem has been fixed.
  • The operator gen_gauss_pyramid sometimes returned the error 3107 (Scaling factor = 0.0 (IPImageScale)). This could happen if the Scale was smaller than 0.5. This problem has been fixed.
  • The operator exhaustive_match_mg sometimes returned the error 6005 (Tmp-memory management: Null pointer while freeing) if Level = 0. This problem has been fixed.
  • If a tuple of more that 2048 elements was passed to disp_line, only the first 2048 lines were displayed correctly under Windows. This problem has been fixed.
  • The operator tuple_deviation returned a wrong result when 2 values were passed. This problem has been fixed.
  • If a region tuple was read with read_region, sometimes the region features of all regions were identical to the region features of the first region of the tuple. This problem has been fixed.

O Manual:
  • The manual "Getting Started with HALCON" is now available in a new edition. The problems occurring in conjunction with the new version of the dongle driver required for HALCON 6.0.2 or higher versions and their solution are described in the corresponding sections. Furthermore, the installation process is now described in more detail, including information on how to switch between different HALCON versions. A new section contains additional information for users of ActivVisionTools.
  • The documentation of the parameter Bulkiness in the operator eccentricity has been corrected.
  • The documentation of difference no longer contains obsolete information.
  • The description of comparable filter widths in edges_image and edges_sub_pix has been clarified. It has been made obvious that the unbiased version of the filters uses the same smoothing parameter as the biased version.
  • The documentation of edges_sub_pix now describes that the attribute 'edge_direction' is set. Furthermore, the description of the attribute 'angle' has been made more precise.
  • Please note that in the release notes for HALCON 6.0.2 a note regarding the extension of the documentation of the operator info_framegrabber was accidentially left out and has now been added here.

HALCON/C

O Examples:
  • Some example workspaces for Visual Studio used relative paths. These paths have been changed to be relative to HALCONROOT. Furthermore, some example workspaces contained wrong paths. This problem has been fixed.

HALCON/C++

O Functionality:
  • HalconCpp.h no longer includes <iostream.h> but includes <iostream> by default, since including <iostream.h> could cause problems when newer features of the standard C++ library were being used. However, to be compatible with older C++ libraries, HalconCpp.h uses the namespace std by default so that the iostream operators defined in various classes, e.g., HTuple, also work with the older C++ libraries. Note, however, that on SGI machines <iostream.h> is still included because SGI machines use an older version of the C++ libraries.
    Because of this change, all HALCON/C++ applications that make use of the overloaded input and output operators >> and << that HALCON/C++ defined for some classes, e.g., HTuple, must be recompiled and relinked. Programs that do not use the overloaded operators >> and << are binary compatible.
    Furthermore, if user-developed extension packages are used, they must be recompiled. Under Windows, libcpmt.lib must be linked with the C++ language interface of the package. If the standard HALCON makefiles are used to compile the package, this means that libcpmt.lib must be added to EXTRA_LD_FLAGS_CPP_LIB and EXTRA_PAR_LD_FLAGS_CPP_LIB in make.i586-nt4.
  • The include file HOperator.h is now included by HalconCpp.h.

O Bug Fixes:
  • The class method HImage::ReadImage threw an exception with the wrong error code 7200 instead of 5 (H_MSG_FAILED) if the image could not be opened. This problem has been fixed.
  • A bug in the HALCON exception class 'HException' that sometimes caused the application to crash has been fixed. The problem occurred in conjunction with user defined exception handlers that throw a C++ exception with 'throw' and pass the HException object as parameter to the 'catch' block.
  • Some methods of the classes HImage, HRegion, and HOperator now return the error code of the appropriate HALCON operator instead of 0 in case an error occurs.
  • The HALCON/C++ class HOperator sometimes caused errors in the called operators. This problem has been fixed.
  • The destructors of the classes HContour3D, HContourArray2D, HContourArray3D, HPolygonArray2D and HPolygonArray3D crashed if an empty object was created via the copy constructor. This problem has been fixed.
  • The member Deviation of class HTuple returned a wrong result when 2 values were passed. This problem has been fixed.

O Manual:
  • The HALCON/C++ User's Manual is available in a new edition. The chapter "Exception Handling" now contains an example showing how to use the C++ exception handling mechanism (try...catch) together with the class HException.

O Examples:
  • The new example examples/cpp/source/example_errorhandling.cpp shows how to use the standard C++ exception handling (try...catch) together with the class HException.
  • Several C++ example programs contained wrong calls to the constructor of HWindow. This problem has been fixed.
  • Some example workspaces for Visual Studio used relative paths. These paths have been changed to be relative to HALCONROOT.

HALCON/COM

O Manual:
  • The HALCON/COM User's Manual is available in a new edition. It has been updated and revised, mainly regarding syntax and layout. Furthermore, it now contains links into the PDF version of the HALCON/COM Reference Manual.
  • In the HALCON/COM reference manual, control parameters of methods of the class HOperatorSetX are now correctly declared as VARIANT.

O Examples:
  • A memory leak in the example program examples/mfc/MatchingCOM has been fixed.

Frame Grabber Interfaces

The latest information about new extensions and newly supported boards can be found on MVTec's web server.

O New Frame Grabber Interfaces:
  • HALCON now also includes an interface to the GINGA++ frame grabber boards from LinX Corporation.
  • HALCON now also includes an interface to the MaxRevolution frame grabber boards from Datacube.

O Modified Frame Grabber Interfaces:
  • The existing HALCON DFG-BW1 frame grabber interface has been extended to the more general HALCON DFG-BW frame grabber interface, which supports not only The Imaging Source's DFG/BW1 frame grabber board, but now also the DFG/BW4 and DFG/RGB2 boards.
  • The following HALCON frame grabber interfaces have been revised: File, BitFlow, DFG-LC, Fire-i, INSPECTA, MultiCam, Opteon, and PCEye. Please refer to the corresponding documentation for more information, especially whether a new revision of the corresponding device driver is required.

O Manual:
  • The Frame Grabber Integration Programmer's Manual is available in a new edition. Two sections about parameter naming conventions and the use of frame grabber interfaces in ActivVisionTools have been added. Furthermore, a paragraph about the use of camera configuration files has been introduced.

O Examples:
  • In the directory hdevelop\Image\Framegrabber, the new examples ginga++.dev, ginga++_2cameras.dev, ginga++_continuous.dev, ginga++_crop.dev, ginga++_parameters.dev, ginga++_sequence.dev, ginga++_simple.dev, and ginga++_trigger.dev, show how to use the new frame grabber interface for the LinX GINGA++ frame grabber boards.
  • In the directory hdevelop\Image\Framegrabber, the new examples dqvll.dev and dqvll_simple.dev show how to use the new frame grabber interface for the DataCube MaxRevolution frame grabber boards.
  • In the directory hdevelop\Image\Framegrabber, the partly new, partly renamed examples dfg-bw.dev, dfg-bw_crop.dev, and dfg-bw_parameters.dev show how to use the extended frame grabber interface DFG-BW.
  • Further new examples in the directory hdevelop\Image\Framegrabber: dfg-lc_2boards.dev, fire-i_simple.dev, fire-i_parameters.dev, fire-i_trigger.dev, fire-i_2cameras.dev, ids_2boards.dev, opteon_parameters.dev, opteon_queued.dev, opteon_trigger.dev, pceye_parameters.dev.
  • The following examples in the directory hdevelop\Image\Framegrabber have been renamed: flashbus2.dev to flashbus_2cameras.dev, picport_2cam.dev to picport_2cameras.dev, px2.dev to px_2boards.dev, pxc2.dev to pxc_2boards.dev
  • The following example in the directory hdevelop\Image\Framegrabber has been removed: fire-i_XCD_SX900.dev

Miscellaneous

O Installation:
  • The default working directory of HDevelop, Parallel HDevelop, and HDevelop Demo is set to %HALCONROOT%/examples/hdevelop instead of %HALCONROOT%.

O Licensing:
  • HALCON now uses version 8.1 of the FLEXlm license manager software by GLOBEtrotter. This version provides a better support of Windows XP.
    HALCON 6.0.2 used version 8.0, which introduced the support of the new dongles that have IDs starting with '6-' and of USB dongles.


© Copyright 2009, MVTec Software GmbH, corporate/legal/privacy information






Webmaster Last modified: Tue May 02 13:24:30 CEST 2006