Release Notes for HALCON 11.0.1
This document provides the release notes for MVTec HALCON 11.0.1, as released
in November 2012. HALCON 11.0.1 is primarily a maintenance release
that fixes all known bugs in HALCON 11.0; besides, it provides added
functionality.
Compatibility
Licenses
HALCON 11.0 licenses are also valid for HALCON 11.0.1. In contrast,
all HALCON 10.0 licenses or licenses of earlier versions must be
replaced or upgraded. Please contact your local distributor.
HDevelop
-
OCR training files that have been created using the OCR Assistant of
HALCON 11.0 may contain incorrect data and should be recreated using
HALCON 11.0.1. In particular, the following issues occured:
All training files that have been created with HALCON 11.0 in one
of the above described ways should be replaced by new training
files, created with HALCON 11.0.1. All classifiers that have
been trained with such a training file should be re-trained with
the respective new training file. Note that this problem has
already been fixed in HALCON 11.0.0.1, i.e., if your training
files have been created with HALCON 11.0.0.1, nothing is to be
done about it.
HALCON Library
HALCON 11.0.1 is fully compatible with HALCON 11.0 except for the
changed behavior of some operators due to bug fixes. Compared to
HALCON 10.0, many extensions have been introduced. Thus, the HALCON
11.0 libraries are not compatible with HALCON 10.0 or earlier
versions.
In detail, please note the following incompatibilities with respect
to HALCON 11.0:
-
find_bar_code incorrectly returned the ASCII value '\n' (ASCII
10) for each appearance of FNC1 in Code 128 bar codes. This
did not conform to the standard and has therefore been fixed. Note
that due to this fix, the decoded strings returned for Code 128
have changed.
-
get_bar_code_result now provides the new result type 'decoded_data'
that returns the decoded bar code content as a tuple of bytes. In
particular, this allows to read binary content in Code 128 or Code
93 symbologies that include NULL characters.
As part of this change, the handling of NULL characters in binary
content has changed for bar codes of types Code 128 and Code 93.
Previously, the NULL character was silently discarded from the
data. Now, the result string will be terminated at the NULL
character. When expecting binary content including NULL
characters, use the new result parameter 'decoded_data' to get the
complete content as a tuple of bytes.
- Since the bar
code model has been extended with new parameters, bar code
models created in HALCON 11.0.1 can not be used with older
versions. This concerns both model files written to disk as well
as serialized bar code models. However, models created with older
versions can be used with HALCON 11.0.1.
-
To avoid an unlikely crash of the operators
- find_shape_model,
- find_shape_models,
- find_scaled_shape_model,
- find_scaled_shape_models,
- find_aniso_shape_model,
- find_aniso_shape_models,
- find_local_deformable_model,
- find_planar_calib_deformable_model,
- find_planar_uncalib_deformable_model,
- find_component_model, and
- find_shape_model_3d,
the corresponding model creation process, and
hence, the created models themselves changed slightly.
This affects the following operators:
- create_shape_model,
- create_shape_model_xld,
- create_scaled_shape_model,
- create_scaled_shape_model_xld,
- create_aniso_shape_model,
- create_aniso_shape_model_xld,
- create_local_deformable_model,
- create_local_deformable_model_xld,
- create_planar_uncalib_deformable_model,
- create_planar_uncalib_deformable_model_xld,
- create_planar_calib_deformable_model,
- create_planar_calib_deformable_model_xld,
- create_shape_model_3d,
- create_component_model, and
- create_trained_component_model.
Therefore, the respective matching results might also differ
slightly with respect to previous HALCON versions.
-
Due to some fixes of the operators for descriptor-based matching,
their behavior has slightly changed:
HALCON Applications
Applications (i.e., executables) developed with HALCON 11.0 can be used
with HALCON 11.0.1, i.e., HALCON 11.0.1 is binary compatible with
HALCON 11.0, except for applications that use the HALCON/C++
interface.
All programs (C, C++, .NET, or COM) that have been developed with
HALCON 10.0.x must be recompiled.
The incompatibility with HALCON 10.0.x or earlier versions mainly concerns
the binaries, with only few changes in the language interfaces. If you
encounter problems during recompiling your programs, please check the
detailed description of changes below and for HALCON 11.0, respectively.
In detail, please note the following incompatibility with respect to
HALCON 11.0:
-
The HALCON/C++ interface of HALCON 11.0.1 is not binary compatible
with HALCON 11.0 due to a fix that concerns the copying of classes that have been derived from
HToolArray, such as HObjectModel3DArray, etc.
Note that this fix breaks binary compatibility but holds source
code compatibility. I.e., the libraries halconcpp.dll and
halconcpp.so can not just be exchanged for existing applications.
Existing applications that use the object-oriented API and classes
that have been derived from HToolArray have to be recompiled and
relinked with the fixed HALCON/C++ interface.
Please note that applications using HALCON/.NET (and HDevEngine/.NET)
have local copies of the corresponding assemblies
(halcondotnet.dll etc.).
After installing HALCON 11.0.1, these applications would therefore use
the old version of the HALCON/.NET interface together with the new
version of the HALCON library. In order to benefit from the bug fixes
in the HALCON/.NET interface as well, you must either replace the
assemblies manually or recompile the projects. If you do not recompile
the application, you need to add an application
configuration file mapping the application's expected assembly
version to the new version. See the Programmer's
Guide for more information.
Image Acquisition Interfaces
If you have developed your own acquisition interfaces with HALCON
11.0, you can use them with HALCON 11.0.1 without further action.
Extension Packages
Extension packages developed with HALCON 11.0 can be used with
HALCON 11.0.1 without further action. Extension packages developed
with HALCON 10.0.x or earlier versions must be re-generated. Note
that the old makefiles
for HALCON/C++ must be adapted according to the sample
makefile under extension_packages/halconuser.
ActivVisionTools
-
If you have been using ActivVisionTools 3.2, please contact your
distributor for further information on how to run this version together
with HALCON 11.0.1.
-
ActivVisionTools 1.0 to 3.1 cannot be used with HALCON
11.0.1. If the setup program detects such an ActivVisionTools
version, it warns you that by continuing to install HALCON 11.0.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.
Major New Features of HALCON 11.0.1
HALCON Library
HDevelop
Supported Operating
Systems
-
HALCON now supports the operating system Windows 8.
-
HALCON now supports the operating system Mac OS X 10.8.
Examples
- The HALCON Codelet classes have
been extended with the new HALCON Codelet class
HDisplayControl, which is a ready-to-use .NET control that
displays an image with the correct aspect ratio and provides the
functionality for zooming and scrolling as well as for drawing a
region of interest.
Furthermore, the HALCON Codelet classes have been extended with
the new HALCON Codelet class
HImageAcquisition, which is a ready-to-use .NET component that
makes it easier to integrate the HALCON image acquisition
functionality in a Windows Forms .NET application.
- HALCON has been extended with
HDevelop example programs for image acquisition interfaces
that grab 3D data. These HDevelop example programs show how to generate 3D object models from the
grabbed 3D data.
Documentation
Detailed Description of Changes in
HALCON 11.0.1
Detailed release notes can be obtained for the following topics:
HDevelop
HDevelop Language
-
If the assign_at operator (a[idx] := value) is used to initialize one or
more elements of an empty tuple, the tuple now inherits the type
of the assigned value(s). Until now, the tuple was created as
mixed type tuple and all tuple elements before the passed indices
were initialized to 0. Now, these elements will be initialized to
the default value of the passed value type.
-
HDevelop now supports declarations that control the selection
and usage of external procedures from within an HDevelop
program. The new import statement
can be used to import additional external procedures from within an
HDevelop program. The imported procedures become only available
for the procedure that contains the import statement, other
procedures stay unaffected.
An import statement specifies the path of
a directory that contains the procedures and/or the procedure
libraries to be used or directly the file name of a procedure
library. In both cases, the path may either be absolute or
relative, and it may also contain environment variables, which
HDevelop resolves accordingly.
Contrary to system, user-defined, and session directories,
HDevelop looks only in the directory specified by an import statement for external procedures but
not recursively in its subdirectories.
Note that, in such declarations no expressions will be allowed
that are evaluated during runtime.
The new functionality is demonstrated in the new example program
- hdevelop/Control/import.hdev
Functionality
-
The Calibration Assistant now uses HALCON's calibration data
model operators for calibration and code generation.
-
When refreshing parameters in the Image Acquisition Assistant,
conflicts between externally modified values and local changes
were resolved by restoring the local values. This had
unintuitive side effects in some situations. Therefore, the
behavior has been changed to always honor the external device
state.
-
In the Measure Assistant, the parameter 'Reference Pair Width'
on the Fuzzy tabcard has been renamed to 'Normalization Scale', and
its range has been increased to accommodate larger values.
-
The OCR Assistant now displays the corrected text in the
Graphics window when using word processing. Changed text is
marked by placing it in parentheses. If word processing fails,
the uncorrected text is displayed in red.
-
Some minor usability improvements have been implemented for
the OCR Assistant:
- For convenience, the toolbar now offers a button to
delete all ROIs.
- The status message displayed after training an MLP
classifier has been changed, as it was sometimes
interpreted as an error message.
- HDevelop Demo now warns that training files cannot be
saved.
- Some parameter ranges and defaults have been
adapted.
-
The OCR Training File Browser offers the possibility to create
samples from a system font. For this, the OCR Training File
Browser provides the menu entry "Edit / Add Samples from a
System Font".
In the respective dialog, it is possible to select a system font
and the symbols that should be imported. By pressing the OK
button, a new training file that contains the samples for the
selected symbols of the selected font is created.
-
The OCR Training File Browser offers the possibility to create
variations for one sample, for samples belonging to a specific
symbol, or for all samples in a training file. For this, the OCR
Training File Browser provides the menu entry "Edit / Generate
Variations", which can also be accessed via the context menu. In the
respective dialog, it is possible to select the kind of
variations that should be generated: rotation, addition of
noise, slant, radial deformation, local
deformation.
-
It took very long to load and act on training files with many
samples in the OCR Training File Browser. Because of this, the
sorting was restricted to files with less than 1000 samples. If
more than or 1000 samples existed, sorting was not possible. This
has been changed. Now the loading and handling is much faster and
the restriction for the sorting was removed.
-
The Graphics window now provides keyboard shortcuts for
switching between the different modes Select, Move, Magnify,
and Zoom. The shortcuts are:
- s - Enter Select mode
- m - Enter Move mode
- z - Enter Magnify mode
- + - Enter Zoom In mode
- - - Enter Zoom Out mode
In addition, the following shortcuts can be used:
- c - Clear window
- r - Draw ROI
- 3 - Toggle 3D mode
- a - Activate window
In 3D mode the following shortcuts can be used:
- x - Display/Hide axes
- g - Display/Hide grid
In the Move mode, now the window contents can be moved
directly via the Cursor Left, Right, Up, or Down keys.
-
If the mouse cursor is moved over an expression, a tooltip
displays the value of the expression. This tooltip has been
extended to also show a short description of the function or
operation under the mouse cursor. This short description
contains the signature of the operation as well as the name and
the short description of the corresponding HALCON
operator.
-
For invalid program lines, the error tooltip is now displayed
everywhere in the program line. Until now, the error tooltip
was displayed only if the mouse cursor was over the operator
name. If the mouse cursor was over a variable name, the
contents of the variable was displayed also on invalid program
lines. This has been changed. In an invalid program line, it is
now possible to display the variable contents in a tooltip by
pressing the control key while the mouse cursor rests over a
variable name.
-
If under Windows a full file path of an existing file or
directory is pasted into the full text editor, the backslashes
are replaced by slashes because in HDevelop slashes are the
preferred path separator and for receiving a real backslash it
would be necessary to quote it by another backslash. Now, if
the string is pasted into a program line with an operator that
can handle file names, this work also for relative paths and
files that are not accessible.
-
If within the Procedure Interface dialog the interface of a
procedure is changed and than, without pressing Apply, another
procedure is selected, a message box warns the user that the
modifications may be lost. One option was to save the changes
via a Save button, but this was misleading. One could think
that the procedure would be saved into the file system but what
happens is that the modifications made in the dialog are saved or
applied to the procedure. Hence, the button was renamed into
Apply.
-
In the runtime statistics of HDevelop's profiler, the copy
operation copied the numerical value and unit of the measured
runtimes as one single string (or one single table entry in the
HTML representation, respectively). This was particularly
inconvenient when the copied selection was pasted into a spread
sheet, because then, the time values have not been interpreted
as numerical values and therefore, could not be processed
without manual reformatting. This problem has been fixed. The
time value and its unit are now copied as separate strings or
table entries, respectively.
-
In the runtime statistics of HDevelop's profiler, program lines
that cannot be executed (like comments, declarations, etc.) are no
longer listed anymore. However, deactivated lines, which otherwise
would be executable, will still be listed, because this makes the
comparison of alternative code more easy.
-
The HDevelop Variable window now offers the opportunity to save
the contents of one ore more variables. If the selected
variable is initialized and the write operation is sensible,
the context menu has a Save entry. This Save entry is not
offered for handle types that do not have a write operator. For
all other handle types, the appropriate write operator is
called. Iconic objects are saved via their write operator if
available. If no suitable write operator is available (object
tuples and some XLD types), the object can be saved as
serialized object. If several initialized control variables are
selected at once, the context menu offers a Save All entry that
allows to browse to a directory that is used for writing one
file for each variable using the appropriate write operation.
In case of a multi-selection the file names are derived from
the variable names and the default extensions of the
appropriate types.
-
HDevelop now has an Inspection window that displays some
parameters of 3D object model variables. Additionally, it is
possible to visualize these 3D object models in an additional
window. A detailed description of this new Inspection window can
be found in the HDevelop User's Guide.
Bug Fixes
-
While working with the Calibration Assistant, message boxes
with HALCON low-level error messages could pop up and interrupt
the work flow. This happened when the calibration plate could
not be extracted and the low-level error messages were switched
on. Furthermore, the
Calibration Assistant showed HALCON low-level errors when adding
calibration images with specific properties. This happened,
e.g., if the width of an image was smaller 640 or if the
extraction of calibration marks failed for all loaded images. In
rare cases, loading of such images might even have lead to a
crash in HDevelop, independent of whether throwing of low level
errors was activated or not. These problems have been
fixed.
-
If the Image Acquisition Assistant is used for live grabbing of
images and if no Graphics window is open, the assistant tries
to open a new Graphics window. If this failed, HDevelop became
unusable because after every loop cycle an error message box
popped up, displaying the error message that the Graphics
window could not be opened. After accepting this dialog the
next image was grabbed without having the opportunity to stop
the live acquisition. This problem has been fixed. If it is
impossible to open a Graphics window, the live grab mode is
stopped.
-
HDevelop could have crashed when being closed while the Image
Acquisition Assistant was used for live acquisition. This
problem has been fixed.
-
The Image Acquisition Assistant could not handle non-ASCII
characters correctly that were returned from the image
acquisition interfaces. This could concern device names,
parameter values, and tool tips. This problem has been
fixed.
-
The "auto disconnect" feature of the Image Acquisition
Assistant did not work in live mode. Live acquisition continued
after code generation, blocking the device. This problem has
been fixed.
-
If in the Matching Assistant an anisotropic shape model was
loaded, the code generation produced incorrect code: the
different values for the scaling in row and column direction
were ignored and the operator find_scaled_shape_model, which uses only the
parameters for the scaling in row direction, was generated into
the program instead of the operator find_aniso_shape_model. This problem has been
fixed.
In addition, if the scaling factors for the scaling in row and
column direction are explicitly unlocked by pressing the
lock/unlock button, now always the anisotropic shape model is
used independently of the actually selected parameters.
-
Using the Matching Assistant, it could happen that after
loading an assistant settings file (*.das), the property 'Shape
models may cross the image border' was not correctly handled.
Although the appropriate check box was correctly set and the
generated code would contain the appropriate operator call, the
parameter was not used within the assistant while applying the
model on the test images. In addition, the Always Find property
on the Model Use tabcard was not properly set and evaluated if
it was set from an assistant settings file. These problems have
been fixed.
-
The Matching Assistant of HDevelop generated wrong code
-
for the calibrated deformable matching when using it in
connection with the image acquisition assistant,
-
for the optional affine transformation when no reference image
was set, and
-
if it was set up from a loaded HALCON matching model
file.
These problems have been fixed.
-
The Matching Assistant of HDevelop showed an error message and
generated wrong code if, for the model setup, a deformable
matching file was loaded. This problem has been fixed.
-
The Matching Assistant of HDevelop showed a HALCON error
message in its status bar if a deformable matching model that
has been created from an image was reset. This problem has been
fixed.
-
The Measure Assistant raised low-level errors when for the
visualization of the extracted edges shadows were enabled but
no edges were found. This problem has been fixed.
-
The OCR Assistant generated incorrect code for reading
light-on-dark symbols. This problem has been fixed.
-
HDevelop could crash if any assistant was closed while it was
grabbing images in Live Image mode. This problem has been
fixed.
-
Each training sample consists of an image and of a region. The
image contains the gray values and the region represents the
shape of the character. In certain cases, the training samples
were stored without the region information. As a consequence, a
classificator that is trained based on such a training file will
provide worse classification results owing to the missing region
information.
In particular, the following issues occured:
-
The teaching process of the OCR Assistant in HDevelop did not
work correctly. The segmented characters stored in a training
file during the teaching process missed their region
information. Only the image data was written to the training
file. The region of the stored image was set to the full
domain, so that the region information of the character was
lost. This problem has been fixed.
-
Copying samples from one training file to another training
file with the OCR Training File Browser of HDevelop did not
work correctly. When samples were copied, via drag and drop
or copy and paste, from one training file to a different
training file, the region data of the character was lost.
After this action, the region of the copied image was set to
the full domain, so that the region information of the
character was lost. This problem has been fixed.
All training files that have been created with HALCON 11.0 by one
of the above described ways should be replaced by new training
files, created with HALCON 11.0.1. All classifiers that have
been trained with such a training file should be re-trained with
the respective new training file. Note that this problem has
already been fixed in HALCON 11.0.0.1, i.e., if your training
files have been created with HALCON 11.0.0.1, nothing is to be
done about it.
-
The Quick Setup of the OCR Assistant generated an incorrect
expression when searching for structured multi-line text (the
regular expressions for individual lines were not separated by
a space). This problem has been fixed.
-
The automatic orientation correction in the OCR Assistant
returned corrupt results or even errors when used with
non-horizontal directional ROIs. This problem has been
fixed.
-
The Quick Setup of the OCR Assistant has been improved. The
original version guessed reasonable parameter values based on
text content, ROI geometry, and specified attributes.
If the expected text is not read, the new version will now
perform a limited search of the parameter space guided by these
estimates. This increases both the likelihood of success and
the robustness against changes in the ROI geometry. In
particular, it is no longer required to mark the exact text
geometry, rather, a normal ROI with some free space around the
text is now preferred.
Please note that the Quick Setup will now take longer to
complete unless the text can be read immediately.
-
The orientation correction in the OCR Assistant could have
failed if the region of interest was partially outside of the
image. This problem has been fixed.
-
In the Feature Inspection tool, the Display column of the
feature table should display a bar representation of the value
within a predefined range. This feature was broken so that the
column displayed no information at all. This problem has been
fixed.
-
HDevelop crashed if the Graphics window of HDevelop displayed
XLD contours and the user tried to select a contour by using
the mouse and clicking on it. This problem has been fixed.
-
There were some problems with the RGB channel mode in the
Gray Histogram tool.
- If the RGB channel mode was selected for an int2,
uint2, int4, int8, or real RGB image with all pixels having
the same value, HDevelop crashed.
- The adaptive mode was not properly set in the RGB
channel mode. Instead of setting the vertical and
horizontal ranges according to the minimum and maximum
values over all channels, only the third channel was
used.
- The colors used for displaying the histograms of the
second and third channels were interchanged: the histogram
plot of the second channel was displayed in blue and the
plot of the third one in green.
These problems have been fixed.
-
In the Gray Histogram tool, the auto quantization could wrongly
return 0 for the quantization of the histogram of an int4
image. This led to a wrong histogram curve: Instead of printing
connected bars for neighbored bins, only thin peaks were
displayed. This could suggest that there were gray values in
between that did not occur in the image. This problem has been
fixed.
-
The Operation 'Scale' in HDevelop's Gray Histogram didn't
change the output when the range (min-max) was smaller than
0.001. This has been changed. Now the output is changed even
when the difference between min and max is smaller than
0.001.
-
By displaying an example program in the Help browser, which can
be achieved via the HDevelop examples section of the operator
references, the current working directory was altered. After
this, relative paths that are used within the program for
loading or saving files did no longer direct to the expected
location relative to the current program file, but were
relative to the displayed example program file. This problem
has been fixed.
-
In the Operator window, the operator list was not updated
according to the new operator name substring if the operator
name was altered only via a mouse action, e.g., via the context
menu of the editor field or by pasting a text with the middle
mouse button under Linux. If an operator name was pasted to the
operator name area as the very first action within the Operator
window, the operator was not loaded into the Operator window as
expected. This problem has been fixed.
-
After loading the operator open_framegrabber from the Program listing
into the Operator window, pressing the auto detect button, and
canceling the message box that warns about a possible crash
owing to possible driver problems, HDevelop could crash. This
problem has been fixed.
-
In the Program window, it could happen that actions that were
called via the context menu affected the wrong line. Actions
like activating and deactivating, setting breakpoints and
bookmarks, or displaying a procedure were not performed on the
program line under the mouse cursor but on that program line, in
which the text cursor was located. This problem has been
fixed.
-
In the Operator window and in the parameter suggestion list
that is opened in the Program listing by the auto completion, a
browse button allows to open a file dialog for selecting a file
name interactively from the file system. However, this dialog
was not always initialized with the current parameter value.
This happened mainly when the current parameter value was a
relative path and, within the auto completion, if the file name
parameter was the very last parameter, like the parameter
FileName in the read_image
operator. This problem has been fixed.
-
ROI files that had been written with the ROI tool and that
contained at least two regions that were connected via an XOR
operation were not read correctly. This problem occurred only
with the XOR operation and has been fixed. The ROI files that
have been written with older HALCON versions are correct and
can now be opened.
-
There was a problem with entering East Asian characters into the
full text editor. During or after entering East Asian
characters like Hiragana, Katakana, or Hanja via a phonetic or
shape-based input method, the text cursor might jump to the begin
of the next line. This could not only happen after the
conversion into the East Asian characters but also in the middle
of entering a character by a key sequence. If this happened, the
complete program line could become corrupted. This problem has
been fixed.
-
Some incomplete expressions, like 'a := sin(' were handled as a
comment. As a consequence of
this, the tool tip was wrong and if such a program line was
loaded into the Operator window, the selected operator was
'comment'. This problem has been
fixed.
-
HDevelop sometimes did not find calls to HDevelop procedures.
This could have happened if there was more than one procedure
of the given name and the option 'Operators' was activated in
the Find/Replace dialog. This problem has been fixed.
-
If the main procedure of an HDevelop program was modified from
the procedure interface dialog, HDevelop erroneously displayed
an error message. Thus, it was not possible to modify the
documentation of the main procedure. This problem has been
fixed. Note that it was, however, possible to change the
protection state of the main procedure.
-
If procedure names differ only by upper and lower case, the
sorting of bookmarks and breakpoints within these procedures
could be wrong. The bookmarks and breakpoints within these
procedures were sorted only by their line number, so that in
the Program Line View window the program lines of these
procedures were mixed up and stepping through the bookmarks
with F11/Shift+F11 could jump between the procedures. These
problems have been fixed.
-
If you make certain changes to a procedure in HDevelop's Edit
Procedure Interfaces dialog, HDevelop offers (depending on the
procedure type) to keep an unmodified copy of the procedure or
the original procedure file, respectively. If, however, you
moved to a different tabcard in the dialog before applying the
changes, the original procedure or procedure file was deleted
in any case, regardless whether one of the aforementioned
options was selected or not. This problem has been fixed.
-
When a procedure path is deleted or deactivated from
HDevelop's procedure preferences, the user is asked whether
modified procedures should be saved, the changes should be
discarded, or the whole action should be canceled. However,
if the user chose the discard option, HDevelop
- asked again whether the changes should be saved,
discarded, or the procedure should be kept explicitly
opened (in case of an external procedure)
- or (in case of a library procedure) kept the procedure
explicitly opened, anyway.
This problem has been fixed.
HDevelop now asks each time it tries to close a modified
procedure whether to save or discard the changes, or to keep
the procedure explicitly opened. There is also an option that
applies the chosen alternative to all following (modified)
procedures, which are about to be closed in the course of the
same user action.
-
HDevelop crashed when two or more explicitly opened procedures
were closed with the file menu's 'Close all Procedures' option
and if the procedure settings were open at the same time. This
problem has been fixed.
-
The activation of the minimum or maximum value of a procedure's
control parameter via the Enabled check box within the
Procedure Interface dialog was ignored if the appropriate
minimum or maximum value remained unchanged on 0. After
applying the changes in the Procedure Interface dialog, the
Enabled check box was reset to unchecked. In addition, if the
minimum value is changed, intentionally the maximum value is
adapted accordingly and the Enabled check box is automatically
checked. However, if afterwards the check box have been
unchecked by the user because only the setting of the minimum
value was intended, the unchecking was ignored and after
pressing Apply the check box was checked again. These problems
have been fixed.
-
Under certain circumstances, it was not possible to add a
procedure to a procedure library via the procedure interface
dialog. Instead, HDevelop displayed the error message 'The
selected library could not be opened. Please select another
one!'. This was the case when the library's path contained '
(', e.g., like in 'New Folder (2)'. This problem has been
fixed.
-
HDevelop sometimes crashed when selecting private procedures
from the operator menu. For the crash to occur, the selected
procedure had to be unavailable for the procedure that was
currently edited, and the operator window had to be newly
opened. This problem has been fixed.
Furthermore, the operator menu now only offers procedures that
can actually be resolved in the procedure that is currently
edited.
-
Trying to save a local procedure as external procedure into a
write-protected directory via the Procedure Interface dialog
could crash HDevelop. This problem has been fixed.
-
If a library procedure was deleted via the "Preferences /
Procedures / Manage Procedure Libraries" tabcard, program lines
that referred to that procedure remained valid and could still
be executed. The color changed to the color that is used for
local procedures and the tooltip stated that the referred
procedure is a removed one. Continuing execution or loading a
new program could have crashed HDevelop. This problem has been
fixed.
-
After switching 'filename_encoding' to 'utf8', HDevelop could
crash by accessing elements of a string tuple that contains
non-ascii characters. This problem has been fixed.
-
The encoding of the tooltips of variables that hold a tuple
with several strings were sometimes wrong. Non-ASCII characters
were not correctly encoded in the tooltip if the filename
encoding was set to locale during the creation of the string
tuple. This problem has been fixed.
-
If the 'filename_encoding' was changed between the creation of
a program line and its execution, strings with non-ASCII
characters were not correctly interpreted. In addition, with
every change of the filename encoding and execution the string
was recoded and became longer and longer. These problems have
been fixed.
-
On Mac OS X, HDevelop required the DISPLAY environment variable
to be set even though the Mac OS X version neither uses nor
requires X11. This problem has been fixed.
-
If a Japanese input scheme, like Hiragana, was chosen on Mac OS
X, the backspace key could not be used to delete the character
left of text cursor. This problem has been fixed.
-
On Mac OS X it could happen that a wrong cursor was displayed,
depending on the position of the cursor over a hidden window.
This problem has been fixed.
-
On Mac OS X, string variables with non-ASCII characters like
German umlauts were not displayed correctly in HDevelop. After
assigning a string with special characters to a variable, the
contents of the variable was displayed with quoted hexadecimal
codes. This problem has been fixed.
-
On Mac OS X, file names with non-ASCII characters were not
handled correctly. If such a file name was passed to a HALCON
operators like read_image or
open_file, the file name encoding
was wrong so that the file could not be opened. If the file was
created by the operator, the Finder program could not display
the file name correctly. This problem has been fixed.
-
On Mac OS X, neither Ctrl+Space nor Cmd+Space opened the auto
completion in HDevelop's full text editor. Owing to the fact
that Cmd+Space is used by the operating system for opening the
Spotlight enter mask, Ctrl+Space is now used on Mac OS X for
opening the auto completion.
-
HDevelop exported clear_obj and
dev_clear_obj incorrectly to
HALCON/C++. This problem has been fixed.
-
HDevelop exported programs containing operators from extension
packages incorrectly to legacy HALCON/C++. In particular, the
wrong extension package header file was included in the
exported code. This problem has been fixed.
-
HDevelop exported error handling incorrectly to Visual Basic
6.0. If an error variable was used (see usage of
dev_error_var and
dev_set_check('~give
error')), the value of the error variable was not always
updated correctly in the exported code. This happened if
an error variable was first assigned an error code in
case of an operator error and afterwards another operator
call worked correctly. In that case, the value of the
error variable was not updated correctly. Furthermore, it
was not possible to use different local error variables
in one procedure in exported Visual Basic 6.0 code. These
problems have been fixed.
-
dev_open_tool ('graphics_window',
'default', 'default', 'default', 'default', [], [], ToolId)
returned an empty string as ToolId if a window was already opened and
'examples_dialog' if no Graphics window existed. Furthermore,
only one Graphics window could be opened by dev_open_tool. Now dev_open_tool ('graphics_window', ... ToolId)
returns the ToolId 'graphics_window_xx', where xx is a number.
-
HDevelop crashed if two case statements with the same label were
entered in one switch block via the full text editor. This
problem has been fixed.
-
There was a small memory leak in HDevelop and HDevEngine while
loading programs and procedures. This problem has been
fixed.
-
HDevelop, when used with the command line option -convert, did
not convert procedure libraries into programs. Furthermore, the
respective instructions, which are available with the command
line option -help, did not mention that conversions from
programs into procedures, programs into libraries, procedures
into libraries, and programs into libraries are not supported.
When the user attempted to perform such a conversion, HDevelop
did not inform him about the failing of the operation, either.
These problems have been fixed.
-
If HDevelop crashed under Windows 7, no emergency backup was
saved. This problem has been fixed.
Examples
New Example Programs
HALCON has been extended with the following HDevelop example
programs:
-
The new HDevelop example program
- hdevelop/Control/import.hdev
shows how to use the new import statement of
the HDevelop language.
-
The new HDevelop example programs
-
hdevelop/Identification/Bar-Code/barcode_quiet_zone.hdev
-
hdevelop/Identification/Bar-Code/barcode_slanted.hdev
show how to use the new bar code
parameters.
-
The new HDevelop example program
-
hdevelop/Applications/Surface-Inspection/determine_tilt_slant_photometric_stereo.hdev
shows how to determine the orientation (i.e., tilt and slant) of
the light sources of a photometric stereo setup by using images
of a sphere with lambertian reflection. It uses the new images
photometric_stereo/shaded_sphere_01-06.png.
-
The new HDevelop example program
-
hdevelop/Applications/OCR/ocr_tire_photometric_stereo.hdev
shows how to read black-on-black text on a tire using polar
transform and a low-cost photometric stereo setup. It uses the
new images photometric_stereo/tire_01-04.png.
-
The new HDevelop example program
-
hdevelop/Applications/Position-Recognition-2D/determine_rotation_almost_rotationally_symmetric_objects.hdev
shows how to determine the orientation of an almost rotationally
symmetric object with shape-based matching and polar transform.
It uses the new images
plastic_parts/cistern_valve_diaphragms_01-16.png.
-
The new HDevelop example program
- hdevelop/Image/Acquisition/pylon_2cameras.hdev
for the pylon acquisition interface shows concurrent grabbing from
two cameras and how to share bandwidth on a 1394 bus when using
two 1394 DCAM cameras.
-
HALCON has been extended with the following HDevelop example
programs for image acquisition interfaces grabbing 3D data. These
HDevelop example programs show how to generate 3D object models from
grabbed 3D data and visualize these models.
-
hdevelop/Image/Acquisition/genicamtl_areascan3d_objectmodel3d.hdev
-
hdevelop/Image/Acquisition/genicamtl_gocator_objectmodel3d.hdev
for grabbing 3D data with the GenICamTL acquisition interface using
AreaScan3D or LMI Gocator camera, respectively,
-
hdevelop/Image/Acquisition/gigevision_atc4_objectmodel3d.hdev
-
hdevelop/Image/Acquisition/gigevision_photonfocus3d_objectmodel3d.hdev
for grabbing 3D data with the GigEVision acquisition interface using
Automation Technology C4 or Photonfocus 3D camera, respectively,
-
hdevelop/Image/Acquisition/lps36_objectmodel3d.hdev
for grabbing 3D data with the LPS36 acquisition interface,
-
hdevelop/Image/Acquisition/sick-3dcamera_objectmodel3d.hdev
for grabbing 3D data with the SICK-3DCamera acquisition interface,
-
hdevelop/Image/Acquisition/siliconsoftware_objectmodel3d.hdev
for grabbing 3D data with the SiliconSoftware acquisition interface
and 3D Triangulation Smart Applet,
and
-
hdevelop/Image/Acquisition/swissranger_objectmodel3d.hdev
for grabbing 3D data with the SwissRanger acquisition interface.
-
The new examples "GrabAndDisplay" and "SimpleGrabApplication"
under codelets/controls/examples demonstrate the use of
the new HALCON Codelet class
HDisplayControl in a Windows Forms application using Visual
Studio 2005 or higher.
Modified Example Programs
-
The HDevelop example program
-
hdevelop/Applications/Surface-Inspection/compare_surface_sheet_of_light.hdev
now uses the whole object for comparison and uses improved
parameter settings.
-
The HDevelop example program
-
hdevelop/Applciations/General/create_high_dynamic_range_image.hdev
now uses derivative filter masks that maintain the correct pixel
positions of the gradients.
-
The HALCON examples
- ia_integration,
- extension_package/halconuser, and
- extension_package/useropencl
now provide an Xcode project for x64-macosx platforms.
The old command line makefiles make.x64-macosx have been
removed.
HALCON Library
Speed-Up and Enhancements
-
binocular_disparity and
binocular_distance now consume
less memory for input images with reduced domain. This
especially has an impact on the automatic operator
parallelization on domain level. The reduction of memory
consumption increases with the number of threads.
-
disp_object_model_3d now provides
a fallback implementation that requires OpenGL 1.1 only. The
new parameter 'opengl_compatibility_mode_enable' for
set_system can be used to enforce
this fallback as a workaround for driver bugs.
-
disp_object_model_3d is now able
to visualize the vertex or surface normals of 3D object models.
The new generic parameters 'disp_normals' and 'normal_color'
have been added to provide this functionality.
The procedure visualize_object_model_3d has been adapted to
accept these parameters as well.
-
distance_transform now takes into
account the size of the input region and is thus more
efficient, especially for small regions.
-
The bar code reader has been improved in the following ways:
-
find_bar_code is now faster and
more robust in autodiscrimination mode (i.e, either the
parameter CodeType='auto', or it contains a list of more than
one bar code type names, e.g., CodeType=['EAN-13','GS1 DataBar
Omnidir', '2/5 Interleaved']). Now, find_bar_code is on average approx. 5 times
faster, while running in autodiscrimination mode.
-
The memory consumption of the bar code reader was reduced up to
a factor of 3 for single bar codes for both
autodiscrimination and single-type mode.
-
Two new bar code parameters are introduced as part of the
improvements:
- 'quiet_zone' - controls the quiet zone verification. If
enabled, it increases the robustness of the reading against
wrong code detections.
- 'slanted' - controls specific processing of slanted bar
codes
Both parameters can be modified and queried by the
operators set_bar_code_param and
get_bar_code_param, respectively.
Additionally, 'quiet_zone' can be controlled and queried for each bar
code type separately with the operators set_bar_code_param_specific and get_bar_code_param_specific,
respectively.
Two HDevelop example programs were introduced to
demonstrate the new bar code parameters:
-
hdevelop/Identification/Bar-Code/barcode_quiet_zone.hdev
-
hdevelop/Identification/Bar-Code/barcode_slanted.hdev
The new HDevelop example barcode_quiet_zone.hdev uses
the new example image
- barcode/mixed/barcode_mixed_quiet_zone.png
-
In previous versions of the bar code reader, the scanline
object results (see the results of get_bar_code_object('scanlines_*')) could
not be queried if find_bar_code was
performed with more than one CodeType specified. Now, you can
query the scanlines for all candidate bar codes, even if
scanned with list of code types specified in CodeType.
-
Certain bar code results can be queried only if the bar code
model is in 'persistence' mode (see set_bar_code_param), e.g., the results
'status' and 'quality_isoiec15416' (see get_bar_code_result) or the objects
'scanlines_*' (see get_bar_code_object). When the persistence mode
was disabled, empty tuples and objects were returned,
respectively, instead of getting the required
results/objects. Now, in this case, the operators
get_bar_code_result and
get_bar_code_object return the
error 8727 ("Feature or operation available only in
'persistent' mode").
-
The results 'status_id' and 'status' return two new messages:
- "(23) decoding: could not detect the bar code type."
- "(24) check: symbol region detected outside of the
candidate region."
Note that because of the new parameters that are contained in
the bar code model, bar code models created in HALCON
11.0.1 can not be used with older versions. This concerns both
model files written to disk as well as serialized bar code
models. However, models created with older versions can be used
with HALCON 11.0.1.
-
The data code reader now consumes less memory.
When using 'standard_recognition', the memory consumption of
find_data_code_2d for ECC200,
PDF417, and QR symbologies now is approximately 1/3 compared to
HALCON 11.0.
The data code reader now supports the parameter
'discard_undecoded_candidates'. If this parameter is set, the
data code reader returns successfully decoded candidates only.
This helps to further reduce the memory usage of the data code
reader.
The data code reader now supports a new setting of the
parameter 'persistence'. This parameter can now be set to -1 to
further reduce the amount of memory used by candidates stored
with the data code model if print quality inspection is not
required.
-
points_harris_binomial now also
supports uint2 images.
Modified Operators
-
The minimum value for the parameter 'element_size_min' of the
bar code reader has been lowered from 1.5 to 1.0. It should be
noted that with a parameter value of 1.5, good quality codes
could usually already be read with element sizes down to about
1.2, so this does not reflect new capabilities of the reader.
However, in some situations the mismatching parameter value
could lead to early rejection of candidate regions, which can
now be prevented by lowering the value.
-
The parameter values for the Interpolate parameter of
affine_trans_region have been
changed from 'true'/'false' to 'constant'/'nearest_neighbor'.
The parameter value 'none' for the Interpolation parameter of
image_to_world_plane has been
changed to 'nearest_neighbor'. The old parameter values are
still supported, such that old programs work without
change.
-
get_bar_code_result now features
the new result type 'decoded_data' that returns the decoded bar
code content as a tuple of bytes. In particular, this allows to
read binary content in Code 128 or Code 93 symbologies that
include NULL characters.
Note that for bar codes of types Code 128 and Code
93, the handling of NULL characters in binary content has
changed. Previously, the NULL character was silently discarded
from the data. Now, the result string will be terminated at the
NULL character. When expecting binary content including NULL
characters, use the new result parameter 'decoded_data' to get
the complete content as a tuple of bytes.
-
get_system now supports the query
'halcon_dir' to read out the HALCON root directory.
-
get_system now supports the query
'example_dir' to read out the directory under which, e.g.,
HDevelop searches for HDevelop example programs.
Bug Fixes
-
When generating a tuple which consumed too much memory to fit
into 32 bit on x86 systems, HALCON might have crashed. This is
typically a tuple containing around 134217728 or more elements.
This problem has been fixed. Now the error 6001 ("Not enough
memory available") is returned in such cases.
-
HALCON sometimes hung when exiting. This problem might have
occurred if an exclusive global memory cache was used (this is
the default) for a multithreaded HALCON application with a
HALCON/C, HALCON/C++ (legacy), or HALCON/COM language
interface. This problem has been fixed.
-
The bar code reader could not read UPC-A bar codes in rare
cases. This might have happened for bar codes where the first
symbol character is out of number set A but might also be
interpreted as character in number set C. The wrong number set
C could have been used in rare cases and the code be read in
the wrong direction. Very likely, the code was not accepted by
the checksum test and no result was returned. This problem has
been fixed.
-
In rare cases, the wrong string was returned for bar codes
using composite symbols. This could happen if the composite
encodation method 10 was used and the composite symbol started
with application identifier 10. For example, "(10)1234ABC...")
was returned as "(10)101234ABC...". This problem has been
fixed.
-
It was possible that bar codes with narrow elements could not
be trained successfully, even though they can be read when
setting element_size_min to 1.5 manually. This problem has been
fixed.
-
The bar code print quality inspection may have returned
incorrect grades for Codabar codes. This problem has been
fixed.
-
For some HALCON operators, the OpenCL implementation did not
check if the required OpenCL image channel data type is
supported by the OpenCL device. This problem has been
fixed.
-
After setting the file name encoding to UTF-8, strings with
non-ASCII characters were not displayed correctly in the HALCON
window under Windows and Mac OS X. This problem has been fixed.
Now it is possible to display characters in the HALCON window
that do not belong to the native encoding table.
-
add_metrology_object_line_measure
created a wrong number of measure regions if the generic
parameter 'measure_distance' was set to a high value. Note that
the same problem occurred if 'measure_distance' was set with the
operator set_metrology_object_param.
This problem has been fixed.
-
add_metrology_object_rectangle2_measure
created a wrong number of measure regions if the generic
parameter 'num_measures' was set. Note that the same problem
occurred if 'num_measures' was set with the operator set_metrology_object_param. This
problem has been fixed.
-
The ECC200 data code reader returned wrong grades for fixed pattern
damage in some cases. This problem occurred most likely with large
module sizes (> 50 pixels). This problem has been fixed.
-
For the ECC200 data code reader if the parameter 'symbol_shape'
was set to the value 'square' or 'rectangle' and the parameter
'default_parameters' was set to 'standard_recognition',
'enhanced_recognition', or 'maximum_recognition' afterwards,
the parameter 'symbol_shape' was not reset to 'any'. This
implied that the values for 'symbol_rows_min',
'symbol_rows_max', 'symbol_cols_min', and 'symbol_cols_max'
were set to the maximum and minimum values available for the
shape 'square' or 'rectangle' instead of 8, 144, 10, and 144.
These problems have been fixed.
-
The data code print quality inspection may have added new
candidates. This problem has been fixed.
-
The data code print quality inspection may have returned
incorrect grades if a timeout was set. This problem has been
fixed.
-
The data code reader failed to find some Micro QR codes. This
problem has been fixed.
-
adjust_mosaic_images crashed if
an image pair was passed that did not overlap. This problem has
been fixed. Now, the error 3701 ("Fields of view of both
cameras do not intersect each other.") is returned.
-
apply_metrology_model did not
work correctly if one measure region of an elliptical measure
object was placed exactly in positive row direction with
respect to the origin of the ellipse and if the parameter
transition was set to 'positive' or 'negative'. This problem
has been fixed.
-
calibrate_cameras crashed if
custom calibration objects and HALCON calibration objects
(description files) were mixed. This problem has been
fixed.
-
calibrate_cameras always returned
the error 9211 ("Matrix is not positive definite") with two or
more telecentric cameras. This problem has been fixed.
-
calibrate_cameras erroneously
returned the error 3701 ("Fields of view of both cameras do not
intersect each other.") if some cameras saw the same
calibration object only partially. This problem has been fixed.
Now, the calibration is performed correctly.
-
class_2dim_unsup returned wrong
results. This problem has been fixed.
-
concat_ocr_trainf showed an erroneous
behavior if the input and output files were identical. If the
output file was the first file in the list of input files then
concat_ocr_trainf returned the error
8313 ( "The version of the OCR training characters is not
supported") which was not the correct error message. Otherwise,
i.e., the output file was in the list of input files but not at
the first position, concat_ocr_trainf
crashed. Now, in these cases the error message 8319 ("OCR
training file concatenation failed: identical input and output
files") is returned, and the documentation of
concat_ocr_trainf has been
extended by a reference saying that it is not allowed to
use the same file as input and output file.
-
convol_image returned wrong
results with some masks. Only masks with leading zeros were
affected. Further convol_image returned
undefined values at the border of the image domain with
specific masks and images with reduced domains. These problems
have been fixed.
-
create_calib_descriptor_model and
create_uncalib_descriptor_model
did not work correctly if the value of the generic parameter
'min_rot' was equal to the value of the generic parameter
'max_rot'. If a such created model was used in
find_calib_descriptor_model
or find_uncalib_descriptor_model,
respectively, no matches were found. This problem has
been fixed.
-
create_calib_descriptor_model and
create_uncalib_descriptor_model
sometimes created invalid models if the domain of the input
image was small. More precisely, this was the case if the
diagonal of the smallest bounding box of the extracted model
points was smaller than 100. If a such created model was used
in find_calib_descriptor_model or
find_uncalib_descriptor_model,
respectively, no matches were found. This problem has been
fixed.
Note that because of this fix, the behavior
of find_calib_descriptor_model and
find_uncalib_descriptor_model has
changed slightly for small models. Additionally, if no valid
model can be created, create_uncalib_descriptor_model and
create_calib_descriptor_model now
return the error 8977 ("Too few feature points can be
found").
-
create_calib_descriptor_model
and create_uncalib_descriptor_model
did not support uint2 images in the case when the point
extractor 'harris_binomial' was selected. This problem has been
fixed.
-
create_ncc_model,
read_ncc_model, and
deserialize_ncc_model had a
memory leak if an error occured, e.g., because the file
could not be found in read_ncc_model. This problem has been
fixed.
-
create_shape_model_3d,
find_shape_model_3d,
project_shape_model_3d, and
project_object_model_3d
returned the error 5188 ("Required framebuffer object is
unsupported") with Intel HD4000 onboard graphics cards.
This problem has been fixed.
-
create_surface_model did not
invert the normal vectors if the generic parameter
'model_invert_normals' was set to 'true' and the passed 3D
object model contained vertex normals without faces. This
problem has been fixed.
-
crop_contours_xld sometimes
behaved unexpectedly when points of the contour lay directly on
the border of the cropping rectangle: It either did not clip
the contour in the expected place or returned the point twice.
These problems have been fixed.
-
derivate_funct_1d did not copy
the x value where a funct_1d_array has its first value. This
problem has been fixed. derivate_funct_1d now correctly copies this
value.
-
derivate_gauss returned values
for pixels outside of the domain of the input image if the SSE
or AVX implementation was used, even if the system variable
'init_new_image' was set to 'true'. This especially was a
problem if the output of derivate_gauss
was used in an operator that ignores the domain of the input
image (e.g., fft_generic). This
problem has been fixed.
-
determine_shape_model_params,
determine_ncc_model_params, and
determine_deformable_model_params
sometimes returned a wrong value for the generic output
parameter 'angle_step', i.e., the value differed from the value
that was returned by the operator get_shape_model_params, get_ncc_model_params, or get_deformable_model_params, respectively.
This was only the case for very large angle steps that exceeded
11.25 degrees. This problem has been fixed.
-
If a dashed line style was specified and dev_set_colored was used, then if a region
had more than one boundary
contours, they were displayed in different colors. This problem
has been fixed.
-
disp_image showed a blank window
under some settings of the image region to be displayed given
by the operator set_part.
Concretely, when we shifted the rectangular region specified by
set_part by an amount such that the sum
of that offset and the image domain size exceeded the 32k
limit. This problem has been fixed.
-
disp_obj copied the left image
column to the right image column under some settings, where the
displayed image part specified by the operator
set_part fell out of the
image. This problem has been fixed.
-
find_bar_code incorrectly returned
the ASCII value '\n' (ASCII 10) for each appearance of FNC1 in
Code 128 bar codes. This problem has been fixed. The new
behavior is as follows:
- FNC1 in the first two positions
is omitted from the decoded string.
- FNC1 in other positions is
transmitted as GS character (ASCII 29) for Code 128. For GS1-128
it is used as a field terminator and therefore not included in
the string.
However, it may be of interest for the application to find out
about the presence of FNC1 characters that are not included in
the string: The new result "decoded_data" therefore keeps all
FNC1 characters.
Note that without application-level knowledge, the transmitted
FNC1 symbol cannot be distinguished from binary data encoding
"29".
-
find_calib_descriptor_model and
find_uncalib_descriptor_model
sometimes computed score values that were too low. As a
consequence, sometimes obviously correct matches were not found
which finally might also resulted in a reduced robustness. This
problem has been fixed.
Note that because of this fix, the behavior
of find_calib_descriptor_model and
find_uncalib_descriptor_model has
changed slightly.
-
find_calib_object crashed in very
rare cases, especially, on large images. This problem has been
fixed.
-
find_data_code_2d did not find a
mirrored data code in training mode in some cases. This problem
has been fixed.
-
find_calib_object and
find_marks_and_pose might have
crashed in rare cases. This problem has been fixed.
-
find_marks_and_pose returned
erroneous mark coordinates for telecentric lenses with the
polynomial distortion model. This problem has been fixed.
-
find_ncc_model returned wrong
positions if called on an image with a reduced domain and the
lowest pyramid level set to 2 in the parameter NumLevels.
Furthermore, in this case, find_ncc_model was slower than necessary. These
problems have been fixed.
-
find_planar_calib_deformable_model returned
different results if the planar calibrated deformable model
contained polynomial camera parameters and if it was saved and
loaded with write_deformable_model and read_deformable_model. This problem has been
fixed.
-
The operators
- find_shape_model,
- find_shape_models,
- find_scaled_shape_model,
- find_scaled_shape_models,
- find_aniso_shape_model,
- find_aniso_shape_models,
- find_local_deformable_model,
- find_planar_calib_deformable_model,
- find_planar_uncalib_deformable_model,
- find_component_model, and
- find_shape_model_3d
crashed in very rare cases. This problem has been
fixed.
Note that because of this fix the
corresponding model creation process, and hence, the created
models themselves changed slightly. This is the case for the
following operators:
- create_shape_model,
- create_shape_model_xld,
- create_scaled_shape_model,
- create_scaled_shape_model_xld,
- create_aniso_shape_model,
- create_aniso_shape_model_xld,
- create_local_deformable_model,
- create_local_deformable_model_xld,
- create_planar_uncalib_deformable_model,
- create_planar_uncalib_deformable_model_xld,
- create_planar_calib_deformable_model,
- create_planar_calib_deformable_model_xld,
- create_shape_model_3d,
- create_component_model, and
- create_trained_component_model.
Therefore, the respective matching results might also differ
slightly with respect to previous HALCON versions.
-
find_surface_model did not return
more than 100 matches, even if the corresponding scene
contained more instances of the search object. This problem has
been fixed.
-
find_text crashed in rare cases
if 'stroke_width' was set to a very low value. Further
find_text hung in rare cases with uint2
images. These problems have been fixed.
-
fit_ellipse_contour_xld
determined the point order incorrectly if the parameter
Algorithm was set to 'geometric', 'geohuber', or 'geotukey' and
if the first points of the contour were heavily distorted,
e.g., owing to strong noise. This problem has been fixed.
-
fuzzy_entropy and
fuzzy_perimeter corrupted
memory if called with empty regions. As a consequence,
subsequent operator calls may have failed. This problem
occurred only if the system variable
'empty_region_result' had been set to 'true'. This
problem has been fixed.
-
gen_binocular_rectification_map
might have created incorrect maps in case of telecentric
lenses. Not all necessary image parts were considered. This
problem has been fixed.
-
gen_region_polygon_xld ignored
the system parameter 'store_empty_region'. It always behaved as
if 'store_empty_region' were set to 'true'. This problem has
been fixed.
-
On Windows operating systems with a display setting with more
than 256 colors, the following problem could occur: if
get_lut was called on a
HALCON window before set_lut,
get_lut returned an empty string instead of
'default'. If set_lut was then called
with the value returned by get_lut
(''), an error was returned. This problem has been fixed.
-
get_metrology_object_result
returned wrong results when the first object could not be
found. This problem has been fixed.
-
get_region_convex returned open
polygons. This problem has been fixed. Now, the polygon, which
describes the border of the convex hull of the region, is
closed.
-
get_text_model_param returned 0
as default value for 'fragment_size_min'. Furthermore, the
parameter 'add_fragments' was missing in the default parameter
list of get_text_model_param. These
problems have been fixed.
-
intersection_segments might have
returned an incorrect intersection if the start point and the
end point of one segment were identical. This problem has been
fixed.
-
list_files had a memory leak.
This problem occurred only when the file name encoding was set
to UTF8. It affected the HDevEngine too. This problem has been
fixed.
-
lut_trans returned an incorrect
result, if the parameter Lut only had values of type integer.
This problem has been fixed.
-
mean_sp and eliminate_sp returned incorrect results or an
error for multichannel images. This problem has been
fixed.
-
moments_object_model_3d,
smallest_bounding_box_object_model_3d, and
smallest_sphere_object_model_3d
crashed if the passed model contained no points. This problem
has been fixed.
-
polar_trans_image_ext returned
only black images when applied to images of height (or width) 1
in case that the last parameter was set to 'bilinear'. This
problem has been fixed. polar_trans_image_ext now returns the error 3018
("Image height too small") or the error 3019 ("Image width too
small").
-
read_image crashed with certain
JPEG XR images. Only three channel images where the third
channel was the alpha channel were affected. Furthermore,
write_image with the format JPEG
XR crashed if the output file could not be opened. These
problem has been fixed.
-
read_object_model_3d has the
option to create a XYZ mapping attribute by passing
'xyz_map_width' or 'xyz_map_height' as generic parameter.
However, when reading files with the PLY format, the mapping
was not created. This problem has been fixed.
-
read_shape_model_3d crashed in
rare cases if the model file could not be opened. This happened
if the specified file did not exist, or the file had no read
permission, or the file was no 3d shape model file, or the file
had a wrong file version. This problem has been fixed.
-
read_shape_model_3d sometimes
crashed if the system ran out of memory. This problem has been
fixed.
-
reduce_object_model_3d_by_view
did not always handle complemented regions correctly. Instead,
the non-complemented region was used. This problem has been
fixed.
-
reduce_object_model_3d_by_view
crashed if an empty tuple was passed as Pose. This problem has
been fixed.
-
rigid_trans_object_model_3d
transformed primitives incorrectly. This problem has been
fixed.
-
sample_object_model_3d threw an
exception for input object models of type sphere, cylinder, and
plane. This problem has been fixed.
-
sample_object_model_3d removed
the XYZ mapping attribute from the output points, if the input
3D object model contained vertex normals. This problem has been
fixed.
-
sample_object_model_3d allows the
computation of the surface normals from the XYZ mapping
attribute. However, no exception was raised if the mapping
attribute was missing and the normals should have been
computed. Instead, all normals were set to zero. Additionally,
the requirement of the XYZ mapping was not documented. These
problems have been fixed.
-
select_points_object_model_3d
sometimes did not select all points that met the conditions
passed to the operator. Instead, sometimes points at the end of
the point list were incorrectly not selected. This problem has
been fixed.
-
Using set_calib_data to set
calibration settings for cameras resulted in an unpredictable
state of the settings. Note that the settings for the
calibration object poses were not affected by this problem.
This problem has been fixed.
-
When setting the timeout parameter via set_data_code_2d_param, calls to
find_data_code_2d could in
some cases take significantly longer than specified,
especially when reading Micro QR Codes on very slow
systems. This behavior has been improved.
-
set_lut failed with error 5163
("Wrong color table") if the file name had more than 40
characters. This problem has been fixed.
-
set_shape_model_metric wrongly
reset the shape model parameters 'shape_model_origin',
'timeout', and 'border_shape_models' to default values. This
problem has been fixed.
-
set_text_model_param crashed in
rare cases. This problem has been fixed.
-
skeleton showed an inconsistent
behavior if the input region contained one or more isolated
pixels. If the input region consisted of only a single pixel,
this pixel was returned as the skeleton. If the input region
consisted of at least two isolated pixels, an empty region was
returned as the skeleton. This problem has been fixed. Now, the
skeleton contains each isolated pixel.
-
Several operators for 3D object models returned an error or
crashed if the input object model contained only few points
or contained only coplanar points. This affected the
following operators:
These problems have been fixed.
-
text_line_orientation returned
incorrect results when the search range was not symmetrical
about the horizontal axis, e.g., from 10° to 30°. This problem
has been fixed. Also, the restrictions on the search range have
been relaxed to allow any search range spanning less than 180°,
e.g., from 70° to 110°.
Furthermore, text_line_orientation could
in rare cases return an angle that was off by one or two degrees
from the best estimated orientation. This problem has been
fixed.
-
text_line_orientation and
segment_characters sometimes
returned the Error 3501 ("Number of chords too big. Increase
'current_runlength_number' using set_system!") or the Error 3513 ("Internal
error: number of chords too big for num_max"). This problem has
been fixed.
-
text_line_orientation raised an
error if the input region lay partially outside of the input
image. This problem has been fixed.
-
Parallelization of threshold on
big image arrays with small image domains decreased processing
performance on some systems. This problem has been fixed.
-
tuple_equal returned 0 and
tuple_not_equal returned 1 for
two empty tuples in rare cases. This problem has been fixed.
Now, tuple_equal returns 1 and
tuple_not_equal returns 0 for two empty
tuples.
-
tuple_find caused a heap error
when the tuple of the first parameter was of type string and
the tuple of the second parameter was of mixed type. This
problem has been fixed.
-
tuple_number failed to parse
negative integers correctly, i.e., values ranging from
0x7fffffff+1 to 0xffffffff. This problem has been fixed.
-
volume_object_model_3d_relative_to_plane did
not always compute the correct volume between the triangles and
the plane. This problem has been fixed.
-
write_image wrote the two files
Image.ima.ima and Image.ima.exp, respectively if called in the
following way: write_image (Image,
'ima', 0, 'Image.ima'). Now the suffix '.ima' is ignored if it
was specified with the file name and the two files Image.ima
and Image.exp, respectively, are written. Furthermore, when the
user tries to write a multi-channel image, the error 9005
("Wrong number of image components for image output") is now
returned.
-
write_metrology_model and
serialize_metrology_model could
not write and serialize metrology models of type circle or
ellipse if the parameter start_phi and/or end_phi was set.
These problems have been fixed.
Procedures
-
visualize_object_model_3d now
provides a mode that is particularly well suited for a detailed
inspection of the object's surface. In this mode, the rotation
center is always fixed in the center of the window and lies on
the surface of the displayed object. This mode can be activated
by setting the generic parameter 'surface_inspection_mode' to
'true'. Furthermore, it is possible to toggle between the
standard inspection mode and the surface inspection mode with
Ctrl + Alt + Left mouse button. Furthermore, also in the standard
inspection mode, the virtual trackball, which defines the area
that is used to rotate the object, is now fixed in the center
of the window to avoid that the trackball lies partially
outside the window after moving the object. Note also that the
default assignments of the mouse buttons have been changed. Now,
objects are moved with Ctrl + left mouse button and objects can
be selected and deselected with the right mouse button.
-
The chapter names of the external procedures are now also
available in German.
HALCON/C
Bug Fixes
-
resize_tuple did not initialize the tuple correctly if num and
capacity of the htuple input structure were set to 0 and 1 was
passed in new_length. This problem has been fixed.
HALCON/C++
Bug Fixes
-
Classes in HALCON/C++ that have been derived from HToolArray,
such as HObjectModel3DArray, etc., could not be copied by copy
constructors or copy operators. Any attempt to use a copy of a
tool array crashed. This problem has been fixed. Besides,
classes that have been derived from HTool, like HObjectModel3D,
etc., could not have been copied by copy constructors or copy
operators concurrently within several threads. Missing thread
safety might have caused memory errors.
Note that this fix breaks binary compatibility but holds source
code compatibility, i.e., the libraries halconcpp.dll and
halconcpp.so can not just be exchanged for existing
applications. Existing applications have to be recompiled and
relinked with the fixed HALCON/C++ interface.
-
HALCON/C++ returned inconsistent tuples in some cases. The
problem occured if output tuples containing only one value were
reused, e.g., in a loop. The further use of these tuples was
not safe and may have introduced undefined values. This problem
has been fixed.
HALCON/C++
(legacy)
Bug Fixes
-
The class implementation of HALCON/C++ (legacy) returned the
error 7200 ("Wrong number of output object parameter") in
specific cases. The error occured if an operator with more than
one iconic output parameters was called with a non-empty HALCON
object as iconic output parameter. This problem has been
fixed.
HALCON/.NET
Bug Fixes
-
In HALCON/.NET, a tuple element of type integer was
automatically converted to the type double if it was assigned
to a tuple of type double. This problem has been fixed. Now the
element is not converted, but it is kept as an integer in a
mixed tuple.
-
There was a possible race condition in the termination of
HWindowControlWPF that could in rare cases lead to an exception
when closing the parent window. Also, a small memory leak
occurred when opening and closing a window containing
HWindowControlWPF. These problems have been fixed.
-
When using an instance of HWindowControl on a Windows Forms MDI
child form, the control no longer worked after hiding and
re-showing the form. This problem has been fixed.
HALCON/COM
Bug Fixes
-
The HALCON Delphi example did not work, i.e., the example
showed errors when being loaded and it could not be built and
run. This problem has been fixed.
HDevEngine
Bug Fixes
-
In HDevEngine/.NET, the methods GetEngineAttribute() and
GetGlobalCtrlVarTuple() of the class HDevEngine returned
erroneous results. This problem has been fixed.
-
An HDevEngine application could crash after unloading
procedures from a procedure library, by calling
HDevEngine::UnloadProcedure or HDevEngine::UnloadAllProcedures.
The crash occurred while performing one of the next actions on
the engine, like setting the procedure path
(HDevEngine::SetProcedurePath) or requesting the available
procedures (HDevEngine::GetProcedureNames). It occurred even if
the user defined procedure path was empty, because there is one
procedure library in the system procedure's directory and these
procedures are always loaded by the HDevEngine. This problem
has been fixed.
HALCON Codelets
Functionality
-
The HALCON Codelet classes have been extended with the new
HALCON Codelet class HDisplayControl. The HALCON Codelet class
HDisplayControl is a ready-to-use .NET control that displays an
image with the correct aspect ratio and provides the
functionality for zooming and scrolling as well as for drawing a
region of interest.
-
The HALCON Codelet classes have been extended by the new HALCON
Codelet class HImageAcquisition. The HALCON Codelet class
HImageAcquisition is a ready-to-use .NET component that makes
the integration of HALCON image acquisition functionality in a
Windows Forms .NET application easier.
-
The new examples "GrabAndDisplay" and "SimpleGrabApplication"
under codelets/controls/examples demonstrate the use of the
HALCON Codelet classes HDisplayControl and HImageAcquisition in
a Windows Forms application using Visual Studio 2005 or
higher.
Image Acquisition Interfaces
The latest information about new interface revisions and newly supported
image acquisition devices can be found on MVTec's web
server.
Modified Image Acquisition Interfaces
- The following HALCON image acquisition interfaces have been
revised since HALCON 11.0:
- The new revision of the BitFlow
interface fixes a bug in the operator grab_image_start
that could lead to a deadlock situation in combination with
succeeding asynchronous image acquisition operators.
- The new revision of the DirectFile
interface includes an enhanced DLL registration process in
case the interface is not already registered correctly.
- The new revision of the DirectShow
interface enhances the device enumeration to enable the use
of multiple cameras with the same name, allows to choose
different formats/resolutions for more cameras, and enhances
setting of the parameters for such cameras. Furthermore, the
interface includes an enhanced DLL registration process in
case it is not already registered correctly and contains
various bug fixes.
- The new revision
of the File
(VirtualFG) interface fixes a bug in case of reading TIFF
files with an alpha channel as well as a bug regarding the
default search path for images within the operator info_framegrabber(...,'camera_type',...).
- The new revision of the GenICamTL
interface is now based on the latest GenApi release
v2.3.1. It fixes several minor bugs and omits warning
messages while registering internal GenApi callbacks.
Especially, a bug that leads to a crash while opening some
devices, a bug with the automatic update of the parameters
Width, Height, PayloadSize and AcquisitionMode due to
incorrect handling of internal GenApi callbacks as well as a
bug regarding XML loading from a device have been fixed.
Furthermore, two new HDevelop example program show the usage
of the LMI Gocator calibrated 3D sensor and the usage of the
AreaScan3D sensor from VRmagic.
- The new revision of the GigEVision
interface is now based on the latest GenApi release v2.3.1
and uses the internal GenApi callbacks for the parameters
'Width', 'Height', 'PayloadSize', 'AcquisitionMode' to enable
automatic adaption when these values are invalidated by
changes to other parameters. It also fixes a problem with
sockets, which where not closed properly, and a problem on 32
bit systems, which could lead to lost buffers in rare cases.
The interface now includes the new version 1.0.6.7 of the
underlying HALCON GigE Vision Streaming Filter (Windows only).
Furthermore, two new HDevelop example programs show how to
acquire and visualize 3D data from Automation Technology C4
and Photonfocus 3D sensors.
- The new revision of the LinX
interface fixes a bug in the operator grab_image_start
that could lead to a deadlock situation in combination with
succeeding asynchronous image acquisition operators.
-
The new revision of the LPS36
interface includes now also a new HDevelop example program
that shows how to acquire and visualize calibrated 3D data.
- The new revision of the MultiCam
interface fixes a bug in determining the used image size
in case of an bit-depth greater than 8.
- The new revision of the OpenNI
interface now also supports the new Microsoft Kinect for
Windows.
- The new revision of the pylon
interface has been adapted to support also the new Basler
pylon SDK versions 3.1 and 3.2. It fixes a bug in setting the
'grab_timeout' parameter to -1 as well as small memory leaks
during initialization and closing. Furthermore, the default
settings during initialization were changed in order to use
the camera default settings.
- The new revision of the SaperaLT
interface fixes two problems with setting specific parameter
values.
- The new revision of the SICK-3DCamera
interface fixes two problems in the measurement
configuration as well as a bug in case of an image acquisition
timeout and includes various extensions and improvements such as
an adapted grab engine to allow the use of the framegrabber's
internal queue of buffers, a new method to access all generic
parameters, and the possibility to specify an user-specific
callback to indicate the end of the actual image transfer.
Furthermore, the new revision includes now also a new HDevelop
example program that shows how to acquire and visualize SICK
calibrated 3D data.
- The new revision of the SiliconSoftware
interface fixes a bug in the parameter
'available_param_names' and provides a new parameter to specify
the timeout value for the device detection of all connected
GigE Vision cameras. It has also been extended to support the
new 3D Triangulation SmartApplets from Silicon Software.
Furthermore, a new HDevelop example program shows how to
create a HALCON 3D object model in combination with the 3D
Triangulation SmartApplets from Silicon Software.
-
The new revision of the SwissRanger
interface includes now also a new HDevelop example program
that shows how to acquire and visualize calibrated 3D data.
- The new revision of the uEye
interface fixes a bug in the operator open_framegrabber in
case of using CameraType='default' and a camera parameter set
containing an AOI.
- Please refer to the corresponding documentation for
information about additional changes, especially whether a new
revision of the corresponding device driver is required.
Documentation
Installation Guide
The Installation Guide is available in a new edition. It has been
adapted to the changes in HALCON 11.0.1.
HDevelop User's Guide
The HDevelop User's Guide is now available in a new edition. It
has been adapted to the changes in HALCON 11.0.1.
Solution Guide I (Basics)
The Solution Guide I (Basics) is available in a new
edition. It has been adapted to the changes of HALCON 11.0.1.
Furthermore, it has been extended with a
chapter that explains the use of compute devices.
Programmer's Guide
The Programmer's Guide is available in a new edition. It has been
adapted to the changes in HALCON 11.0.1.
Extension Package Programmer's Manual
The Extension Package Programmer's Manual is available in a new
edition. It has been adapted to the changes in HALCON 11.0.1.
Image Acquisition Interface Programmer's Manual
The Image Acquisition Interface Programmer's Manual is available in a new
edition. It has been adapted to the changes in HALCON 11.0.1.
Reference Manual
-
The HDevelop example code that is embedded in the reference
manual entries of various operators now uses the comparison
operations '==' and '!=' instead of '=' and '#'.
-
The reference manual entry of calibrate_cameras contained the following
error: The example code (see point 5 of the section "Preparing
the calibration input data") used the invalid parameter value
'excluded_params':
set_calib_data(CalibDataID,'camera','general','excluded_params',['sx','sy'])
This problem has been fixed. The example code now uses the
parameter value 'excluded_settings':
set_calib_data(CalibDataID,'camera','general','excluded_settings',['sx','sy']).
-
The reference manual entries of all operators returning a 3D
object model now indicate in their description that memory has
to be freed first via clear_object_model_3d to overwrite an object
model. Furthermore clear_object_model_3d
has been added as successor of those operators and clear_object_model_3d contains a list of all operators
returning a 3D object model as predecessors.
-
The reference manual entries of connection_object_model_3d,
convex_hull_object_model_3d,
intersect_plane_object_model_3d,
reduce_object_model_3d_by_view,
sample_object_model_3d,
smallest_bounding_box_object_model_3d,
and smallest_sphere_object_model_3d contain
HDevelop examples in which the parameters of
visualize_object_model_3d were in the wrong order. These
problems have been fixed.
-
The reference manual entries of create_metrology_model and set_metrology_object_param described the
measure direction incorrectly. This problem has been
fixed.
-
The reference manual entries of create_shape_model_3d and of
create_surface_model have
each been extended by a reference to a respective
scientific publication.
-
The attention slot of the reference manual entry of
determine_shape_model_params
is more specific. It now states in which cases a
parameter might differ from the respective parameter that
is used in create_shape_model. In addition, the
attention slot of the reference manual entry of
determine_ncc_model_params
has been removed, because it has become obsolete.
-
The example code (C syntax) in the reference manual entry of
fft_generic was erroneous. This
problem has been fixed.
-
The reference manual entry of find_calib_object mentioned a non-existing
parameter 'gap_factor'. In fact, 'gap_tolerance' was meant.
This problem has been fixed.
-
The reference manual entries of find_shape_model, find_scaled_shape_model, find_aniso_shape_model, find_shape_models, find_scaled_shape_models, and
find_aniso_shape_models now
describe the syntax of the parameter SubPixel more
precisely for the case that 'max_deformation' is
used.
-
The German reference manual entry of find_text did not mention that a text line
consists of at least three characters. This problem has been
fixed.
-
The reference manual entries of all operators described in the
chapter Image/Features using images and regions as input
contained no information on the influence of previously set
domains. This problem has been fixed. The two ways in which
domains are treated have been documented in the reference
manual. For most operators, previously set domains are ignored
and only the region is used. For the operators
fuzzy_entropy and
fuzzy_perimeter, the region
has to lie completely within the domain. Otherwise an
exception is raised.
-
The pdf reference manual entry of fuzzy_perimeter contained an incorrect
formula. This problem has been fixed. Now, in Zadeh's
Standard-S function, the whole expression in brackets is
squared.
-
The PDF version and the HTML version of the reference manual
entry of gen_image_const were not
consistent. Furthermore, the value ranges of some image types
were incorrect. This problem has been fixed.
-
The reference manual entry of get_object_model_3d_params has been revised.
It now contains links to related operators and the parameter
'primitive_parameter_extension' has a more detailed description
now.
-
The reference manual entry of hand_eye_calibration now mentions that the
operator hand_eye_calibration does not
support a hand-eye calibration with 3D sensors, while the
operator calibrate_hand_eye
supports 3D sensors.
-
The reference manual entries of intersection_segments, intersection_segment_line, intersection_segment_contour_xld,
intersection_lines,
intersection_line_contour_xld,
intersection_circle_contour_xld, and
intersection_contours_xld
erroneously indicated that some of the input parameters
allow multiple values (arrays) although only single
values are supported. This problem has been fixed.
-
The reference manual entry of set_spy mentioned in the description of the
control mode 'button_window' the wrong parameter values 'true'
and 'false' for the option 'button_click'. This problem has
been fixed. Now, the correct values 'on' and 'off' are
mentioned instead.
-
The reference manual entries of various operators mentioned the
following operator call: set_system('store_empty_region',<true/false>).
To avoid misunderstandings, this call has been corrected into
the following form: set_system('store_empty_region',<'true'/'false'>),
because 'true' and 'false', respectively, have to be given as
strings.
-
The HDevelop example code in the reference manual entry of
slide_image was erroneous. This
problem has been fixed.
-
The reference manual entries of smooth_object_model_3d and surface_normals_object_model_3d did not
mention the generic parameter 'mls_force_inwards'. This problem
has been fixed. Now, the generic parameter 'mls_force_inwards'
is contained in the value lists of both operators and is
described in the reference manual entry of smooth_object_model_3d.
-
The reference manual entry of var_threshold contained an incorrect formula
for the case that LightDark was set to 'not_equal'. This
problem has been fixed.
-
The reference manual entry of write_class_knn did not mention that
write_class_knn saves the samples in
the classifier itself and therefore, there is no operator
write_samples_class_knn. This problem has been fixed. The
reference manual entry of write_class_knn has been extended accordingly.
Supported Operating Systems
Windows
HALCON 11.0.1 has been compiled for the following Windows platform versions:
-
x86sse2-win32 platform version for
Windows XP/2003/Vista/7/8 on x86 processors with SSE2 extension,
i.e., Intel Pentium 4 / AMD Athlon 64 or newer
-
x64-win64 platform version for Windows
XP/2003/Vista/7/8 x64 Edition on Intel 64 or AMD64 processors
The setup process checks whether it is running on a 32 or 64 bit
system and provides a suitable list of platform versions that can be
installed.
During the installation, the environment variable HALCONARCH is set to x86sse2-win32 or x64-win64 to indicate the installed platform
version.
Please note that if you want to switch to another platform version,
you must first install it. Then,
you must adapt the environment variable HALCONARCH (see the Installation Guide
for more information).
Linux
HALCON 11.0.1 has been compiled in the following Linux platform versions:
-
x86sse2-linux2.4-gcc40 platform version
for Linux, Kernel 2.4 or higher with ABI 2 on x86 processors with
SSE2 extension, i.e., Intel Pentium 4 / AMD Athlon 64 or newer
-
x64-linux2.4-gcc40 platform version for
Linux x86_64, Kernel 2.4 or higher with ABI 2, on Intel 64 or
AMD64 processors
Please refer to the Installation Guide for detailed system
requirements corresponding to the different Application Binary
Interfaces.
The installation script checks whether it is running on a 32 or 64
bit system and provides a suitable list of platform versions that can be
installed.
Mac OS X
HALCON 11.0.1 has been compiled for Mac OS X in the following
platform versions:
-
x64-macosx platform version for Mac OS X 10.7 and 10.8.
Miscellaneous
Installation
-
The HDevengine example projects for VB.NET in
hdevengine/vb.net were not included in the
installation fileset. This problem has been fixed.
Licensing
-
HALCON now uses version 11.11 of the FLEXnet Publisher license
manager software.
-
Under Windows, the new USB dongle driver version Sentinel HASP
6.51 is included.
-
Under Linux, the new USB dongle driver version Sentinel HASP
2.0 is included.
Example Images
New Example Images
For several of the new HDevelop example
programs, new images are available: