MVTec Software GmbH
  Building Vision For Business


Release Notes for HALCON 6.0

Overview

This document contains the following information:

Major New Features of HALCON 6.0
Notes for Users of the Beta Version of HALCON 6.0
Detailed Description of Changes in HALCON 6.0


Major New Features of HALCON 6.0

General Features

O Parallel HALCON:
O Functionality:
    HALCON has been extended with several sets of operators that enable you to solve some important machine vision tasks much more conveniently.
  • The module "Template matching" now also contains operators for shape-based matching. In contrast to HALCON's well-known operators for pattern matching based on gray value correlation, shape-based matching enables you to locate objects even in the presence of occlusion, clutter, or changing illumination.
  • The module "Barcode" has been extended by operators for extracting and decoding 2D bar codes (DataMatrix).
  • The module "Basic operators" has been extended by operators for affine transformations. The operators are useful for alignment tasks where point correspondences are determined, for example, by pattern matching.
  • The module "Image/region/XLD management" has been extended by operators for combining multiple images into a single image and by operators for merging contours and regions from adjacent line scan images.
  • The module "Image filters" has been extended by operators computing shape features based on gray value moments.
  • The module "Region processing" now also contains an operator computing the so-called distance transform of an image.
  • The module "Camera calibration" has been extended by operators facilitating the transformation of points or XLD contours into world coordinates.

O Frame Grabber Integration Interface:
  • The HALCON frame grabber integration interface has been upgraded to version 2. Besides the internal changes due to the introduction of Parallel HALCON, parameters used when connecting to a frame grabber have been renamed and restructured to clarify their use.

O Miscellaneous:
  • The former "C-Interface" has been renamed to "Extension Package Interface" in order to prevent its confusion with HALCON's interface to the programming language C, HALCON/C.

HDevelop

O HDevelop programs can now be exported to the programming language C.


Notes for the Users of the Beta Version of HALCON 6.0

Please note that changes between the Beta Version of HALCON 6.0, as released in October 2000, and the final version of HALCON 6.0, as released in December 2000, are not documented in a special way in these release notes as the large majority of them does not affect applications developed based on the Beta version.

In the following, those changes are described that affect applications developed based on the Beta version of HALCON 6.0.

O HALCON/COM:
  • In the Beta version, the class HWindowXCtrl did not work properly. This problem has been solved in the final version of HALCON 6.0. In this process, the version number of the HALCON/COM interface, i.e., of the DLL halconx.dll, has been reset from 2.0 to 1.2. This means that to run a Visual Basic application developed with the Beta version using the final version of HALCON 6.0, you must exchange the version number of the starting with "Object" and ending with "halconx.dll" in all program files that use the HALCON/COM interface, e.g., Visual Basic project and form files. Executables must be recompiled.

O Parallel HALCON:
  • If you initialize Parallel HALCON on UNIX systems by calling the operator check_par_hw_potential, a file named .halcon_par_info is created containing the information about your hardware. In the Beta version, this file was placed in your home directory whereas the final version of HALCON 6.0 now expects this file in the directory $HALCONROOT! So you either need to initialize Parallel HALCON again using the final version or move the file to the directory $HALCONROOT.


Detailed Description of Changes in HALCON 6.0

Detailed release notes can be obtained for the following topics:

HDevelop
HALCON Library
HALCON/C
HALCON/C++
HALCON/COM
Frame Grabber
Extension Package Interface
Supported Operating Systems
Miscellaneous

HDevelop

O Functionality:
  • HDevelop now enables you to export a HDevelop program to the programming language C.
  • The dialog 'Help -> About' now also displays information identifying the host computer (network card ID or CPU ID) or the dongle ID, as extracted by the program lmhostid. Based on this information, license keys can be generated. See chapter 2 of the manual "Getting Started with HALCON" for more information.

O Examples:
O Bug Fixes:
  • The export to C++ of a more complicated tuple access, e.g., 't1[t2[i]]' or 't1[|t1|-1]', with t1 and t2 being tuples, is now performed correctly.
  • If-clauses testing a variable, e.g., 'if (var)', are now exported to C++ as 'if (var!=0)'.
  • Calls to gen_tuple_const with expressions, e.g., 'gen_tuple_const(a*b,x)', are now correctly exported to C++.
  • In the C++ export, the default graphics window is now declared using a variable name that is unlikely to occur in the rest of the program. Furthermore, more complex constellations, e.g., opening the default window inside a loop, are now handled correctly.
  • If you click with the right mouse button on a graphics window under Windows NT (& 2000) and select a variable in the menu "Display", no problems occur anymore if some variables are not defined yet.
  • Tuples containing negative numbers are now correctly exported to C++.
  • The C++ export of calls to dev_set_part with default values ('-1') now results in the same behavior as in HDevelop.

O Manual:
  • The "HDevelop User's Manual" is now available in its 5th edition. The main new feature is a section describing the export of HDevelop programs to the programming language C. Furthermore, the manual has been updated and slightly restructured.

HALCON Library

O Speedup and Enhancements:
  • The recognition rate in OCR has been increased significantly for complex fonts.
  • The maximum number of image matrices in memory has been increased to 100000. The maximum number of channels per image has been increased to 1000.

O New Operators:
  • There are two new operators for computing shape features based on gray value moments: area_center_gray and elliptic_axis_gray. These operators were part of the HALCON package 'grayfeat' released in January 2000.
  • There are three new operators for combining multiple images into one large image: tile_channels, tile_images, and tile_images_offset. These operators were part of the HALCON package 'tileimages' released in January 2000.
  • The new operators merge_cont_line_scan_xld and merge_regions_line_scan enable you to merge XLD contours and regions, respectively, that have been split over two adjacent images of a line scan camera.
  • There is a new operator for calculating the distance transform of a region: distance_transform. This operator was part of the HALCON package 'distance' released in January 2000.
  • There are five new operators for finding and decoding two-dimensional bar codes (DataMatrix): gen_2d_bar_code_descr, find_2d_bar_code, get_2d_bar_code, get_2d_bar_code_pos, and decode_2d_bar_code. These operators were part of the HALCON package 'barcode2d' released in February 2000.
  • There are six new operators for working with affine transformations: vector_to_rigid, vector_to_similarity, vector_angle_to_rigid, hom_mat2d_slant, and hom_mat2d_to_affine_par. These operators were part of the HALCON package 'affine' released in March 2000.
  • There are three new operators for creating and fitting surfaces of first and second order: fit_surface_first_order, fit_surface_second_order, and gen_image_surface_second_order.
  • The new operators contour_to_world_plane_xld, image_points_to_world_plane, and set_origin_pose facilitate the transformation of points and XLD objects into 3D (world) coordinates.
  • The new operator expand_domain_gray enables you to expand the domain of an image to improve the results of filter operations at the border of an image.
  • The new operators image gen_image1_rect and get_image_pointer1_rect facilitate the creation and the access of images that have a rectangular domain whose height is equal to the height of the image.
  • There are six new operators for shape-based matching: inspect_shape_model, create_shape_model, find_shape_model, clear_shape_model, write_shape_model, and read_shape_model.
  • The new operators check_par_hw_potential, load_par_knowledge, and store_par_knowledge are used by Parallel HALCON to analyze the parallelization capabilities of a multi-processor hardware and to store and load this information.
  • The new operator measure_thresh extracts points with a specified gray value along a line or a circular arc and measures the distance between them.

O Modified Operators:
  • The option "compact_obj" is not supported anymore by the operators set_system and get_system. This option was useful only when using HALCON with Smalltalk/Lisp and has now become obsolete.
  • The operators select_contours_xld, union_straight_contours_xld, union_straight_contours_histo_xld, and clip_contours_xld, can now handle more than 50.000 contour elements. Furthermore, an improved memory allocation strategy leads to reduced requirements on internal memory in most cases.
  • The operators set_system and get_system do not offer the system parameters 'last_pixel', 'min_integer' and 'max_integer' anymore.
  • By using the new system parameters 'byte_order', 'operating_system', and 'operating_system_version' in a call to the operator get_system, you can query information about the processor and the operating system.
  • By using the new system parameter 'processor_num' in a call to the operator get_system, you can query the number of processors in your computer. Note that this parameter will yield correct results only when called from Parallel HALCON. If called from standard HALCON, it will return '1' regardless of the actual number of processors.
  • For the operators set_system and get_system, two new system parameters have been introduced to configure the behavior of Parallel HALCON: "reentrant" and "parallelize_operators".
  • The operators read_image, write_image, and dump_window can now also read and write JPEG images.
  • For TIFF or BMP images, the operator write_image now determines automatically whether to create gray value or color images; the parameter values 'tiff_rgb' and 'bmp_rgb' are therefore obsolete and are not supported anymore.
  • The operator write_image now allows to fill image regions that are not defined with a color; up to now, only gray values were allowed.
  • The operators select_shape and select_gray now offer to select regions according to more than 50 new features. Please consult the Reference Manual for a complete list.
  • In the operators sobel_dir and edges_image, the computed angles lie in the range from 0 to 179 degrees; up to now, the value 180 degree was possible.
  • The operator find_marks_and_pose now checks that the number of extracted marks corresponds to the number of marks on the calibration table.
  • If the operator exhaustive_match is called with a template that is larger than the image, an exception handling is raised.
  • If the operators mean_image, texture_laws, topographic_sketch, median_weighted, and convol_image are called specifying a filter that is larger than the image, an exception handling is raised.
  • In the operator open_framegrabber, some parameters have been renamed to clarify their use: The parameters setting the desired resolution of a frame grabber are now called 'HorizontalResolution' and 'VerticalResolution' (formerly: 'FGWidth' and 'FGHeight'). The parameters specifying the size to the image to be returned by grab_image are now called 'ImageWidth' and 'ImageHeight' (formerly: 'Width' and 'Height'). The parameter describing the used camera type is now called 'CameraType' (formerly: 'Generic').
  • In the operator open_framegrabber, the parameters describing the image concerning the number of channels and the number of bits have been restructured and partly renamed to clarify their meaning: The former parameter 'Bits' has been renamed to 'BitsPerChannel'. As the new name suggests, this parameter now specifies the number of bits per channel (formerly: the number of bits summed over all channels). The parameter 'ColorSpace' now controls whether to grab single-channel images (specify 'gray') or three-channel images (specify the desired color space, e.g, 'rgb'). As a consequence, to grab a standard RGB image you now have to specify 'ColorSpace=rgb' and 'BitsPerChannel=8' (formerly: 'Bits=24').
  • The operator open_framegrabber can now be called with tuple values for the parameters 'BitsPerChannel', 'ColorSpace', 'CameraType', 'Device', 'Port', and 'LineIn'. This results in a change for the COM interface.
  • In the operator set_framegrabber_params, you can now set a parameter to a tuple of values. In such a case, the operator get_framegrabber_params will return a tuple of values for this parameter.
  • The interface for reading image files has been renamed from 'VirtualFG' to 'File'. In a call to open_framegrabber, you therefore must pass 'File' in the parameter 'Name'.
  • The interface for the Matrox Meteor-I has been renamed from 'Meteor' to 'Meteor1'. In a call to open_framegrabber, you therefore must pass 'Meteor1' in the parameter 'Name'.
  • There is now only one common interface for the BitFlow frame grabbers Raven and RoadRunner. In a call to open_framegrabber, you therefore must pass 'Bitflow' in the parameter 'Name' instead of 'Raven' or 'RoadRunner'.
  • In some of the operators processing regions like move_region, an error dialog appeared when the operators were called with extremely wrong parameters. Now, you can control via the operator dev_set_check whether the dialogs are shown or not.
  • If the operator find_1d_bar_code does not find a bar code region, it does not raise an exception handling anymore but returns '0' in the parameter 'BarcodeFound'.
  • Images in the HALCON format "ima" are now read and written (read_image and write_image) independent of the platform also in the formats INT2, INT4, and real.
  • The operators read_string and read_char now work correctly if the HALCON window is a child window of another window under Windows NT / 2000.
  • The HALCON socket operators can now send and receive image arrays with an arbitrary number of objects. Furthermore, the operators correctly handle empty object arrays.
  • In the operator derivate_gauss, the size of the filter mask is now limited to twice the size of the image.

O Eliminated Operators:
  • The operator get_obj_info has been eliminated.
  • The operator disp_info is not supported anymore.

O Bug Fixes:
  • If you call the operators draw_circle_mod, draw_rectangle2_mod, draw_ellipse_mod, or draw_line_mod and quit the drawing mode without modification, the correct result is returned now.
  • A bug in the operator regress_cont_xld leading to sometimes incorrect results has been fixed.
  • Up to now, the OCV operators returned the error message "matrix is singular", if called with a pattern that does not match the template at all, or in case of a degenerated input pattern, e.g., with a size of only one pixel. Now, the operators return zero in the parameter Quality in these cases.
  • A bug caused the operators rank_region, median_image, or dual_rank to return a message concerning a memory error in rare cases (very small images and special ROI shapes). This bug has been fixed.
  • A memory leak in the operator opening_seg has been fixed.
  • A bug in the operator disp_region which caused an incorrect display in rare cases has been fixed.
  • The operator partition_rectangle sometimes did not return rectangles of equal size. This bug has been fixed.
  • A memory leak in the operator detect_edge_segments has been fixed.
  • The operators write_tuple and read_tuple can now correctly write and read strings that contain the space character.
  • The operators fill_dvf and find_caltab now process only single-channel images. In previous HALCON versions, these operators could produce an error if called with multi-channel images.
  • A memory error in the operator hit_or_miss_golay has been fixed.
  • Due to a bug in the operator dual_threshold the negative part of the gray values was not extracted correctly for float images. This bug has been fixed.
  • A bug in the operator read_region causing a crash under DIGITAL UNIX has been fixed.
  • The operator file_exists now returns the correct result on all architectures.
  • If the operator draw_point was directly finished by clicking the right mouse button, under Windows NT all directly following calls to draw_point were ignored. The corresponding bug has been fixed.
  • Due to a bug in the compiler gcc 2.95, sockets were not flushed when using the HALCON socket operators. To assure the correct behavior, the compiler bug is now circumvented internally.
  • A memory error occurred when calling the operator create_template_rot and specifying more than 5 levels. This behavior has been fixed.
  • The second input control parameter of the operators angle_lx and angle_ll now has the correct default type.
  • The operator line_orientation now also works for parameters of the type 'real'. Furthermore, a bug in the internal computations has been fixed.
  • Due to an internal bug the operator get_system returned false values for the parameters pixel_ratio, border_width and for the parameters starting with 'num_gray_' or 'num_graphics_'. This bug has been fixed.
  • The operator do_ocr_multi crashed when called with the classification feature 'projection_vertical_invar'. The corresponding bug has been fixed.

O Manual:
  • The manual "Getting Started with HALCON" is now available in its 5th edition. The manual has been completely revised. The main new features are a chapter describing Parallel HALCON and a separate, extended chapter on the installation, configuration, and the licensing of HALCON. Furthermore, the chapter "Philosophy" has been extended by a section describing the HALCON frame grabber interface.

O Miscellaneous:
  • The internal variables storing the global image size are now initialized to 128x128 (former value: 512x512). See the entry for the operator reset_obj_db in the Reference Manuals for more information.

HALCON/C

O Manual:
  • The "HALCON/C User's Manual" is now available in its 5th edition. Besides being updated and slightly restructured, the manual now contains information about how to use Parallel HALCON in C programs.

O Examples:
  • The new example example_multithreaded1.c shows how to use Parallel HALCON in a multithreaded program.

HALCON/C++

O Bug Fixes:
  • An internal bug causing deadlocks in C++ applications has been fixed.
  • If tuples were used multiple times as an output control parameter, they sometimes contained too many values. The corresponding bug has been fixed.

O Manual:
  • The "HALCON/C++ User's Manual" is now available in its 5th edition. Besides being updated and slightly restructured, the manual now contains information about how to use Parallel HALCON in C++ programs.

HALCON/COM

O Programming:
  • Because the operator open_framegrabber can now be called with tuple values for the parameters 'BitsPerChannel', 'ColorSpace', 'CameraType', 'Device', 'Port', and 'LineIn', none of its parameters is optional anymore. This means that you must specify a value for each parameter, for example the default values '-1' or 'default'.

O Bug Fixes:

O Manual:
  • The "HALCON/COM User's Manual" is now available in its 2nd edition. The manual was updated and restructured slightly.

O Examples:
  • The new example matching.vbp in vb\Tools\Matching shows how to use the new operators for shape-based matching.

Frame Grabber

O Frame Grabber Interfaces:
  • The HALCON frame grabber integration interface has been upgraded to version 2 to reflect the internal changes due to the introduction of Parallel HALCON. Please note, that the HALCON frame grabber interfaces included in HALCON 6.0 (based on version 2) are incompatible to former HALCON releases (based on version 1) and vice versa.
  • HALCON now also includes an interface to FireBoard 400, a IEEE 1394 interface card by Unibrain (under Windows NT).
  • HALCON now also includes an interface to the Opteon frame grabber boards.
  • The family of HALCON interfaces for frame grabbers by Imagenation has been extended by an interface to the board PXD1000.
  • The HALCON interfaces for Bitflow's frame grabbers Raven and RoadRunner have been fused into a single interface. This means that you now must specify 'Bitflow' instead of 'Raven' or 'RoadRunner' in calls to the operator open_framegrabber, for example.
  • Already supported under Windows NT / 2000: BitFlow Raven & RoadRunner, Cheops Ramses-1, Data Translation DT315x, Eltec PCEye, IDS FALCON & EAGLE, Imagenation PX510, PX610, PX610A & PXC200, Integral FlashBus, Leutron PicPort, LinX GINGA, MATRIX Vision, Matrox Meteor-1, Mikrotron INSPECTA-2, The Imaging Source DFG VideoPort, DFG/LC1, DFG/LC2 & DFG/BW1, General purpose TWAIN interface
  • Already supported under Linux: Leutron PicPort, Matrox Meteor-1
  • Already supported under all operating systems: File (virtual frame grabber)

For detailed information, please consult the HTML description of the frame grabber interfaces. The latest information about new extensions and newly supported boards can be found on the frame grabber pages on MVTec's web server.


O Manual:
  • The "Frame Grabber Integration Programmer's Manual" is now available in its 5th edition. Besides being updated and slightly restructured, the manual contains a summary of changes between version 1 and version 2 of the HALCON frame grabber integration interface.

O Miscellaneous:
  • The file names of the libraries for the frame grabber interfaces (Windows NT/2000: DLLs; UNIX: shared libraries) now all start with the prefix "HFG" to avoid confusion with the libraries provided by the frame grabber manufacturers. This has no direct consequence for users of frame grabber interfaces provided by HALCON 6.0; a call to the operator open_framegrabber will automatically load the correct library. However, if you are developing own frame grabber interfaces using the HALCON Frame Grabber Integration Interface, you must prefix the name of the corresponding library with "HFG". Otherwise, HALCON cannot load the library!
  • Under Windows NT / 2000, the libraries for the frame grabber interfaces are provided in a second version for Parallel HALCON, starting with the prefix "parHFG". These libraries are automatically loaded when you call the operator open_framegrabber from Parallel HALCON. Similarly, if you are developing own frame grabber interfaces to be used from Parallel HALCON, you must create a second version of the corresponding library (see the Frame Grabber Integration Programmer's Manual for details).
  • The source code template CIOFGTemplate.c showing how to write a new HALCON frame grabber interface has been adapted to version 2 of the HALCON frame grabber integration interface.

Extension Package Interface

O Programming:
  • In the operator description files (def-files), the new slot 'parallelization' has been introduced. It contains information about the parallelization characteristics of an operator (see the "HALCON Extension Package Interface Programmer's Manual" for more information).
  • To use an extension package in Parallel HALCON, you must create a second version of the corresponding libraries and prefix their names with 'par'. Please consult the "HALCON Extension Package Interface Programmer's Manual" for more information.

O Examples:
  • The makefiles for creating the example extension package 'halconuser' and the test programs based on it have been completely revised. Furthermore, they were extended to create the corresponding versions for Parallel HALCON as well. For Windows NT / 2000, the former example project has been replaced by a set of makefiles to be used via 'nmake'. Please consult the file 'README' in the directory examples/extension_package/halconuser for more details.

O Manual:
  • The "HALCON Extension Package Interface Programmer's Manual" is now available in its 5th edition. Besides being updated and slightly restructured, the manual now reflects the changes and extensions caused by introducing Parallel HALCON.

Supported Operating Systems

O Windows NT / 2000:
    As the previous releases, HALCON 6.0 has been compiled for Windows NT 4.0 and Microsoft Visual Studio 6.0. The same version runs under Windows 2000. However, the directory names have been changed to reflect the fact that HALCON 6.0 is optimized for Intel Pentium or compatible processors. After installing HALCON 6.0, please check that the environment variable ARCHITECTURE is set to i586-nt4 and that the correct directory names appear in the variable PATH.

    Please note, that HALCON 6.0 does no longer support Windows NT on Alpha processors.

O Linux:
    HALCON 6.0 has been compiled for Linux 2.2 (glibc-2.1.x) and gcc-2.95; it is optimized for Intel Pentium or compatible processors. The directory names have been changed to reflect this. Please set the environment variable ARCHITECTURE to i586-linux2.2 and update the environment variables PATH and LD_LIBRARY_PATH accordingly.

O Solaris:
    HALCON 6.0 has been compiled for Solaris 7 and CC 5.0. The directory names have been changed to reflect this. Please set the environment variable ARCHITECTURE to sparc-sun-solaris2.6 and update the environment variablesPATH and LD_LIBRARY_PATH accordingly.

O IRIX:
    As the previous release (5.2.3), HALCON 6.0 has been compiled for IRIX 6.5 as new 32 (n32) bit binaries and only runs on IRIX 6.5 or higher. If you did not update to HALCON 5.2.3, please take a look at the corresponding release note.

O DIGITAL UNIX (Tru64 UNIX):
    As the previous releases, HALCON 6.0 has been compiled for DIGITAL UNIX 4.0 (Tru64 UNIX).

O HP-UX:
    HALCON 6.0 has been compiled for HP-UX 10.20. The directory names have been changed to reflect this. Please set the environment variable ARCHITECTURE to hppa1.1-hp-hpux10 and update the environment variables PATH and SHLIB_PATH accordingly.

Miscellaneous

O Manuals:
  • The LaTeX style files copyright_english.tex, format_english.tex, and format_german.tex residing in the directory doc\macros have been replaced by a single style file, halcon_reference.sty. This file is used to format the LaTeX version of reference manuals created by 'hcomp'. See the "HALCON Extension Package Interface Programmer's Manual" for more information.
  • PostScript versions of the manuals are not provided anymore on the CD.
  • The reference manuals can now be found in the directory doc\pdf\reference (formerly: doc\pdf\manuals).

O Examples:
  • A bug in the example program vb/Tools/Calibration has been fixed.

O Example Images:
  • If you choose to install the example images, you now also get images of 2D bar codes in the directory 'barcode\ecc200', and a sequence of images used for shape-based matching in the directory 'board'. The image sequence 'fonts' is now only installed if you choose to install the image sequences.
  • The two images mreut_dgm_2.0i.ima and mreut_dgm_2.0m.ima have been replaced by the single image mreut_dgm_2.0.ima, which can be read independent of the platform.

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






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