 |
|
|
Release Notes for HALCON 7.1.1
|
 |
This document provides the release notes for MVTec HALCON 7.1.1, as released
in April 2006. HALCON 7.1.1 is primarily a maintenance release that
fixes all known bugs in HALCON 7.1; besides, it provides added
functionality and speedups.
Overview
This document contains the following information:
- Compatibility
- Detailed Description of Changes in
HALCON 7.1.1
- Major
New Features of HALCON 7.1
- Detailed
Description of Changes in HALCON 7.1
- Detailed
Description of Changes in HALCON 7.0.2
- Detailed
Description of Changes in HALCON 7.0.1
- Detailed
Description of Changes in HALCON 7.0
Compatibility
Licenses
HALCON 7.1 licenses are also valid for HALCON 7.1.1. In contrast,
all HALCON 7.0 licenses must be replaced or upgraded. Please
contact your local distributor.
HALCON Library
HALCON 7.1.1 is fully compatible with HALCON 7.1. Compared to
HALCON 7.0.x, many extensions have been introduced. Thus, the
HALCON 7.1.1 libraries are not compatible with HALCON 7.0 or
earlier versions.
HDevEngine
HALCON Applications
Applications (i.e., executables) developed with HALCON
7.1 can be used with HALCON 7.1.1, i.e., HALCON 7.1.1
is binary compatible with HALCON 7.1.
C or C++ programs developed with HALCON 7.0.x must be
re-compiled. The incompatibility with HALCON 7.0 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.
Frame Grabber Interfaces
If you developed your own frame grabber interfaces with
HALCON 7.1, you can use them with HALCON 7.1.1 without
further action. Frame grabber interfaces developed with
HALCON 7.0.x and 6.1.x are binary compatible with HALCON
7.1.1, interfaces developed with older versions must be
re-generated.
Extension Packages
Extension packages developed with HALCON 7.1 can
be used with HALCON 7.1.1 without further action. Extension
packages developed with HALCON 7.0.x must be re-generated.
ActivVisionTools
Only ActivVisionTools 3.1 can be used directly with
HALCON 7.1.1 because it is based on (a modified version
of) HALCON 7.1. All older ActivVisionTools versions are
based on HALCON 7.0.1 or below; by installing HALCON
7.1.1, you would thus disable such an ActivVisionTools
installation. Therefore, the setup program of HALCON
7.1.1 checks whether there is an ActivVisionTools
installation on your computer.
-
If it detects ActivVisionTools 3.1, no further
action is required, as this version is compatible to
HALCON 7.1.1.
-
If it detects ActivVisionTools 3.0, please
contact your distributor for further information on how
to run this version together with HALCON 7.1.1.
-
In contrast, ActivVisionTools 1.0
to 2.2 cannot be used with HALCON 7.1.1. If the setup
program detects such an ActivVisionTools version, it warns
you that by continuing to install HALCON 7.1.1 you will
disable your ActivVisionTools installation.
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".
Detailed Description of Changes in
HALCON 7.1.1
Detailed release notes can be obtained for the following topics:
- HDevelop
- HALCON Library
- HALCON/C++
- HALCON/COM
- HALCON/C
- HDevEngine
- Frame Grabber
Interfaces
- HMatchIt
- Miscellaneous
Enhancements
-
There is now a mechanism to control the readability
of external HDevelop procedures. It is now possible
for the user to enter a password, which is used to
control the readability of an external procedure
after it is loaded in HDevelop. It is not
possible to view the content of a locked external
procedure or to modify it in any way until it is
unlocked by entering the correct password.
Functionality
-
The HDevelop function remove now returns the
original input tuple if the second parameter is the
empty tuple.
Bug Fixes
-
The HDevelop function deviation now returns the correct
value if the deviation is nearly 0.
-
HDevelop sometimes crashed after aborting draw_* operators
via the menu item Execute->Stop. This problem has been
fixed.
-
The following problems with procedures have been
fixed:
- HDevelop displayed an unnecessary error
message when loading an external procedure and an
equally named procedure was already loaded.
- It sometimes loaded programs containing
external procedure calls incorrectly.
- It crashed when trying to write a modified
external procedure to file and the file properties
did not allow modification, e.g., the file
properties were set to read only. If a program
was loaded in HDevelop at the time of the crash,
the corresponding HDevelop program file would be
corrupted.
- When starting HDevelop from the command line
in run mode and an external procedure path was
set, HDevelop stopped execution immediately after
the last external procedure had been loaded.
- Loading an HDevelop program could leave the
currently displayed procedure in an inconsistent
state. This happened if the displayed procedure
was external and contained variables.
-
HDevelop sometimes remained in an inconsistent state after
cutting, deleting, or deactivating loop structures. This
problem has been fixed.
Manual:
Examples
-
The new example programs in
examples/application_guide/2d_data_codes/hdevelop
show how to use HALCON's data code reader. They
belong to the new Application
Note on 2D Data Codes.
-
The following new example programs in
examples/hdevelop/Image/Framegrabber show how to use the new frame grabber
interfaces:
- 1394iidc.dev, 394iidc_2cameras.dev,
1394iidc_camera_types.dev, 1394iidc_crop.dev,
1394iidc_format7.dev, 1394iidc_parameters.dev,
1394iidc_simple.dev, 1394iidc_software_trigger.dev
- inspecta5.dev, inspecta5_parameters.dev,
inspecta5_simple.dev, inspecta5_trigger.dev
- matrixvisionacquire.dev,
matrixvisionacquire_properties.dev,
matrixvisionacquire_crop.dev,
matrixvisionacquire_parameters.dev,
matrixvisionacquire_simple.dev,
matrixvisionacquire_multiple_instances.dev
- millite.dev, millite_2ports.dev,
millite_simple.dev, millite_1394_parameters.dev,
millite_parameters.dev, millite_trigger.dev
- saperalt.dev, saperalt_2boards.dev,
saperalt_2cameras.dev, saperalt_crop.dev, saperalt_lut.dev,
saperalt_parameters.dev, saperalt_simple.dev
- sonyxci.dev, sonyxci_parameters.dev,
sonyxci_simple.dev
- excite.dev, excite_parameters.dev,
excite_simple.dev
Speedup and Enhancements
-
The following operators using the Gauss filter now are
significantly faster: derivate_gauss, critical_points_sub_pix
(when setting Filter to 'gauss'), edges_sub_pix (when setting
Filter to 'canny'), edges_color_sub_pix (when setting Filter
to 'canny'), lines_gauss and points_foerstner (when setting
Smoothing to 'gauss'), points_harris, points_sojka,
corner_response, saddle_points_sub_pix, and
connect_grid_points. The obtained speedup strongly depends
on the operator and on the chosen parameter values and varies
from about 10 to 200 percent.
-
The operators dump_window and dump_window_image are now
significantly faster under Windows.
-
The operator points_foerstner is now faster when setting
Smoothing to 'gauss'. The obtained speedup depends on the
chosen parameters and is about 200% when using the default
parameters.
-
The operator get_system now runs significantly faster.
-
The operators proj_match_points_ransac,
match_rel_pose_ransac,
match_fundamental_matrix_ransac and
match_essential_matrix_ransac are now faster. The
speedup varies and mainly depends on the used
mask size.
Modified Operators
Bug Fixes
-
Some operators (e.g., add_image) crashed when the input
object contained 20 or more images. Roughly spoken, this
problem affected operators with at least two iconic input
parameters that accept image tuple and/or multi-channel
images, and an iconic output parameter. This problem has
been fixed.
-
The operators affine_trans_image and affine_trans_image_size
in rare cases rounded the gray values incorrectly. This
problem has been fixed.
-
The operator append_ocr_trainf crashed if the
existing trainfile was not writable. Now, the error
message "Error while opening the file" will be
returned in these cases.
-
The operator create_component_model in rare cases
got stuck within an infinite loop. This happened if
the reference points of two components had a
distance in the model image of exactly VariationRow
and VariationColumn in row and column direction,
respectively. This problem has been fixed.
-
The operator create_trained_component_model sometimes
computed a wrong root ranking when dealing with symmetric
components. This happened if during the training with
train_model_components the angle search range was restricted
by setting SearchAngleTol to a value that was below the
rotational symmetry of the components, for example, if
SearchAngleTol was set to a value below 90 degrees for a
square component. In this case the rotational symmetry of the
components were not taken into account when computing the
root ranking during the model creation by using
create_trained_component_model. Thus, rotationally symmetric
components, which should not be used as the root components,
might have been ranked too optimistic. This problem has been
fixed.
-
The operator camera_calibration crashed in rare cases. Now,
the error message "Camera calibration did not converge" will
be returned in these cases.
-
The operator clear_all_variation_models crashed after
check_par_hw_potential had been called. This problem has been
fixed.
-
The operator depth_from_focus returned the error
1500 ("Number of input objects too big") in large
images. This problem has been fixed.
-
The operator diff_of_gauss crashed if the parameter SigFactor
was set to 1.0. This problem has been fixed.
-
The operator draw_xld did not finish when running Parallel
HALCON. This problem has been fixed.
-
The operator dump_window_image no longer causes a memory
leak.
-
The operator exhaustive_match_mg sometimes returned error
6002 ("Memory partition on heap has been overwritten") if the
template was bigger than the image matrix. This problem has
been fixed.
-
The operator find_data_code_2d showed the following
problems: In some rare cases on an ECC200 data code
model, the operator led to the error message "Memory
partition on heap has been overwritten". When using
PDF417 symbols and called in training mode, the
operator in some cases adapted the model even if the
symbol could not be read. In some other cases the
symbol could be read before starting the training
but could not be trained. In some rare cases the
find_data_code_2d had a problem with some square
ECC200 symbols: The operator could decode the symbol
if the model was set to enhanced_recognition, but if
the model was adjusted to the correct symbol size,
it was not possible to decode the symbol. These
problems have been fixed.
-
The operator find_marks_and_pose sometimes returned
an inaccurate start pose. This problem has been
fixed.
-
The operator find_shape_model and all variants
thereof in rare cases returned wrong results for
reduced domains. Here, wrong means that if the
reduced domain contained the match that would be
found if find_shape_model were applied to the entire
image, find_shape_model returned a different match
on the reduced domain. This problem has been fixed.
Note that in rare cases existing applications using
find_shape_model or variants of it now might
miss the correct match when dealing with a reduced
domain. These applications should be adapted in the
following way: It must be ensured that the domain on
the highest pyramid level is at least of size
3x3. Thus, the input domain on the lowest pyramid
level must be chosen to be at least of size
3*pow(2,n-1) in both dimensions, where n denotes the
number of pyramid levels.
-
The operator fit_ellipse_contour_xld sometimes
returned wrong results for the parameters StartPhi
and EndPhi if the parameter Algorithm was set to
'geometric', 'geohuber' or 'geotukey'. This problem
has been fixed. Furthermore, the operator did not
work properly for contours which are straight
lines. Called with the parameter Algorithm set to
'fitzgibbon', 'fhuber' or 'ftukey' threw an
error. Called with Algorithm set to 'geometric',
'geohuber', or 'geotukey' hung the program
execution. Now, fit_ellipse_contour_xld detects the
degeneracy and returns an ellipse with Radius1 equal
to half the length of the line and Radius2 equal to
zero.
-
The operators fit_ellipse_contour_xld and
fit_line_contour_xld crashed if ClippingEndPoints
was larger than the number of contour points. Now,
the operators fit_circle_contour_xld,
fit_ellipse_contour_xld, and fit_line_contour_xld
check if sufficient contour points are available for
fitting the respective model, and if not they all
throw the same error indicating that problem.
-
In fit_surface_first_order and
fit_surface_second_order the robust regression did
not work correctly. This problem has been fixed.
-
The operator gen_arbitrary_image_map handled integer point
coordinates incorrectly. This problem has been fixed.
-
The operator gen_checker_region sometimes returned
the error 3503 ("Runlength row >= image height") or
the error 3505 ("Runlength column >= image
width"). The errors occurred if clip_region was
set to 'true' using set_system and one of the
parameters WidthRegion or HeightRegion exceeded the
global maximum image width or height,
respectively. This problem has been fixed.
-
The operator gen_circle in rare cases returned erroneous
regions. This problem has been fixed.
-
The operator get_contour_angle_xld returned
incorrect results for AngleMode = 'abs'. This
problem has been fixed.
-
The operator gen_region_contour_xld did not observe
the value of 'store_empty_region' that has been set
with set_system. It always acted as if
'store_empty_region' were set to true. This problem
has been fixed.
-
The operator gen_image_interleaved returned the
error 3505 ("Runlength column >= image width") if no
other HALCON image of at least the same size was
already in use. This problem has been fixed.
-
The operator gen_region_contour_xld returned the error 6005
("Tmp-memory management: Null pointer while freeing") if the
contour contained coordinates that are outside the valid
range for coordinates. Now, one out of the errors 3040, 3041,
3042, and 3043 is returned.
-
In the operator gen_ellipse_contour_xld, values of the
parameter EndPhi greater than 2*PI were clipped to 2*PI. Now,
all values are valid. The documentation has been adapted
accordingly.
-
Some structuring elements of the *golay* operators were
erroneous. This problem has been fixed.
-
The operators gray_dilation_shape,
gray_erosion_shape, gray_opening_shape and
gray_closing_shape returned wrong results at the
left image border if MMX was enabled and a subpixel
mask size was used. This problem has been fixed.
-
For some float images the operator gray_histo returned a
wrong histogram. This behavior could also be observed with
the gray histogram dialog in HDevelop. This problem has been
fixed.
-
For the mode 'rectangle' gray_projections returned one value
less in the output parameter VertProjection than it
should. This problem has been fixed.
-
The operator image_to_world_plane crashed if the output
image contained pixels that cannot be mapped because their
correction caused by the radial distortion is undefined.
This problem has been fixed.
-
Numerical values as input parameters caused info_framegrabber
to crash. This problem has been fixed.
-
The operators inspect_shape_model and
get_shape_model_contours now return consistent
results. Sometimes, get_shape_model_contours returned
additional contours that were not included in the
model. Because the result of get_shape_model_contours is only
used for visualization purposes, this did not affect the
matching.
-
The operator mean_image sometimes returned the error
6002 ("Memory partition on heap has been overwritten")
if the MMX acceleration was used. This problem has
been fixed.
-
The operator open_file did not free file handles after an
error occurred while opening a file. This problem has been
fixed.
-
The operator open_window for window type 'pixmap' now works
correctly for more than one window.
-
The operator phot_stereo sometimes returned different results
when called multiple times. This was the case if the width or
the height of the input images was an odd number. This
problem has been fixed.
-
The operator points_foerstner sometimes crashed or returned
different results when called multiple times when passing an
image with a reduced domain and setting Smoothing to
'gauss'. This problem has been fixed.
-
The operators points_harris and points_foerstner sometimes
returned the error 3513 ("Internal error: number of chords
too big for num_max"). This problem has been fixed.
-
The operator proj_match_points_ransac in rare cases returned
the error 3605 ("Projective transformation is singular").
This problem has been fixed.
-
The operator pruning sometimes returned the error 3510
("Exceeding the maximum number of runlengths while
automatical expansion"). This problem has been fixed.
-
Under Solaris, read_sequence produced
output images for pixel type 'long' and 'signed short' with
the wrong byte order. This problem has been fixed.
-
The operator read_image could not read very rare kinds of
32-bit BMP files. This problem has been fixed.
-
The operators read_ocr_trainf, read_ocr_trainf_names,
read_ocr_trainf_select, and concat_ocr_trainf can
now read an arbitrary number of train files and an
arbitrary number of classes coded within these train
files.
-
The operator regiongrowing_n somtimes returned results that
didn't cover the whole input region. This problem has been
fixed.
-
The operator scale_image did not work correctly for
int2 images for certain scale factors. This
happened only if MMX processing was enabled with
set_system('mmx_enable','true') (the default). This
problem has been fixed.
-
The socket communication operators send_region,
receive_region and send_image, receive_image returned a
memory error in some cases. This problem has been fixed.
-
The operators set_rgb and draw_lut now work correctly on a
256 color display under Windows.
-
The operator sobel_amp with FilterType = 'sum_abs' sometimes
produced wrong results. The edge amplitude was sometimes
much smaller than the maximum edge amplitude. This problem
has been fixed.
-
The operator test_xld_point returned meaningless
values if empty tuples were passed in Row and
Column. Instead, test_xld_point now returns an empty
tuple.
-
The operator var_threshold sometimes returned the
error 3513 ("Number of chords too big for
num_max"). This problem has been fixed.
Manual
Miscellaneous
-
The operator tuple_deg has been moved from the chapter
Tuple->Conversion to the chapter Tuple->Arithmetic.
Bug Fixes
-
Some operations of iconic object classes of the standard
HALCON/C++ interface (halconcpp.dll) under Windows operating
systems were not thread-safe. This problem has been fixed.
-
The C++ function HTuple::Remove now returns the
original input tuple if the second parameter is the
empty tuple.
Bug Fixes
-
The COM interface of Parallel HALCON was not thread-safe when
using variant types. Furthermore, the following operators did
not parallelize correctly on domain level: threshold,
var_threshold, dyn_threshold, binocular_distance,
binocular_disparity, add_image, sub_image, mult_image,
div_image, min_image, max_image, rgb3_to_gray,
trans_from_rgb, and trans_to_rgb. These problems have been
fixed.
Bug Fixes
-
The tuple operations create_tuple, copy_tuple, resize_tuple,
destroy_tuple, set_i, set_d, and set_s were not thread-safe,
i.e., calling them in parallel from different threads could
crash the application. This problem has been fixed.
-
The tuple operation resize_tuple caused a memory leak on
condition that the tuple was made smaller and the discarded
tuple items contained strings. This problem has been fixed.
Speedup and Enhancements
-
It is now possible to use HDevEngine in applications
that can use COM, e.g., Visual Basic [.NET], C#,
etc., via the new hdevenginex.dll. This DLL provides
access to all functions in the HDevEngine via the
native data types that are used in the HALCON/COM
interface (HUntypedObjectX and Variants).
The COM version of HDevEngine is also provided as
a version that uses Parallel HALCON
(parhdevenginex.dll). This version in thread-safe,
but not reentrant. With it, you can use the
automatic operator parallelization of Parallel
HALCON in an application, but cannot execute multiple
procedures in parallel.
Functionality
-
The internal HDevelop operator dev_clear_obj is now
implemented inside HDevEngine, analogously to the
implementation in HDevelop. Correspondingly, the
method DevClearObj has been removed from class
HDevOperatorImpl, thus it is no longer possible to
overwrite the implementation of dev_clear_obj with
an user-defined method. Additionally, the methods
DevUpdateVar, DevUpdatePC, DevUpdateWindow,
DevUnmapProg, DevMapProg, DevUnmapVar, DevMapVar,
DevUnmapPar, DevMapPar, DevCloseInspectCtrl,
DevInspectCtrl, and DevClearObj have been removed
from the class HDevOperatorImpl and therefore also
cannot be implemented anymore. This means that the
use of the HDevEngine is not source-code compatible
to HALCON 7.1.
-
If an error occurs during the loading of a program
or external procedure, an exception is now thrown in
any case and all external procedures recursively
loaded during the loading process are removed from
the engine. Additionally, all newly loaded local
procedures are also removed from the engine when
failing to load a program.
-
It is now possible to specify the memory
deallocation behavior inside HDevEngine regarding
objects passed to the method
HDevEngine::SetHDevOperatorImpl via an additional
parameter. In case the parameter is set to true, the
memory is deallocated inside HDevEngine
(corresponding to the current behavior), otherwise
the user is responsible for managing the
corresponding memory.
-
There is now a version of HDevEngine that uses
Parallel HALCON, i.e. the parallel versions of
HALCON/C and the HALCON library. This version is
threadsafe, but not reentrant, i.e., it is not
possible to execute different procedures (or the
same procedure or program) in different threads
simultaneously. The main purpose of this version of
the HDevEngine is to allow to use the automatic
operator parallelization in Parallel HALCON.
Bug Fixes
-
HDevEngine sometimes crashed when executing programs
or procedure calls containing dev_open_window
operator calls. This could happen if no user
implementation of dev_open_window existed or the
user implementation did not return a formally
correct window handle in the corresponding
overwritten method DevOpenWindow. This problem has
been fixed.
-
Instances of class HDevEngineException sometimes did
not contain the correct information. This problem
has been fixed. Furthermore, the interface of the
class has been modified so that member variables of
type const char* are now of type char* and member
functions are qualified as const. This means that the
use of the HDevEngine is not source-code compatible
to HALCON 7.1.
-
HDevEngine sometimes remained in an inconsistent
state after an exception occurred during program or
procedure execution. This problem has been fixed.
-
Calling the method HDevEngine::ExecuteProcedure
repeatedly with the same input parameter (of type
HDevProcedureCall) caused a memory leak in case the
called procedure set output parameters. This
problem has been fixed.
-
When the first instance of class HDevEngine was
created, the HALCON data base was reset, i.e., all
previously created HALCON objects were deleted.
This problem has been fixed.
Manual:
-
The new edition of the "Programmer's Guide" now
explains how to use HDevEngine.
Examples:
-
New examples have been added in the directory
examples\hdevengine, which are described in the
"Programmer's Guide". In this context, the directory
structure has been modified and now looks as follows:
- Examples for using HDevEngine in C++
applications reside in the subdirectory cpp, those
for Visual Basic in the subdirectory vb, and
examples for Visual Basic .NET in the subdirectory
vb.net.
- For each language, three examples are provided
(in brackets the name for Visual Basic and Visual
Basic .NET):
- exec_program (ExecProgram) shows how to
execute an HDevelop program.
- exec_extproc (ExecExtProc) shows how to execute an
external HDevelop procedure; this example replaces
the former example fin.
- error_handling (ErrorHandling) shows how to
handle exceptions occurring in HDevEngine.
- The Visual Studio workspace for the C++ examples
has been adapted to the new examples and been
renamed to i586-nt4.dsw.
- The new subdirectory
examples/hdevengine/hdevelop contains the HDevelop
program that is executed by the corresponding
examples. The subdirectory
examples/hdevengine/procedures now contains
additional procedures that are used by the examples
for error handling.
- The image sequence fin.seq has been moved from
the subdirectory examples/hdevengine/images to the
main image directory images. As a consequence the
subdirectory examples/hdevengine/images has been
removed.
-
The latest information about new extensions and newly supported
boards can be found on the image
acquisition web page.
New Frame Grabber Interfaces:
- HALCON now also includes the
generic 1394IIDC
interface to support all IEEE 1394 (FireWire) cameras that are
compliant with the IIDC 1394 standard under Windows.
The new example programs
1394iidc.dev, 1394iidc_2cameras.dev, 1394iidc_camera_types.dev,
1394iidc_crop.dev, 1394iidc_format7.dev,
1394iidc_parameters.dev, 1394iidc_simple.dev, and
1394iidc_software_trigger.dev in the directory
examples/hdevelop/Image/Framegrabber show how to use this
interface.
-
HALCON now also includes a remote interface for Windows and
Linux to the eXcite
smart camera from Basler. The new example programs
excite.dev, excite_parameters.dev, and excite_simple.dev
show how to use this interface.
-
HALCON now also includes an interface to the INSPECTA-5
frame grabber boards from Mikrotron. The new example programs
inspecta5.dev, inspecta5_parameters.dev,
inspecta5_simple.dev, and inspecta5_trigger.dev
show how to use this interface.
-
HALCON now also includes the MatrixVisionAcquire
interface to support the mvBlueFOX USB 2.0 cameras
from MATRIX VISION. The new example programs
matrixvisionacquire.dev,
matrixvisionacquire_properties.dev,
matrixvisionacquire_crop.dev,
matrixvisionacquire_parameters.dev,
matrixvisionacquire_simple.dev, and
matrixvisionacquire_multiple_instances.dev in the
directory examples\hdevelop\Image\Framegrabber show
how to use this interface.
-
HALCON now also includes the MilLite
interface to support the Meteor-II, Helios, Solios,
and Odyssey frame grabber boards from Matrox based on
MIL-Lite 8.0. The new example programs millite.dev,
millite_2ports.dev, millite_simple.dev,
millite_1394_parameters.dev, millite_parameters.dev,
and millite_trigger.dev in the directory
examples\hdevelop\Image\Framegrabber show how to use
this interface.
-
HALCON now also includes the SaperaLT
interface to support the Bandit-II, PC2-CamLink, PC2-Vision,
Viper, X64-CL, and X64-AN frame grabber boards from DALSA
Coreco. The new example programs saperalt.dev,
saperalt_2boards.dev, saperalt_2cameras.dev, saperalt_crop.dev,
saperalt_lut.dev, saperalt_parameters.dev, and
saperalt_simple.dev in the directory
examples/hdevelop/Image/Framegrabber show how to use this
interface.
-
HALCON now also includes the SonyXCI
interface to support the XCI-SX1 smart cameras from
Sony. The new example programs sonyxci.dev,
sonyxci_parameters.dev, and sonyxci_simple.dev in the
directory examples\hdevelop\Image\Framegrabber show
how to use this interface.
Modified Frame Grabber Interfaces
Functionality
-
Test images were not displayed correctly if their
size differed from that of the model image. This
problem has been fixed.
-
HMatchIt sometimes crashed after returning the error
8510 ("Number of shape model points too small"). This
happened if the chosen model ROI did not contain a
sufficient number of pixels that exceeded the
specified contrast values. This problem has been
fixed.
Example Images
-
New example images have been added in the
subdirectories of images/datacode; they are used in
the examples in the new
Application Note on 2D Data Codes.
-
The image sequence fin.seq that is used in the examples for HDevEngine
has been moved from the subdirectory
examples/hdevengine/images to the directory images.
Installation
-
To ensure the execution of HMatchIt, the HALCON setup program
now also installs the Windows Common Controls ActiveX Control
files MSCOMCTL.OCX and MSCOMCT2.OCX as well as the Microsoft
Standard Data Formatting Object DLL MSSTDFMT.DLL.
-
In addition to the error code the HALCON setup program now
displays the full error message in case of move data errors.
-
In some cases, the uninstallation process didn't restore the
system path variable %PATH% correctly and didn't delete the
HALCON environment variables %HALCONROOT% and %HALCONIMAGES%.
This happened in case the registry key
HKEY_LOCAL_MACHINE\Software\MVTec\HALCON\7.1 was not empty at
the end of the uninstallation process, especially when
Parallel HALCON was used and, thus, the parallelization
information was still stored under this registry key. This
problem has been fixed.
|