Sei sulla pagina 1di 26

Release Notes for HALCON 7.

1
● HALCON
● Overview This document provides the release notes for MVTec HALCON 7.1, as
released in August 2005. HALCON 7.1 is a major new release.
● News

● Applications

● Solutions
Overview
● Technical Data

● Programming This document contains the following information:


● Brochure
Compatibility
● Documentation

● Tutorials
Major New Features of HALCON 7.1
● Frame Grabber Detailed Description of Changes in HALCON 7.1 (relative to
● HDevelop
HALCON 7.0.2)

● HMatchIt
Major New Features of HALCON 7.0
● Packages Detailed Description of Changes in HALCON 7.0.2
● Where To Buy Detailed Description of Changes in HALCON 7.0.1
Detailed Description of Changes in HALCON 7.0
● Support

● Download
❍ Registration
❍ Demo Version
❍ Full Version
Compatibility
● Demo Version

● MVTec Licenses
All HALCON 7.0 licenses must be replaced or upgraded. Please
contact your local distributor.

HALCON Library
Compared to HALCON 7.0, many extensions have been
introduced. Thus, the HALCON 7.1 libraries are not compatible
with HALCON 7.0 or earlier versions.

HALCON Applications
Please re-compile all C, C++, or COM programs developed with
HALCON 7.0.x.
The incompatibility with HALCON 7.0 or earlier versions mainly
concerns the binaries, with only few changes in the language
interfaces. If you encounter problems during recompiling your
programs, please check the detailed description of changes
below.
Please note the following incompatibilities:
■ Due to the introduction of the C++ namespace "Halcon", old
HALCON/C++ programs cannot be compiled. You must adapt
them by using the namespace.
■ HALCON/C++ programs that use iostream operators must be
modified by including the new header file "HIOStream.h".
■ HALCON/COM programs that use default values that are not at
the end of the parameter list must be modified so that the
default parameters appear at the end of the list.
■ Applications using the operators sobel_amp and sobel_dir
must be adapted to the changed behavior of the operators.

Frame Grabber Interfaces


Frame grabber interfaces developed with HALCON 7.0.x or
HALCON 6.1.x are binary compatible with HALCON 7.1,
interfaces developed with older versions must be re-generated.

Extension Packages
Please re-generate your own extension packages developed with
HALCON 7.0.x.

ActivVisionTools
Since all ActivVisionTools versions are based on HALCON 7.0.1
or below, none of them can be used directly with HALCON 7.1. By
installing HALCON 7.1, you would thus disable such an
ActivVisionTools installation. Therefore, the setup program of
HALCON 7.1 checks whether there is an ActivVisionTools
installation on your computer and warns you that by continuing to
install HALCON 7.1 you will disable your ActivVisionTools
installation.
■ If you have been using ActivVisionTools 3.0, please contact
your distributor for further information on how to run this
version together with HALCON 7.1.
■ In contrast, ActivVisionTools 1.0 to 2.2 cannot be used
together with HALCON 7.1.
If you still want to use your ActivVisionTools installation, you
must also keep your old HALCON installation and switch back
to it as described in the "Installation Guide". Note that if you
only want to evaluate HALCON 7.1, you can minimize the
switching effort by installing only the demo version.

Major New Features of HALCON 7.1


General Features

Extended Functionality
❍ HALCON's data code reader can now also read PDF417 data
codes. The reader is robust to occlusions and to poor print quality,
invariant to image contrast and to rotation, and allows
simultaneous detection of multiple instances. All features of
PDF417 are supported.
❍ HALCON now provides pre-trained OCR classifiers that are based
on a large amount of training data stemming from various
application areas. These fonts allow you to read text on forms, on
pharmaceutical or industrial products, dot prints, and even
handwritten numbers. Furthermore, HALCON includes pre-trained
fonts for OCR-A, OCR-B, and MICR.
❍ So far, HALCON offered the 3D camera calibration for area scan
cameras. With HALCON 7.1 you can now also calibrate line scan
cameras.
❍ HALCON now provides radiometric self-calibration (gray value
calibration). This preprocessing step increases the accuracy of all
high-accuracy machine vision methods like shape-based
matching, point finders, measurements, or subpixel line and edge
extraction. The calibration process needs no special calibration
target and no optimized illumination.
❍ With HALCON 7.1, most parameters of the shape-based matching
can be determined automatically.
❍ HALCOn now provides operators for uncalibrated binocular
stereo. For this, no special calibration target is needed.
❍ HALCON now provides operators for the self-calibration of a
camera rotated around its optical center and for spherical
mosaicking (360° mosaicking). For this calibration process, no
special calibration target is needed.
❍ HALCON now provides operators for inpainting. These operators
can be used, e.g., to reconstruct destroyed image data or to
remove unwanted image parts.
❍ More filtering operators have been sped up by providing an MMX
implementation.

Supported Operating Systems


HALCON now also runs natively on 64 bit systems. It is available
for Windows XP x64 and Linux on Intel EM64T or AMD64
processors.

HDevelop

Export to C# and Visual Basic .NET


You can export HDevelop programs now also to C# and Visual
Basic .NET.

External Procedures
HDevelop procedures can now also be stored externally. Thus,
multiple programs can use the same procedures.

Documentation

New Application Note: 1D Metrology


This Application Note introduces you to HALCON's measure and
fuzzy measure tool. With these tools you can easily create
applications that measure the dimensions of objects quickly and
with high accuracy.

Quick Guide Describes Color Processing


The "Quick Guide" now also shows you how to use HALCON's
operators for color processing, e.g., to differentiate between object
types based on their color.

Extended Application Note on 3D Machine Vision


The "Application Note on 3D Machine Vision" has been extended.
Besides describing newly introduced functionality like the
calibration of line scan cameras, it now also introduces you to
HALCON's hand-eye calibration, which is the base of robot vision
applications.

HDevelop Tutorials
The two tutorials Getting Started With HDevelop and Creating an
HDevelop Application introduce you to the interactive development
tool HDevelop.

Detailed Description of Changes in HALCON 7.1

Detailed release notes can be obtained for the following topics:

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

Please note that these release notes are relative to HALCON 7.0.2. If you
are upgrading from earlier versions, you should also consult the release
notes for earlier HALCON versions.

HDevelop

Speed-Up and Enhancements:


❍ HDevelop is now able to export programs to C# and Visual Basic .
NET. The exported program file is meant to be integrated into
template projects that can be found in the directories %
HALCONROOT%\examples\c#\HDevelopTemplate and %
HALCONROOT%\examples\vb.net\HDevelopTemplate,
respectively.
❍ HDevelop now provides a mechanism to store and use external
procedures. External procedures are procedures that are stored in
separate files in a directory specified by the user. All external
procedures from the specified directories are loaded when
HDevelop is started and hence are available for use in all
programs.
❍ HALCON now provides means to execute HDevelop programs
and procedures in user applications. This HDevelop execution
engine is provided as a DLL hdevengine.dll under Windows and
as a shared library libhdevengine.so under Linux/UNIX. The C++
include file HDevEngine.h containing the relevant HDevelop
execution engine classes is provided in the HALCON include
directory under the subdirectory hdevengine. An example on how
to use the engine can be found under examples/hdevengine.

Functionality:
❍ HDevelop's language provides the following new tuple functions:
■ cumul calculates the cumulative sums of a tuple.
■ remove removes a set of elements from a tuple.
■ median calculates the median of a tuple.

■ select_rank returns the element at rank n of a tuple.

❍ HDevelop's C++ code export has been improved regarding


readability and runtime efficiency of the exported code.
❍ Each HDevelop graphics window now has its own display
parameters. Thus, changing HDevelop's visualization parameters
now only applies to the active graphics window.
❍ The precedence of the bit operators in HDevelop has been made
identical to C and C++. In previous HDevelop versions, and and
band were in the same precedence group and were evaluated
from left to right. The operator band now has higher precedence
than and. Likewise, or, bor, xor, and bxor were in the same
precedence group and were evaluated from left to right. The
precedence now is bxor -> bor -> xor -> or. In total, the
precedences now are band -> bxor -> bor -> and -> xor -> or
(highest to lowest).
❍ HDevelop now supports different browsers under UNIX, i.e., it is
able to display its help pages in the browser that is currently
installed on the system. Which browser is currently installed is
decided by checking whether any of the following browsers is
available in the path (in this order): firefox, mozilla, netscape,
opera, konqueror, galeon.

Examples:
❍ The new example program examples/hdevelop/explore_halcon.
dev demonstrates a multitude of machine vision solutions from
many different industries and application areas.
❍ The new example programs pdf417_simple.dev and
pdf417_optimized.dev in examples/hdevelop/Applications/
Datacode and pdf417_default_settings.dev and
pdf417_optimized_settings.dev in examples/hdevelop/Tools/
Datacode show how to read PDF417 data codes.
❍ The new example programs examples/hdevelop/Tools/Calibration/
line_scan_calibration.dev and examples/hdevelop/Applications/
Calibration/world_coordinates_line_scan.dev show how to
calibrate line scan cameras.
❍ The new example program examples/hdevelop/Tools/Calibration/
radiometric_self_calibration.dev shows how to use the new
operator radiometric_self_calibration.
❍ The new example programs examples/hdevelop/Tools/Calibration/
get_circle_pose.dev and examples/hdevelop/Applications/
Calibration/3d_position_of_circles.dev show to use the new
operator get_circle_pose.
❍ The new example program examples/hdevelop/Tools/Calibration/
stationary_camera_self_calibration.dev shows how to use the new
operator stationary_camera_self_calibration.
❍ The new example program examples/
application_guide/3d_machine_vision/hdevelop/
bundle_adjusted_mosaicking.dev shows how to use the new
operators for bundle-adjusted mosaicking.
❍ The example program examples/hdevelop/Tools/2D-
Transformations/gen_projective_mosaic.dev has been rewritten to
use the new operators for bundle-adjusted mosaicking.
❍ The new example programs examples/hdevelop/Tools/Stereo/
uncalib_stereo_boxes.dev and examples/hdevelop/Applications/
Stereo/board_segmentation_uncalib.dev show how to use the new
operators for uncalibrated binocular stereo.
❍ The new example programs handeye_create_robot_poses.dev,
handeye_stationarycam_calibration.dev,
handeye_movingcam_calibration.dev, and
handeye_stationarycam_grasp_nut.dev in examples/
application_guide3d_machine_vision/hdevelop show how to use
HALCON's hand-eye calibration for robot vision. They are
described in detail in the "Application Note on 3D Machine Vision".
❍ The new example program examples/hdevelop/Segmentation/
Topography/watersheds_threshold.dev shows how to use the new
operator watersheds_threshold.
❍ The new example program examples/hdevelop/XLD/Features/
fit_ellipse_tooth_rim_xld.dev shows how to use geometric
distances with the operators fit_ellipse_contour_xld,
dist_ellipse_contour_xld, and dist_ellipse_contour_points_xld.
❍ The new example programs in examples/hdevelop/Filter/Inpainting
show how to use the new operators for inpainting.
❍ The following new example programs show how to use the new
operators for smoothing and enhancing images: isotropic_diffusion.
dev and anisotropic_diffusion.dev in examples/hdevelop/Filter/
Smoothing/, coherence_enhancing_diff.dev, mean_curvature_flow.
dev, and shock_filter.dev in examples/hdevelop/Filter/
Enhancement/.
❍ The new example programs in examples/
application_guide/1d_metrology/hdevelop show how to use
HALCON's measure and fuzzy measure tool. They belong to the
new Application Note on 1D Metrology.
❍ The new example programs color_fuses.dev, color_pieces.dev,
color_pieces_euclid.dev, and color_simple.dev in the directory
examples/quick_guide/hdevelop show how to perform color
processing in HALCON. They are described in detail in the "Quick
Guide to HALCON".
❍ The new example program examples/hdevelop/Segmentation/
Threshold/var_threshold.dev shows how to use the new operator
var_threshold.
❍ The new example program examples/hdevelop/XLD/
Transformation/union_cocircular_contours_xld.dev shows how to
use the new operator union_cocircular_contours_xld.
❍ In the example program examples/hdevelop/XLD/Transformation/
union_contours_xld.dev the old operator
union_straight_contours_xld was replaced by the new operator
union_adjacent_contours_xld.
❍ The examples for OCR have been rewritten to use one of the new
pre-trained OCR classifiers.
❍ The new example program examples/hdevelop/Regions/Features/
rectangularity.dev shows how to use the new operator
rectangularity.
❍ The new example program examples/hdevelop/Image/Features/
estimate_noise.dev shows how to use the new operator
estimate_noise.
❍ The new example program examples/hdevelop/XLD/
Transformation/crop_contours_xld.dev shows how to use the new
operator crop_contours_xld.
❍ The new example program examples/hdevelop/XLD/Features/
test_self_intersection_xld.dev shows how to use the new operator
test_self_intersection_xld.
❍ The following new example programs in hdevelop/Image/
Framegrabber show how to use the new frame grabber interfaces:
■ menable3.dev, menable3_continuous.dev, menable3_crop.
dev, menable3_parameters.dev, menable_simple.dev
■ directfile.dev

■ tag.dev, tag_crop.dev, tag_parameters.dev, tag_simple.dev

❍ The new example program examples/hdevelop/Image/Creation/


gen_image_interleaved.dev shows how to use the new operator
gen_image_interleaved.
❍ The new example program examples/hdevelop/Graphics/Output/
dump_window_data.dev shows how to use the new operator
dump_window_image.
❍ The new example programs gray_closing_shape.dev,
gray_dilation_shape.dev, gray_erosion_shape.dev, and
gray_opening_shape.dev in examples/hdevelop/Morphology/Gray-
Values/ show how to use the corresponding operators.
❍ The new example programs gray_opening_rect.dev and
gray_closing_rect.dev in examples/hdevelop/Morphology/Gray-
Values show how to use the new operators gray_opening_rect
and gray_closing_rect.
❍ The new example programs invert_funct_1d.dev and
compose_funct_1d.dev in examples/hdevelop/Tools/Function/
show how to use the new operators for 1D functions .
❍ The new example program examples/hdevelop/File/Text/
fread_line.dev shows how to use the new operator fread_line.

Bug Fixes:
❍ HDevelop's gray histogram displayed an incorrect peak value for
int1 images. This problem has been fixed.
❍ HDevelop erroneously allowed indexing into an empty tuple. This
problem has been fixed.

Manual:
❍ Two tutorials introduce you to HDevelop, HALCON's interactive
development tool: The tutorial Getting Started With HDevelop
shows you how to load and run HDevelop programs. How to
create your own application in HDevelop is explained in the tutorial
Creating an HDevelop Application.
❍ The HDevelop User's Manual is now available in a new edition. It
has been updated and extended following the changes in
HALCON 7.1. Especially, it now describes how to work with
external HDevelop procedures.

HALCON Library
New Operators:
❍ HALCON has been extended with an operator
radiometric_self_calibration that performs a radiometric self
calibration from multiple images with different exposures.
The new example program examples/hdevelop/Tools/Calibration/
radiometric_self_calibration.dev shows how to use the new
functionality. It uses the new example images in the directory
images/radiometry.
❍ HALCON has been extended with the operator get_circle_pose,
which determines the position and orientation of a circle in 3D
from its perspective 2D projection.
The new example programs examples/hdevelop/Tools/Calibration/
get_circle_pose.dev and examples/hdevelop/Applications/
Calibration/3d_position_of_circles.dev show how to use the new
functionality.
❍ HALCON now has an operator stationary_camera_self_calibration
for the self-calibration of stationary cameras. Stationary means
that the camera can only rotate around its optical center and can
zoom.
Furthermore, there are two new operators cam_mat_to_cam_par
and cam_par_to_cam_mat that convert the output of
stationary_camera_self_calibration to the format for the camera
parameters used by camera_calibration.
Finally, since the output of stationary_camera_self_calibration can
be used to create spherical mosaic images, HALCON now has an
operator gen_spherical_mosaic to create such images.
The new example program examples/hdevelop/Tools/Calibration/
stationary_camera_self_calibration.dev shows how
stationary_camera_self_calibration can be used to determine the
interior camera parameters of a camera. It uses the new example
images in the directory images/self_calib.
❍ HALCON has been extended with two operators for bundle-
adjusted mosaicking: The operator bundle_adjust_mosaic
performs a bundle adjustment of a planar mosaic image. The
operator gen_bundle_adjusted_mosaic creates a mosaic image
based on the output of bundle_adjust_mosaic.
The new example program examples/
application_guide/3d_machine_vision/hdevelop/
bundle_adjusted_mosaicking.dev shows how to use the new
functionality. The example program examples/hdevelop/Tools/2D-
Transformations/gen_projective_mosaic.dev has been rewritten to
use these new operators.
In the "Application Note on 3D Machine Vision", the section on
Uncalibrated Mosaicking has been extended to also describe the
bundle-adjusted mosaicking.
❍ HALCON now comprises the following operators for uncalibrated
binocular stereo: match_fundamental_matrix_ransac,
match_essential_matrix_ransac, match_rel_pose_ransac,
vector_to_fundamental_matrix, vector_to_essential_matrix,
vector_to_rel_pose, essential_to_fundamental_matrix,
rel_pose_to_fundamental_matrix,
reconst3d_from_fundamental_matrix, and
gen_binocular_proj_rectification.
A new example program for stereo with known cameras is
examples/hdevelop/Tools/Stereo/uncalib_stereo_boxes.dev. The
functionality of projective rectification is demonstrated by the new
example examples/hdevelop/Applications/Stereo/
board_segmentation_uncalib.dev. New images for both examples
are located under stereo/uncalib.
❍ HALCON has been extended with the operator
watersheds_threshold that computes the watersheds of an image
and returns the corresponding basins. In order to get reasonable
results it is possible to specify the minimum height of the
watersheds by passing a threshold parameter.
The new example program examples/hdevelop/Segmentation/
Topography/watersheds_threshold.dev shows how to use the new
functionality. It uses the new example images images/pills and
images/mvtec_logo.
❍ HALCON has been extended with the following operators for
inpainting:
■ harmonic_interpolation performs an image inpainting operation
using harmonic interpolation.
■ inpainting_aniso performs an image inpainting operation using
anisotropic diffusion.
■ inpainting_ced performs an image inpainting operation using
coherence-enhancing diffusion.
■ inpainting_mcf performs an image inpainting operation using a
mean curvature flow.
■ inpainting_texture performs an image inpainting operation
using a texture propagation approach.
The following new example programs in examples/hdevelop/Filter/
Inpainting/ show how to use the new functionality:
harmonic_interpolation.dev, inpainting_aniso.dev, inpainting_ced.
dev, and inpainting_mcf.dev show how the corresponding
operators can be used to fill up unreconstructed areas in a
distance image created by stereo reconstruction;
inpainting_texture.dev shows how to use inpainting_texture to
remove unwanted objects from a photograph.
❍ HALCON has been extended with operators for smoothing and
enhancing images:
■ isotropic_diffusion performs an isotropic diffusion on an image.
This corresponds to a Gaussian filtering. However, in
isotropic_diffusion the filtering is performed by solving the
underlying Laplace partial differential equation with von
Neumann boundary conditions at the borders of the image
domain. This causes only the gray values inside the domain to
be used for the filtering and helps to avoid border artifacts in
most cases.
■ anisotropic_diffusion performs an anisotropic diffusion on an
image. anisotropic_diffusion provides three different anisotropic
diffusion functions and hence is more comprehensive than
anisotrope_diff, which it obsoletes. anisotrope_diff is still
supported for backwards compatibility, however.
■ coherence_enhancing_diff performs a coherence enhancing
diffusion on an image.
■ mean_curvature_flow performs a mean curvature flow on an
image. The mean curvature flow smoothes along the edge
direction, but performs no smoothing across edges.
■ shock_filter performs a shock filter on an image. The shock
filter sharpens edges.
The following new example programs show how to use the new
operators: isotropic_diffusion.dev and anisotropic_diffusion.dev in
examples/hdevelop/Filter/Smoothing/, coherence_enhancing_diff.
dev, mean_curvature_flow.dev, and shock_filter.dev in examples/
hdevelop/Filter/Enhancement/.
❍ HALCON has been extended with an operator var_threshold that
performs thresholding based on local mean and standard
deviation.
The new example program examples/hdevelop/Segmentation/
Threshold/var_threshold.dev shows how to use var_threshold to
segment characters in an image.
❍ There are two new operators to merge XLD contours:
■ union_adjacent_contours_xld merges contours whose
endpoints are close together. This operator (together with the
operator union_collinear_contours_xld) replaces the operator
union_straight_contours_xld, which is now obsolete and
remains in the HALCON library for compatibility reasons only.
■ union_cocircular_contours_xld merges contours within an XLD
contour array which are on the same circle.
In the example program examples/hdevelop/XLD/Transformation/
union_contours_xld.dev the old operator
union_straight_contours_xld was replaced by the new operator
union_adjacent_contours_xld. The new example program
examples/hdevelop/XLD/Transformation/
union_cocircular_contours_xld.dev shows how to merge contours
belonging to similar circles.
❍ HALCON has been extended with the operator rectangularity,
which determines the rectangularity of a region. Accordingly, the
operator select_shape now offers a new feature 'rectangularity'.
The new example program examples/hdevelop/Regions/Features/
rectangularity.dev shows how to use the new functionality.
❍ HALCON has been extended with an operator estimate_noise that
estimates the standard deviation of the noise within an image. The
estimation process is solely based on a single input image.
Different methods that are able to estimate the noise from a single
image are available.
The new example program examples/hdevelop/Image/Features/
estimate_noise.dev shows how to use estimate_noise.
❍ HALCON now has an operator crop_contours_xld that crops an
XLD contour against a given rectangle. crop_contours_xld clips
each contour segment against the clipping rectangle, i.e., in
contrast to clip_contours_xld it creates a shorter segment for each
segment that partially lies inside the clipping rectangle.
Furthermore, crop_contours_xld has an option to create closed
output contours from closed input contours.
The new example program examples/hdevelop/XLD/
Transformation/crop_contours_xld.dev shows how to use this
operator.
❍ HALCON now has an operator test_self_intersection_xld that tests
an XLD contour whether it intersects itself. If the contour is open, a
parameter specifies whether the contour is closed before applying
the test. test_self_intersection_xld returns a tuple that contains the
result of the test for each input contour. Each element of the tuple
holds either 1 or 0, depending on whether the corresponding
contour self-intersects.
The new example program examples/hdevelop/XLD/Features/
test_self_intersection_xld.dev shows how to use this operator.
❍ HALCON offers the new operator dist_ellipse_contour_points_xld,
which computes the distances of all contour points to an ellipse.
The usage is shown in the new example program examples/
hdevelop/XLD/Features/fit_ellipse_tooth_rim_xld.dev which uses
the new image tooth_rim.
❍ HALCON now has an operator gen_image_interleaved that
creates a three-channel HALCON image from a matrix of
interleaved pixels. gen_image_interleaved works in a similar
manner as gen_image1. Furthermore, gen_image_interleaved
supports cropping and, in case of 16 bits per channel and pixel,
shifting of the pixel values to the right.
The new example program examples/hdevelop/Image/Creation/
gen_image_interleaved.dev shows how to use this operator.
❍ HALCON has been extended with the operator
dump_window_image that dumps the contents of a graphics
window into a HALCON image object.
The new example program examples/hdevelop/Graphics/Output/
dump_window_data.dev shows how to use the new functionality.
❍ HALCON has the two new operators gray_opening_rect and
gray_closing_rect, complementing gray_erosion_rect and
gray_dilation_rect.
The new example programs examples/hdevelop/Morphology/Gray-
Values/gray_opening_rect.dev and examples/hdevelop/
Morphology/Gray-Values/gray_closing_rect.dev show how to use
the new functionality.
❍ HALCON now has 2 new operators for handling 2D homogeneous
matrices:
■ hom_mat2d_transpose computes the transpose of a
homogeneous 3x3 transformation matrix.
■ hom_mat2d_determinant computes the determinant of a

homogeneous 3x3 transformation matrix.


❍ HALCON now provides the following new tuple operators:
■ tuple_cumul calculates the cumulative sums of a tuple.
■ tuple_remove removes a set of elements from a tuple.
■ tuple_median calculates the median of a tuple.

■ tuple_select_rank returns the element at rank n of a tuple.

❍ HALCON has been extended with an operator fread_line that is


able to read an entire line from a file.
The new example program examples/hdevelop/File/Text/
fread_line.dev shows how to use fread_line.
❍ The HALCON operator set for 1D functions has been extended
with the following operators:
■ get_y_value_funct_1d returns the y-value of a 1D function at
an arbitrary x-value.
■ invert_funct_1d that inverts monotonic 1D functions.
■ compose_funct_1d composes two 1D functions.
The new example programs invert_funct_1d.dev and
compose_funct_1d.dev in examples/hdevelop/Tools/Function/
show how to use the new operators.

Speed-Up and Enhancements:


❍ HALCON now supports the detection and the decoding of the 2D
data code symbology PDF417. Both the conventional PDF417 as
well as the Compact PDF417 are supported. The new functionality
is provided by extending the existing operators
create_data_code_2d_model, clear_data_code_2d_model,
clear_all_data_code_2d_models, find_data_code_2d,
query_data_code_2d_params, set_data_code_2d_param,
get_data_code_2d_param, get_data_code_2d_results,
get_data_code_2d_objects, write_data_code_2d_model, and
read_data_code_2d_model accordingly.
The new example programs pdf417_simple.dev and
pdf417_optimized.dev in examples/hdevelop/Applications/
Datacode and pdf417_default_settings.dev and
pdf417_optimized_settings.dev in examples/hdevelop/Tools/
Datacode demonstrate how to use the new functionality. The
example programs use the new example images in the directory
images/datacode/pdf417.
❍ The QR Code reader that is used by the operator
find_data_code_2d was changed in a way that it is now able to
read QR Codes even if only two of the three position detection
patterns are visible. This works for QR Code symbols that have no
or only very low distortions.
❍ HALCON provides the functionality to calibrate line scan pinhole
cameras. It is also possible to rectify the images of these cameras
and to project points and contours extracted from these images
into the world plane. All relevant HALCON operators have been
adapted accordingly.
The new example programs examples/hdevelop/Tools/Calibration/
line_scan_calibration.dev and examples/hdevelop/Applications/
Calibration/world_coordinates_line_scan.dev show how to use the
new functionality. They use the new example images images/calib/
calib_line_scan_[01-17] and images/caliper/caliper_line_scan.
❍ HALCON now provides pre-trained OCR classifiers for the most
commonly used fonts. The directory "ocr" contains the following
OCR classifiers:
■ Document.fnt, Document_0-9.fnt, Document_0-9A-Z.fnt
■ DotPrint.fnt, DotPrint_0-9.fnt, DotPrint_0-9+.fnt, DotPrint_0-9A-
Z.fnt
■ HandWritten_0-9.fnt
■ Industrial.fnt, Industrial_0-9.fnt, Industrial_0-9+.fnt, Industrial_0-
9A-Z.fnt
■ MICR.fnt
■ OCRA.fnt, OCRA_0-9.fnt, OCRA_0-9A-Z.fnt
■ OCRB.fnt, OCRB_0-9.fnt, OCRB_0-9A-Z.fnt
■ Pharma.fnt, Pharma_0-9.fnt, Pharma_0-9+.fnt, Pharma_0-9A-Z.
fnt
The total number of character samples used to train these fonts is
greater than 2,000,000. The samples were selected from
hundreds of real-world applications.
The names of the fonts are chosen such that they indicate the
characters that are contained in the font. Hence, OCRB_0-9.fnt
means that the font contains the characters 0-9. A '+' in the name
means that certain special characters are contained in the font. A
name with no character indication means that the most
comprehensive set of characters is contained in the font. Since the
general character set and the special character set are font-
specific, it is useful to query the characters contained in the font
using get_params_ocr_class_mlp.
The fonts Document*.fnt can be used to read symbols printed with
fonts similar to Arial, Courier, or Times New Roman. These are
typical fonts for documents, magazines, books, newspapers, or
letters. For machine vision applications, they typically can be used
to read forms.
The fonts DotPrint*.fnt can be used to read characters printed with
dot printers. Typical industries are: Food (best before date), retail,
transportation (product id, number, manufacturer), automobile,
health care, machinery, metal (lot number), and pharmaceutical
(lot number, best before date).
The font HandWritten_0-9.fnt can be used to read handwritten
digits. Typical applications are: Reading of forms, reading of ZIP
codes (e.g., letters, parcels, forms), reading of dates (e.g., checks,
forms), reading of amounts (e.g., checks, forms).
The fonts Industrial *.fnt can be used to read characters printed in
fonts similar to Arial, OCR-B, or other sans serif fonts. Typical
applications are: Identification on chips and electronic
components, serial numbers, lot numbers, product identifications.
The font MICR.fnt can be used to read characters printed in the
font MICR, which is mainly used on checks.
The fonts OCRA*.fnt can be used to read characters printed in the
font OCR-A, which is a typical industrial font because it can be
read very robustly.
The fonts OCRB*.fnt can be used to read characters printed in the
font OCR-B, which is also a very common industrial font that can
be read robustly.
The fonts Pharma*.fnt can be used to read characters printed in
fonts similar to Arial, OCR-B, and other fonts. The font samples
were especially selected for the use in pharmaceutical
applications: Lot numbers on blisters, bottles and packages, as
well as best before dates on blisters, bottles and packages.
Please note that these classifiers have been trained with black-on-
white characters. Therefore, if the application must read white-on-
black characters the image must be inverted before calling
do_ocr_single_class_mlp or do_ocr_multi_class_mlp.
All relevant HALCON OCR example programs have been
rewritten to use one of the above classifiers as the default OCR
classifier.
❍ The operators create_shape_model and
create_scaled_shape_model now offer the possibility to
automatically determine the parameters Optimization, Contrast,
and MinContrast. Furthermore, now it is possible to automatically
determine the values of the hysteresis thresholds and of the
minimum size of the model components, which can be passed
within the parameter Contrast. Additionally, the operator
determine_shape_model_params as well as the respective
operators of the component-based matching have been extended
accordingly.
❍ The operators add_image, mean_image, scale_image, and
sub_image are now faster on Windows and Linux machines with
Intel Pentium compatible processors. This was done by providing
an MMX implementation.
Furthermore, the performance of mean_image without MMX was
also increased slightly.
The operator scale_image now also provides an integer-arithmetic
implementation. You can select whether this faster integer or
(slightly more accurate) floating point algorithm is used via the
system parameter 'int_zooming'.
❍ The standard calibration plate now has an asymmetric pattern
given by a triangular mark in the upper left corner of its black
frame. This allows detecting the plate's orientation uniquely and
affects the following operators:
■ The new operator gen_caltab creates a descripton of an
asymmetric calibration plate.
■ find_marks_and_pose now detects the orientation of an
asymmetric plate if defined in its description file.
■ disp_caltab displays the orientation of an asymmetric plate if
defined in its description file.
■ sim_caltab now also incudes a triangular orientation mark to
the calibration plate if defined in its description file.
The predefined standard description files in the directory calib now
define the orientation mark. The description files of the old,
symmetric calibration plates have been renamed to
caltab_200mm_old.descr, caltab_100mm_old.descr,
caltab_30mm_old.descr, caltab_10mm_old.descr,
caltab_6mm_old.descr, caltab_2500um_old.descr, and
caltab_650um_old.descr.
The Application Note on 3D Machine Vision has been adapted
accordingly. Especially, the description of a consistency check
between the estimated poses of a stereo image pair is no longer
needed and has been removed. This also affects the old example
program examples/application_guide/3d_machine_vision/
hdevelop/stereo_calibration_with_consistency_check.dev, which
has been adapted accordingly and renamed into examples/
application_guide/3d_machine_vision/hdevelop/stereo_calibration.
dev. A new appendix explains the new asymmetric pattern of the
calibration plate.
❍ The operators fit_circle_contour_xld and fit_ellipse_contour_xld
now incorporate a method for fitting circles or ellipses based on
geometric distances. Similarly, the operator
dist_ellipse_contour_xld now provides a geometric distance
measure.
In the directory examples/hdevelop/XLD/Features/, the example
program fit_circle_contour_xld.dev has been extended
correspondingly. Furthermore, the new example program
fit_ellipse_tooth_rim_xld.dev has been added, which shows the
usage of geometric distances with the operators
fit_ellipse_contour_xld and dist_ellipse_contour_xld. It uses the
new image tooth_rim.
❍ The operators gray_closing_shape, gray_dilation_shape,
gray_erosion_shape, and gray_opening_shape now support mask
sizes of type float. When a mask size of type float is passed, the
result is interpolated from the results of the operator with the next
lower and higher odd integer mask size.
The new example programs gray_closing_shape.dev,
gray_dilation_shape.dev, gray_erosion_shape.dev, and
gray_opening_shape.dev in examples/hdevelop/Morphology/Gray-
Values/ show how to use these operators.
Modified Operators:
❍ The default of the system parameter 'pregenerate_shape_models'
has been set to 'false'. This enables a much faster shape model
generation by default. Applications that want to use pregenerated
shape models should insert the following call at the beginning of
the program: set_system('pregenerate_shape_models','true').
❍ The operator watersheds now also supports uint2 and real
images.
❍ The HALCON data code reader was changed in a way that
speeds up the search of light symbols for models there the polarity
is set to 'any'. Now, searching light symbols of a specific size will
take nearly the same time as searching dark symbols of the same
size.
❍ Now, the operator find_data_code_2d no longer doubles the
backslash character '\' in the output string while reading QR
codes. This was included to distinguish the character '\' from an
ECI escape sequence (see QR Code standard ISO18004, section
15.2). However, this was confusing for the user, who rarely uses
ECI and expects to get exactly the same data that was encoded in
the symbol.
❍ The operators hom_mat3d_rotate and hom_mat3d_rotate_local
now support rotations about an arbitrary axis. To do this, the
parameter Axis also accepts a vector with three numbers (in
addition to the strings 'x', 'y', and 'z').
❍ Gray value profiles of measure objects are not cropped anymore
when exceeding image borders. Protruding profile parts are filled
with zeros. This affects the operators measure_projection and
fuzzy_measure_pos, fuzzy_measure_pairs,
fuzzy_measure_pairing when using a fuzzy position set.
❍ HALCON's OCR now improves the maximum scaling of gray
values for extremely thin characters.
❍ The operators do_ocr_single, do_ocr_multi, ocr_get_features,
testd_ocr_class_box, traind_ocr_class_box,
do_ocr_single_class_mlp, do_ocr_multi_class_mlp, and
get_features_ocr_class_mlp now support images of type uint2.
Furthermore, the operators write_ocr_trainf,
write_ocr_trainf_image, append_ocr_trainf, and concat_ocr_trainf
now support writing an OCR training file in binary file format with
different image sizes. The 'ocr_trainf_version' parameter of the
operators set_system and get_system determines which format is
used for writing a training file. The operators read_ocr_trainf,
read_ocr_trainf_select, read_ocr_trainf_names,
trainf_ocr_class_box, and trainf_ocr_class_mlp read all file
formats.
❍ The operator points_foerstner now also supports uint2 and real
images.
❍ The operator select_obj now also accepts empty tuples as Index.
The documentation has been adapted accordingly.
❍ The operators sobel_amp and sobel_dir now return the correct
edge amplitude for ideal step edges if no smoothing is performed,
i.e., if Size = 3. Since the output of the Sobel filter is not isotropic,
this behavior only occurs for horizontal and vertical edges. This
change also prevents saturated pixels in the edge image.
If smoothing is performed, i.e., if Size >= 5, the amplitudes are
now scaled by a factor of 2 compared to the case with no
smoothing because the smoothing reduces the edge amplitudes,
and consequently some information would be lost if no scaling
were performed.
Applications that use sobel_amp or sobel_dir must be
adapted to reflect this change. Depending on the mode selected
with FilterType and the smoothing selected with Size, this means
that the thresholds used to segment the edge image must be
divided by 2 or 4.
❍ HALCON no longer limits the tuple length to 1000000 elements. It
is now possible to create and process tuples of arbitrary length.
❍ The sequence in which write_cam_par writes the interior camera
parameters to the file is now identical to the sequence in which the
parameters appear in the tuple CamParam, i.e., the sequence is:
[Focus, Kappa, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]. The
operator read_cam_par reads both file types (existing files
stemming from previous HALCON releases and new files)
correctly, independently of the sequence in which the parameters
appear in these files.
❍ The operator write_image now stores the dpi resolution of an
image. To enable this, set_system has been extended with a new
parameter 'image_dpi' that defines the resolution to be stored in
the image file with write_image.

Bug Fixes:
❍ The operator best_match_rot_mg crashed if a matching template
was created, deleted, and then read_template was called with a
non-existing template file. This problem has been fixed.
❍ The operator closing_rectangle1 raised the error 3510 (exceeding
the maximum number of run lengths while automatic expansion) in
rare cases. This problem has been fixed.
❍ The operators create_component_model and
train_model_components returned the HALCON error 6005 (Tmp-
memory management: Null pointer while freeing) if a very large
template was given. Now, the error 6001 (Not enough memory
available) is returned.
❍ The operator disp_obj crashed when displaying int4 images that
contained INT4_MAX, INT4_MIN, and 0 as gray values. Besides,
in rare cases it ignored the LUT set with set_lut under Windows.
These problems have been fixed
❍ In some cases draw_xld_mod returned erroneous contours if the
Shift button was pressed. This problem has been fixed.
❍ The operator edges_sub_pix now sets the correct edge amplitude
for Filter = 'sobel' for ideal step edges. Since the output of the
Sobel filter is not isotropic, this behavior only occurs for horizontal
and vertical edges. Since the edge amplitude is used to perform
the hysteresis thresholding, this change implies that the hysteresis
thresholds have to be divided by 2 in applications that use
edges_sub_pix with Filter = 'sobel'.
❍ The operator find_component_model in rare cases returned the
error 3503 (run length row >= image height) or 3513 (number of
chords too big for num_max) or got stuck within an infinite loop.
This might have happened if 'least_squares', 'least_squares_high',
or 'least_squares_very_high' was selected for the parameter
MinScoreComp. This problem has been fixed.
❍ The operator find_shape_model in rare cases returned different
results if called multiple times and if the parameter SubPix was set
to 'least_squares_high' or 'least_squares_very_high'. This problem
has been fixed.
❍ The operator find_data_code_2d sometimes returned the
HALCON error 9201 (Singular value decomposition did not
converge). Furthermore, on very small ROIs, find_data_code_2d
returned the error 8109 ("convol: no filter object has got empty
region"). These problems have been fixed.
❍ The operator find_data_code_2d, when called in training mode,
adapted in some cases the model even if the symbol could not be
read. This happened especially in cases where the symbol could
be read in enhanced mode but not be trained. This problem has
been fixed: If the symbol can be read in enhanced mode, the
model will be trained accordingly. If the model cannot be trained, it
will not be adapted.
❍ The operator fuzzy_measure_pairs sometimes returned different
edge pairs to measure_pairs if no fuzzy function hade been set.
This problem has been fixed.
❍ The operator gen_image1 did not work correctly for int2 and uint2
images. It did not set the number of significant bits for the image
correctly. This caused the images to be displayed incorrectly. This
problem has been fixed.
❍ The operator gen_parallels_xld grouped some polygons into
parallels even if their distance was larger than specified with the
parameter Dist. This problem has been fixed.
❍ The operator gen_projective_mosaic no longer crashes for uint2
and real images.
❍ The operator gen_region_polygon_filled returned an empty region
if only 1 point was passed as input. This problem has been fixed.
❍ The operator info_parallels_xld returned different results on
different architectures. This problem has been fixed.
❍ The operator optical_flow_match erroneously created a multi-
channel output image for multi-channel input images. This
problem has been fixed. optical_flow_match now always returns a
single-channel output image that contains only the displacement
vector field.
❍ The operators paint_region and overpaint_region did not return
correct results for int4 images if very large positive or negative
gray values were used as the fill value. This problem has been
fixed.
❍ Multi-threaded programs using Parallel HALCON might have
thrown a runlength error in rare cases. This problem has been
fixed.
❍ The operator partition_dynamic used the input control parameter
Percent wrongly and sometimes partitioned regions at wrong
positions. This problem has been fixed.
❍ The resulting region of the example program Segmentation/
Topography/plateaus_center.dev differed heavily between ia64-
linux2.4 and the remaining architectures. This problem has been
fixed.
❍ The operator projective_trans_image sometimes returned
incorrect results for uint2 images. This problem has been fixed.
❍ The operator receive_image caused a crash if an image with
identical image matrices was transmitted. This was the case, e.g.,
if an image object tuple was transmitted that contained the same
image matrix more than once or a multi-channel image was
transmitted where different channels referred to the same image
matrix. This problem has been fixed.
❍ The operator shape_trans_xld sometimes returned wrong results
on 64 bit systems if the control parameter Type was set to
'convex'. This problem has been fixed.
❍ The operator sobel_dir performed incorrect border treatment. This
problem has been fixed.
❍ The operator train_model_components crashed in very rare
cases. This problem has been fixed.
❍ The operator traind_ocv_proj now returns an error if Mode is set to
an unsupported value.
❍ The operators threshold, dyn_threshold, and
compare_variation_model might have caused erroneous behavior
when running on multi-processor platforms in automatic
parallelization mode combined with setting 'store_empty_region' to
'false' by set_system before. This problem has been fixed.

Manual:
❍ The new "Application Note on 1D Metrology" shows you how to
use HALCON's measure and fuzzy measure tool to detect edges
and to measure their position and distance along lines and arcs. It
can be found via the Windows Start Menu or in the subdirectory
doc/pdf/application_guide.
It uses the following new examples in the subdirectory examples/
application_guide/1d_metrology/hdevelop: fuzzy_measure_switch.
dev, measure_caliper.dev, measure_ic_leads.dev, measure_ring.
dev, and measure_switch.dev.
❍ The "Quick Guide to HALCON" is available in a new edition. Its
main new feature is a section explaining how to perform color
processing with HALCON. Besides, it has been adapted to the
changes in HALCON 7.1. On Windows systems, you can now
click on the example programs to open them in HDevelop.
The section on color processing uses the new example programs
color_fuses.dev, color_pieces.dev, color_pieces_euclid.dev, and
color_simple.dev in the directory examples/quick_guide/hdevelop,
which in turn use the new images in the new subdirectory images/
color.
❍ The "Installation Guide" is available in a new edition. It has been
adapted to the changes in HALCON 7.1.
❍ The "Programmer's Guide" is available in a new edition. It has
been adapted to the changes in HALCON 7.1.
❍ The "Application Note on 3D Machine Vision" is available in a new
edition. It has been extended by a chapter that shows how to use
HALCON's hand-eye calibration for robot vision applications,
based on the new example programs
handeye_create_robot_poses.dev,
handeye_stationarycam_calibration.dev,
handeye_movingcam_calibration.dev, and
handeye_stationarycam_grasp_nut.dev in examples/
application_guide3d_machine_vision/hdevelop. The examples use
the new example images in the directory
images/3d_machine_vision/handeye.
Furthermore, the Application Note has been updated and
extended following the changes in HALCON 7.1. Thus, it now
describes the calibration of line-scan cameras, the new
asymmetric calibration plate, self-calibration and spherical
mosaicking, and uncalibrated stereo.
❍ The "Application Note on Shape-Based Matching is available in a
new edition. It has been adapted to the changes in HALCON 7.1,
especially the automatic determination of parameters.
❍ The example of cluster_model_components in the reference
manual contained an error. The first input object parameter of
cluster_model_components was ModelComponents instead of
TrainingImages. This problem has been fixed.

HALCON/C

Programming:
❍ In HALCON/C, the input parameters of operators are now
declared const.

HALCON/C++

Programming:
❍ All HALCON/C++ functions and classes now use the namespace
"Halcon" to prevent potential name conflicts with other C++
libraries. This means that HALCON/C++ programs are no longer
source code compatible to previous versions. However, old
programs can be converted by including the statement "using
namespace Halcon;" after "HalconCpp.h" has been included.
Furthermore, if the global HALCON operators are used with the
prefix "::" (e.g., ::read_image(&Image,"file");), the prefix "::" will
have to be removed or replaced with "Halcon::". The first solution
is preferable since it creates backwards-compatible source code
(apart from the "using namespace Halcon;" line mentioned above).
Note that in order to keep the reference manual readable, the
namespace is not mentioned in the operator descriptions in the
reference manual.
All example programs that use HALCON/C++ have been
converted to use the namespace functionality. Furthermore,
HDevelop exports HALCON/C++ code with the namespace.
❍ The HALCON/C++ class HTuple has the following new members:
■ Cumul calculates the cumulative sums of a tuple.
■ Remove removes a set of elements from a tuple.
■ Median calculates the median of a tuple.
■ SelectRank returns the element at rank n of a tuple.
Furthermore, the class HTuple has been extended by adding
various overloaded operators allowing expressions including long
integers, e.g., HTuple(2) + (long)2. Additionally, corresponding to
the already existing overloaded operators in class HTuple,
overloaded operators allowing expressions in which simple types
are combined with HTuple expressions, e.g., (long)2 + HTuple(3),
have been added.
Finally, the operators HTuple HTuple::operator () have been
augmented with a const class qualifier. The signature is now:
HTuple HTuple::operator () (int min, int max) const HTuple
HTuple::operator () (const HTuple &min, const HTuple &max)
const.
❍ HALCON/C++ no longer provides iostream operators by default
because this created problems for applications that want to use
the older iostream interface (i.e., that want to use <iostream.h>
instead of <iostream>). Consequently, the HALCON/C++ library
now does not provide operators for either interface.
To enable backwards compatibility, the iostream operators for the
class HTuple are now provided as inline functions in a new header
file "HIOStream.h", which can optionally be included. HIOStream.h
uses the newer interface <iostream> by default, but uses the older
interface <iostream.h> if USE_IOSTREAM_H is defined before
"HIOStream.h" is included.
This means that HALCON/C++ programs are not fully source
code compatible with older HALCON versions. However, old
programs can simply be converted to HALCON 7.1 by including
the following statement after having included "HalconCpp.h":
#include "HIOStream.h" Furthermore, it may be necessary to
include the statement using namespace std;

Examples:
❍ The HALCON Qt example program examples/qt/Matching has
been adapted to support Qt version 3.1 and later as well as Qt
version 4.0.
HALCON/COM

Programming:
❍ HALCON/COM now provides default values only for parameters
for which this is explicitly allowed in the IDL specification.
Previously, HALCON/COM provided default values for parameters
that were sometimes not permitted by the IDL specification. While
this caused no harm, and was in fact supported by Microsoft's
tools, there may be a slight chance that this may cause problems
with some programming environments. An example of such an
operator is HXLDContX::FitEllipseContourXld. Here, according to
the strict interpretation of the IDL specification, no input control
parameter may have a default value because there are several
output control parameters after the input control parameters.
Default values may only be used if all the parameters with default
values come at the end of the parameter list.
As a consequence, HALCON/COM is no longer source code
compatible with previous HALCON versions if the feature of
using default values that are not at the end of the parameter list
was used. This probably could only have been done in Visual
Basic 6.0, so this change should affect very few programs.
❍ All HALCON/COM classes that encapsulate a handle now have a
method to read out the handle. This method is provided via a read-
only property Handle that returns a variant with the encapsulated
handle.

Bug Fixes:
❍ The two functions BinocularDisparity and GenRadialDistortionMap
were contained erroneously in the class HPoseX and
consequently have been removed from this class.

Frame Grabber Interfaces

The latest information about new extensions and newly


supported boards can be found on MVTec's web server.

New Frame Grabber Interfaces:


❍ HALCON now also includes an interface to the microEnable III
frame grabber boards from Silicon Software GmbH. The new
example programs menable3.dev, menable3_continuous.dev,
menable3_crop.dev, menable3_parameters.dev, and
menable_simple.dev in the directory hdevelop\Image
\Framegrabber show how to use this interface.
❍ HALCON now also includes an interface to Microsoft's DirectShow
file reader application programming interface. The new example
program examples/hdevelop/Image/Framegrabber/directfile.dev
shows how to use this interface. The example pogram uses the
new example video file images/xing/xing.avi.
❍ HALCON now also includes an interface to the GingaDG frame
grabber boards from LinX.
❍ HALCON now also includes an interface to the TAG camera family
boards from Tattile. The new example programs tag.dev, tag_crop.
dev, tag_parameters.dev, and tag_simple.dev in the directory
hdevelop/Image/Framegrabber show how to use this interface.

Modified Frame Grabber Interfaces:


❍ The following HALCON frame grabber interfaces have been
revised: Barracuda, Bcam1394, BaumerFCAM, BitFlow,
DirectShow, FirePackage, FlashBus, FlashBusMX, Ginga++,
Inspecta, MatrixVision, p3i2, p3i4, and uEye.
Please refer to the corresponding documentation for more
information, especially whether a new revision of the
corresponding device driver is required.

Extension Package Interface

Manual:
❍ The "Extension Package Programmer's Manual" is available in a
new edition. It has been adapted to the currently supported
operating systems.

HMatchIt

Functionality:
❍ HMatchIt now is able to determine the contrast, minimum
component size, and optimization automatically, corresponding to
the extended functionality in determine_shape_model_params.
The online documentation has been extended accordingly.
❍ HMatchIt now allows to specify up to 100 visible models in the
"View Test Images" dialog and up to 100 models in the "Edit
Standard Run Parameters" dialog.

Supported Operating Systems

Windows:
HALCON 7.1 has been compiled for Windows NT/2000/XP on 32
bit systems (Intel Pentium or compatible processors) and for
Windows XP x64 on 64 bit systems (Intel EM64T or AMD64). The
setup process checks whether it is runing on a 64 bit system and
in this case lets you choose to install the 32 bit or 64 bit version of
HALCON.
Please note that if you want to switch to the other version, you
must first install it, e.g., by re-inserting the CD. Then, you must
modify the environment variable %PATH% as described in the
"Installation Guide".
Note that the native HALCON version for Windows XP x64 does
not include the auxiliary tool HMatchIt. Furthermore, due to the
lack of available 64 bit drivers HALCON does not support the use
of dongles and includes currently no interfaces to actual image
acquisition devices.

Linux:
HALCON 7.1 has been compiled for 32 bit systems (Linux 2.2/2.4,
gcc 3.3, glibc-2.2.x, optimized for Intel Pentium or compatible
processors) and for 64 bit systems (Linux 2.4, gcc 3.3, glibc-2.3.4,
Intel EM64T or AMD64). To use these versions, please set the
environment variable ARCHITECTURE to i586-linux2.2-gcc33 or
x64-linux2.4-gcc33, respectively, and update the environment
variables PATH and LD_LIBRARY_PATH accordingly.

Solaris:
HALCON 7.1 has been compiled for Solaris 7 or higher on
UltraSPARC workstations. To use these versions, please set the
environment variable ARCHITECTURE to sparc-sun-solaris7 and
update the environment variables PATH and LD_LIBRARY_PATH
accordingly.

Miscellaneous

Licensing:
❍ HALCON now checks all files license*.dat in HALCONROOT/
license as well as a file license.dat in the current directory of the
application for a valid license. The order in which the licenses are
checked is:
■ license.dat in the current directory of the application
■ HALCONROOT/license/license.dat
■ all the remaining files license*.dat in HALCONROOT/license
If none of the above license files contain a valid license, HALCON
returns an error that corresponds to the last license file in the
above list.
❍ HALCON now uses version 10.8 of the FLEXlm license manager
software.

Example Images:
❍ New example images have been added in the directory images/
radiometry; they are used in the example for
radiometric_self_calibration.
❍ New example images have been added in the directory images/
self_calib; they are used in the example for
stationary_camera_self_calibration.
❍ The images pills.png and mvtec_logo.png have been added in
images; they are used in the example for the new operator
watersheds_threshold.
❍ New example images have been added in the directory
images/3d_machine_vision/handeye; they are used in the
examples for robot vision in the "Application Note on 3D Machine
Vision".
❍ New example images have been added in the directory images/
datacode/pdf417; they are used in the examples for reading
PDF417 data codes.
❍ The new example images images/calib/calib_line_scan_[01-17]
and images/caliper/caliper_line_scan are used in the examples for
calibrating line scan cameras.
❍ The image tooth_rim.png has been added in images; it is used in
the new example for the operators fit_ellipse_contour_xld,
dist_ellipse_contour_xld, and dist_ellipse_contour_points_xld.
❍ New example images have been added in the directory images/
stereo/uncalib; they are used in the examples for uncalibrated
binocular stereo.
❍ The video file xing.avi has been added in images/xing/; it is used
in the example for the new frame grabber interface DirectFile.
❍ With the Quick Guide to HALCON, new example images have
been added: atoms.png, crystal.png, fuse.png, surface_scratch.
png, and numbers_scale.png in images, and the new images in
the subdirectory images/coins.
❍ The new images in the directory images/explore_71 are used for
illustration in the HDevelop program explore_halcon.dev.

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


Web Master Last modified: Fri September 02 13:45:01 CEST 2005

Potrebbero piacerti anche