|
This document provides the release notes for MVTec HALCON 9.0.1, as released in
June 2009. HALCON 9.0.1 is primarily a maintenance release that fixes
all known bugs in HALCON 9.0;
besides, it provides added functionality and speed-ups.
Overview
This document contains the following information:
-
Compatibility
-
Major New Features of HALCON 9.0.1
-
Detailed Description of Changes in HALCON
9.0.1
-
Major New Features of
HALCON 9.0
-
Detailed Description
of Changes in HALCON 9.0 (relative to HALCON 8.0.2)
-
Licenses
HALCON 9.0 licenses are also valid for HALCON 9.0.1. In contrast, all
HALCON 8.0 licenses must be replaced or upgraded. Please contact your
local distributor.
-
HALCON Library
HALCON 9.0.1 is fully compatible with HALCON 9.0. Compared to HALCON
8.0, many extensions have been introduced. Thus, the HALCON 9.0.1
libraries are not compatible with HALCON 8.0 or earlier versions.
-
HALCON Applications
Applications (i.e., executables) developed with HALCON 9.0 can be used
with HALCON 9.0.1, i.e., HALCON 9.0.1 is binary compatible with HALCON
9.0.
The incompatibility with HALCON 8.0 or earlier versions mainly concerns
the binaries, with only few changes in the language interfaces. If you
encounter problems during recompiling your programs, please check the
detailed description of changes below and for HALCON 9.0, respectively.
Please note the following source-code incompatibilities:
-
Because problems concerning erroneous calculations for the polynomial camera model have been fixed,
all camera parameters using the polynomial camera model obtained by
camera_calibration or binocular_calibration cannot be used
anymore and must be recomputed. Additionally, all 3D shape models,
descriptor models, deformable models, and sheet-of-light models
using the polynomial camera model must be recreated.
-
Applications that use the operators find_uncalib_descriptor_model or find_calib_descriptor_model might need
adapted parameter values because of the new
point matching algorithm.
-
Applications that use the operator points_lepetit might need
adapted parameter values because of the
modified score calculation
of this operator.
-
The output of gen_arrow_contour_xld
for point pairs with identical start and
end points has been changed so that now an XLD consisting of a
single point is returned.
-
Because problems concerning the assignment of
the axes shown in the '3d_plot' paint mode have been fixed, all
applications that supply a quaternion in the call to set_paint must be adapted.
-
Because the error messages for wrong
input control parameters returned by zoom_image_factor and zoom_image_size have been corrected,
programs that evaluate the returned error messages must be adapted
accordingly.
Please note that applications using HALCON/.NET (and HDevEngine/.NET)
have local copies of the corresponding assemblies
(halcondotnet.dll etc.). After installing HALCON 9.0.1, these
applications would therefore still use the old HALCON versions. You
must either replace the assemblies manually or re-compile the projects.
-
Image Acquisition Interfaces
The system requirements of the following image acquisition interfaces
have been changed since HALCON 9.0:
-
For using the updated pylon interface you
must install the new version 2.1 of the underlying pylon SDK
from Basler.
-
For using the updated RangerC and the RangerE
interfaces you must install the new version 4.0 of the
underlying Icon SDK from SICK IVP.
-
Under Linux, the directory structure of the new version of the GigEVision interface has been changed
because of an update of the underlying GenApi installation. Thus,
to use the new version, you must adapt your search library
path ${LD_LIBRARY_PATH}.
If you have developed your own acquisition interfaces with HALCON 9.0,
you can use them with HALCON 9.0.1 without further action. Because of
the new version of
the HALCON Acquisition Integration Interface in HALCON 9.0,
acquisition interfaces developed with HALCON 8.0.x or lower are not
binary compatible, but mostly source-code compatible with HALCON 9.0.
-
Extension Packages
Extension packages developed with HALCON 9.0 can be
used with HALCON 9.0.1 without further action. Extension packages
developed with HALCON 8.0.x must be re-generated.
-
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 9.0.1.
-
ActivVisionTools 1.0 to 3.1 cannot be
used with HALCON 9.0.1. If the setup program detects such an
ActivVisionTools version, it warns you that by continuing to
install HALCON 9.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.
HDevelop
-
3D Visualization Mode:
The graphics windows of HDevelop now provides a new button
to switch to the 3D visualization mode
that allows, in particular, the interactive inspection of range
data.
-
Full Text Editor:
The auto-completion of the full text
editor has been enhanced for expressions and tuples.
HALCON Library
-
Matching:
The descriptor-based matching has been
enhanced. It is now significantly faster and more robust.
-
Camera Model:
The polynomial camera model is now
applied to undistort points in the image instead of distorting
them.
General Features
HALCON Codelets:
A new reference documentation for the HALCON Codelets is provided.
Installation:
A runtime installer under Windows that also supports silent installations is now
available for download.
Detailed release notes can be obtained for the following topics:
-
HDevelop
-
HALCON Library
-
Procedures
-
HALCON/C
-
HALCON/C++
-
HALCON/.NET
-
HDevEngine
-
HALCON Codelets
-
Image Acquisition Interfaces
-
Manuals
-
Miscellaneous
- Speed-Up and Enhancements
- Functionality
- Bug Fixes
- Examples
-
Speed-Up and Enhancements:
-
HDevelop has been extended by a new
button in the toolbar of the Graphics Window. It can be
used to easily change the graphic mode, i.e., to switch the 3D
visualization mode on or off.
-
The auto-completion functionality has been extended
significantly regarding the handling of tuples and expressions.
Now, auto-completion supports to compose complex expressions or
multi-value tuples by selecting different values from the
parameter suggestion list.
Additionally, for existing program lines it supports the
substitution of single values in complex expressions or
multi-value tuples by items from the parameter suggestion list.
-
When opening a PDF document from within the Help
Window using the Acrobat Reader under
Windows as external PDF viewer, the following new features
have been implemented:
-
If the PDF document is a result of the full text search the
Acrobat Reader searches automatically for the entered search
strings.
-
If a specific page of the PDF document is referred by a keyword
on the Keyword tab card the Acrobat Reader now opens this page
automatically.
Restrictions:
-
If the PDF document is already open in the Acrobat Reader,
neither the search is started nor the passed page is selected.
-
The described feature will not work under Linux or with other
PDF readers because the used command line options are not
supported.
-
The HDevelop GUI is now also available in Portuguese.
-
Functionality:
-
If an invalid program line was
entered via the full text editor it
was handled like a comment operator.
For example, by double clicking on
the program line in the listing not the appropriate operator was
entered into the Operator Window but the comment operator with
the program line as the comment text. In addition, it was not
possible to deactivate an invalid program line by <F4> or
via the main or context menu. This has been changed so that also
invalid program lines are handled like normal operators as long
as the operator name is a valid operator or procedure name. Now,
it is possible to load the appropriate operator into the Operator
Window by clicking on an invalid program line. The parameter
expressions that have been entered into the full text editor are
passed to the corresponding fields in the Operator Window's
parameter area, if possible. In addition, invalid program lines
can be deactivated by <F4>.
-
Block statements that are entered
into the full text editor with an
invalid condition are now handled like normal block statements.
This has the following consequences:
-
the next line is automatically indented to the next level,
-
the statement is automatically connected to an
appropriate block end statement, and
-
deactivating this statement by pressing <F4> will
automatically deactivate the corresponding block end statement.
-
If a new block end statement that
can be connected to a block begin statement is entered into the
full text editor it is now indented
to the correct level as soon as it is completely entered without
the necessity to terminate the program line by <ENTER>.
-
HDevelop used to resolve name conflicts by renaming erroneous variable names automatically
when loading a program or inserting other programs or procedures
into the current procedure using the dialog-based editor. Name
conflicts occurred, e.g., if names were detected that were used as
iconic and as control variables. As the invalid name was only
renamed in the dialog-based editor but
not in the full text editor, which
allows the creation of invalid program lines, the behavior was
inconsistent. This problem has been fixed. Now, in both editors
variables are not renamed automatically anymore.
-
The image acquisition operators open_framegrabber, get_framegrabber_param, and set_framegrabber_param are now better
assisted by the full text editor.
Now, the full text editor behaves in a similar manner as the
Operator Window. A button to detect the available image
acquisition interfaces is supplied, the parameter suggestion
lists for the different parameters are adapted, and - if
applicable - a file selection button is supplied.
-
It is now possible to select files via a file selection box in
the full text editor. Thus, for
operators like read_image or write_image a file selection box
can be opened by clicking on the file name parameter in the full
text editor and opening the auto-completion box. This box
contains a 'Browse...' entry.
-
The indentation of the comment
operator in the program listing has been changed.
Instead of placing the comment sign '*' of the comment operator
always in the first column, it is now indented to the
indentation that is valid for the current program line. This
concerns the dialog-based editor as
well as the full text editor. The
latter is affected by code that was created within the Operator
Window and by code that was automatically indented using the
'Auto Indent' function. In addition, using the 'Auto Indent'
function in the full text editor will no longer remove
additional spaces that were entered at the beginning of the
comment. Furthermore, if the indentation of a block is
decreased by pressing <Shift-Tab>, leading spaces of a
comment that were explicitly entered in the Operator Window or
in the full text editor after the asterisk are no longer
removed.
-
After loading a procedure or program and opening the procedure in
the program editor for the first
time, the beginning of the procedure was shown while the insert
cursor was located at the end of the procedure. This was
confusing especially because other editor applications set the
insert cursor to the beginning of the text. For a more intuitive
handling the behavior of HDevelop has been changed so that the
insert cursor is located at the beginning as well.
-
The Find/Replace dialog in the full text editor has been extended with
the functionality to specify the search direction. The direction
can be changed by the Backward check box in the dialog's
options. Additionally,
the Find/Replace dialog has been extended with the functionality
to search for and replace single occurrences of variables in a
program line.
-
The handling of input parameters
that are modified by a HALCON operator was changed: If a variable
is passed as an output parameter to an operator and changed by
the execution of that operator, and if the appropriate runtime
settings 'update variable' and 'update graphics window' are
enabled, the representations of this variable in HDevelop, i.e.,
its icon in the Variable Window, its values in the Variable
Inspect Window, and/or the display in the Graphics Window are
updated immediately after the operator has finished execution.
However, there are some operators that modify an input - not the
output - variable, e.g., overpaint_region, set_grayval, or the modifying matrix
operations, like add_matrix_mod.
If a variable was changed by such an operator, the variable
representations were not updated during the program execution and
modified iconic objects were not displayed at all. This has been
changed: if a variable is modified as the input of an operator,
its icon in the Variable Window as well as values in the variable
inspection tools are now updated as soon as an operator changes
the value. In addition, iconic objects will be (re-)displayed in
the Graphics Window.
-
So far, HDevelop offered all image channels when the option 'Display Channel' of the Variable Window's
Context menu was chosen. This was quite unpractical for
multichannel images with a large number of channels. This
problem has been fixed. Now, the 'Display Channel' option behaves
in the same way as the 'Display Content' option for image arrays,
i.e., 'Display Channel' displays a maximum number of 15 channels
and offers an additional option 'Select...' if the image has more
than 15 channels.
-
HDevelop's Preferences dialog has
been extended by a splitter to control the size and orientation
of the child widgets.
-
If the user changes the language for
HDevelop via the Preferences
dialog, a message box pops up that asks the user to
restart HDevelop for activating the new language. This message
is now displayed not only in the current language but also in
the new language.
-
For HDevelop running in a different
language than English more status and error messages
have been translated.
-
The Properties dialog that can be
opened via the File menu displays some information about the
current program file, amongst others, the creation and last
modification time of the program file. However, the format of the date/time string was very
strange and did neither comply with the standard time format of
the language chosen in HDevelop nor with the current locale
settings of the operating system. This was changed: now the
time strings are displayed in the standard date/time format
according to the current locale settings of the operating
system.
-
HDevelop's help index (tab "keywords") has been extended and
corrected. In particular, it now includes index entries for the
HDevelop-specific operators like dev_open_window or assign. Besides, index entries have been
revised regarding syntax and consistent terminology.
-
It is now possible to show the subpixel
mouse position in the Status Bar, in the Zoom Window,
and in the tool tip of the Graphics Window. The user is able
to specify the precision of the displayed values in the General
Options tab card, in the Preferences dialog, or in the context
menu of the Graphics Window.
-
The sub-menus that can be used to scale
the image display or the whole window in relation to the
image size have been extended by an entry for scaling the image
or window down to 10% of the image size. These menus are
reachable via the tool bar and the Context menu of the Graphics
Window as well as the Visualization menu from the main tool
bar.
-
The handling of Graphics Windows
after resetting the program (e.g., by pressing <F2>) has
been adapted to the behavior that is implemented while loading
a new program: all Graphics Windows except one are closed and
the remaining window is cleared.
-
In contrast to Windows systems, the Graphics Window flickered if the output
of a histogram tool was changed on a Linux or UNIX system.
This behavior has been changed: now the Graphics Window does
not flicker anymore.
-
The status message of draw_xld*
and draw_nurbs* now shows more
information about the possible drawing modes.
-
The Matching Assistant has
been improved to select different matching methods. If all
four scale factors are equal to 1.0, the matching method is
'unscaled'. If all four scale factors are equal or the scale
factors are locked, the matching method is 'scaled'. In all
other cases the matching method is 'aniso'.
-
The Matching Assistant now
provides the possibility to correct the file name or path of an
image model when loading the assistant settings. For test
images that can not be loaded, a message box with more
information is displayed.
-
The Matching Assistant now
supports the increased tolerance mode in the find_*_shape_model operators.
-
When changing a calibration parameter in the Calibration Assistant after performing a
calibration, the outdated calibration data is now cleared to
avoid confusion. Additionally,
if the Calibration Assistant
reports the quality issue 'Field of view not covered by
calibration plate images' it is now possible to visualize the
coverage by clicking on the button 'Show' in the column
'Details' in the table of quality issues.
-
The HDevelop C code export has
been improved regarding runtime efficiency and readability of
the exported code.
-
Bug Fixes:
-
If several program lines were copied together from the full text editor to the clipboard and pasted
into another application, e.g., an editor or mail program, the line
break characters that should separate the single program lines were
corrupt. In some applications, the lines were printed without any
visible separator, while in other applications a special character was
printed as placeholder for unprintable characters. This problem has
been fixed.
-
In the full text editor, the
auto-indentation that indents all selected lines automatically to
the correct position did not work for the last program line.
This problem has been fixed.
-
If the dialog-based editor was active
while a long procedure was loaded, the beginning of the procedure
was shown. However, after switching the listing to the full text editor, the end of the procedure
was shown while the line numbers in the left part of the listing
kept unchanged starting with 1. This problem has been fixed.
-
A double assignment for the key combination
<Alt-Right> existed. This problem has been
fixed. Now, <Alt-Right> can not be used to open the auto-completion window in HDevelop's full text
editor anymore but is only assigned to step forward in the
procedure history.
-
In the full text editor, invalid
program lines are marked by red color. Additionally, the error
position is underlined by a dotted line and the tool tip
describes shortly the error. However, in some cases the dotted
line disappeared, e.g., after terminating an invalid line by
<ENTER>. Moreover, for some error classes the short error
description disappeared, too. This concerned all errors that are
not syntactical errors, e.g., operator calls with the wrong
number of parameters or that use variables inconsistently as
iconic as well as control parameters. This problem has been
fixed.
-
The full text editor sometimes
displayed wrong line numbers after editing program lines
consisting of more than one text line. This problem has been
fixed.
-
In the following cases, the full text
editor scrolled unintentionally horizontally to the right
end of a long program line:
-
The program line was edited via the Operator Window.
-
The program line was activated or deactivated.
-
A change of a long program line was undone or redone with
<Ctrl-Z> or <Ctrl-Y>, respectively.
This problem has been fixed. Now, the cursor keeps its
position or is moved to the beginning of the program line.
-
While entering a new operator into the Operator Window or the full text editor,
HDevelop did in some cases suggest for the input control
parameters the default values although there were variables that
would fit much better. This problem has been fixed.
-
HDevelop's full text editor lost
the keyboard focus after reactivation of HDevelop's main window
(e.g., after a different program was active). This problem has
been fixed.
-
Typing a call to open_framegrabber into the full text
editor caused interface queries even when acquisition help was
disabled. This problem has been fixed. Furthermore, even for
the case that acquisition help is enabled, the queries were
optimized, resulting in fewer error boxes when something goes
wrong and low level errors are enabled.
-
In HDevelop Demo, it was not
possible to copy a text from the full text
editor into the clipboard and paste it from there into the
editor again. It was only possible to paste texts from other
applications into the full text editor. This behavior was
changed: now, it is possible to copy the selected text from the
full text editor as well as from other applications into the full
text editor. However, intentionally it is still not possible to
copy a text from the full text editor of HDevelop Demo into other
applications. This restriction is now shown by the popup window
that is displayed after starting HDevelop Demo.
-
For some types of corrupt and therefore unloadable procedures HDevelop crashed if after
entering the name of such a procedure in the full text editor the <TAB> key was
pressed or the mouse was moved over the corrupt line. This
problem has been fixed.
-
HDevelop positioned the text cursor
on deactivated program lines wrongly if <ENTER> was pressed
at the beginning of that line. This problem has been fixed.
-
HDevelop sometimes hung during Find/Replace
operations in the dialog-based
editing mode. This problem has been fixed.
-
HDevelop sometimes started find/replace
actions at the program beginning and not at the current
cursor position. This problem has been fixed.
-
The tooltip for the auto-completion
always stayed in the foreground, even when another application
was activated. This problem has been fixed. Now, the tooltip is
closed when another application is activated.
-
The expanding of tuple expressions
with the help of auto-completion did not work correctly.
This problem has been fixed. Now, the closing bracket is added,
if possible, and every entry inside the tuple can be replaced
without the need to replace the whole tuple.
-
Opening the context menu of the Program
Window via the context menu key did not work correctly: If
the mouse cursor was not over the selected text, the selection
changed from the previously selected program lines to the line
under the current mouse position. In addition, the insert cursor
was moved to that line. Hence, the required action was not
performed on the program line or text that was selected or had
the text insert cursor before pressing the context menu key but
on the program line under the mouse cursor. This problem has
been fixed.
-
According to the documentation, the Boolean
operation 'not' is not defined for tuples with not exactly
one element. However, if 'not' was performed on a multi-value
tuple, no error message was returned. Instead, only the first
element of the resulting tuple was set and the additional
elements were undefined. This behavior was changed. Now the
operation 'not' returns an error if its parameter is not a tuple
with one element.
-
If within an expression a number
starts with 0, it is interpreted as an octal number. If such a
number contained digits that are not defined in the octal
numerical system (8 and 9), this and the following digits were
simply ignored without any notification. This could lead to
surprising results, e.g., after executing a := 018, the variable
a is set to 1. This behavior was changed: Now, an assignment
with an invalid octal number produces a syntax error in the
expression and the program line becomes invalid. The Operator
Window now rejects to accept such an expression.
-
HDevelop could get into an inconsistent state and finally crash
after changing the interface of a
procedure, e.g., by adding new parameters, and afterwards
undoing and redoing the changes via the undo stack actions
(<Ctrl-Z> and <Ctrl-Y>). This problem has been
fixed.
-
Control variables that have been
passed to a procedure lost their
semantic type. As a consequence, within the procedure
framegrabber or matrix handles that have been passed to the
procedure as control parameters could not be inspected by their
special inspection tools. This problem has been fixed.
-
HDevelop became very slow if the currently visible procedure had some iconic variables that
have been instantiated with region arrays consisting of many
regions. This affected mainly the execution of single program
lines, when typing text into the full text editor, and switching
between the two editor modes. This problem has been fixed.
-
HDevelop crashed if an external
procedure was saved via the menu 'File -> Save Procedure
As...' to the same file it was loaded from. This problem has been
fixed.
-
HDevelop crashed if it was started with the option -preferences and a normal
HDevelop.ini file as argument. This problem has been fixed.
-
HDevelop sometimes crashed if in the 'External Procedures' table in the
Preferences dialog a corrupt and therefore unloadable procedure
was double clicked. This table lists all external procedures
that are referred via the external procedure paths, including
invalid and unreachable procedures. Normally, by double clicking
on a procedure row in that table the appropriate procedure is
displayed in the Program Window. This problem has been fixed.
-
In some cases, HDevelop crashed if in the Procedure Interface dialog a parameter was
removed and then the Reset button of the dialog was pressed for
reconstructing the original parameter state. The crash occurred
if the parameter that was removed was one parameter of a list of
at least three parameters in one group and at least two
parameters followed after it. This problem has been fixed.
-
If a multi-channel image or an object tuple was inspected via the
Display Channel or Display Content
dialog that are available via the image icon in the
Variable Window, a previously selected window part was ignored
and the image was always displayed in full size. This problem has
been fixed. Now, if the selected channel or image object has the
same size as the image that is currently displayed in the
Graphics Window, the same part is used for displaying the
selected image. Otherwise the image is displayed in full size.
-
After maximizing HDevelop's main
window, it was still possible to resize this window via
the size grip in the bottom-right corner of the status
bar. Resizing a maximized window is not usual and did confuse the
title bar: after resizing the maximized window the title bar
continued showing the button for changing the window to normal
size and even continuously pressing the button had no
effect. This problem has been fixed.
-
On Windows systems, it was possible that HDevelop's top level windows were opened outside the
desktop and therefore became invisible. This could have happened
by switching from MDI to SDI mode for windows that have been
placed on a virtual MDI area that was much larger than the actual
desktop outside the visible part. Additionally, this could have
happened also if the desktop became smaller after executing
HDevelop and restarting it again, e.g., by removing a second
monitor that was used to expand the Windows desktop. This
problem has been fixed. All windows are now opened so that at
least the left part of the title bar is visible on the desktop.
-
HDevelop failed to set the current working
directory correctly to the program path if the path
contained non-ASCII characters. As one consequence, e.g., image
files that are addressed in the program relatively to the program
could not be opened. The problem did not occur if HDevelop was
started in the appropriate directory, e.g., by double clicking on
the program file in the Windows Explorer. This problem has been
fixed.
-
As long as no language is selected explicitly, HDevelop tries to
detect an appropriate language automatically from the operating
system's locale settings. On a Chinese
system, always traditional Chinese was selected by mistake, even if
the locale settings use simplified Chinese. This problem has been
fixed.
-
HDevelop crashed if on a Japanese Windows
system the operator dev_display was called with an
uninitialized iconic variable. This problem has been fixed.
-
If the system option
'no_object_result' was set to 'false', in HDevelop the
operator gen_empty_obj returned 3
(H_MSG_FALSE) instead of 2 (H_MSG_TRUE). Additionally, an error
message box was opened even if dev_set_check('~give_error') was
set. The error occurred only if the operator
gen_empty_obj was called within HDevelop but not if it
was called via HDevEngine or a language interface. This problem
has been fixed.
-
If in HDevelop's Print dialog the
'Print' button is pressed without prior selecting a printer
explicitly, the Printer Selection dialog is opened automatically
for confirming the printer. Canceling this dialog by pressing
the 'Cancel' button could have - depending on the active printer
- caused HDevelop to crash or to print the program anyway. This
problem has been fixed.
-
HDevelop crashed if some of the HALCON help
files that are installed under %HALCONROOT%\help were
missing. This problem has been fixed. Now, if a help file is
missing, an error message is displayed and HDevelop is closed.
-
HDevelop's histograms did not always
update when switching between smoothing and quantization mode.
This problem has been fixed.
-
In conjunction with the gray histogram
tool the feature histogram
tool did not always update correctly. When the feature
histogram was opened while the Graphics Window displayed the
output of the gray histogram's threshold operation, the feature
histogram displayed an empty histogram (the gray histogram's
output is not a valid input for the feature histogram). However,
when the feature histogram was already opened and the gray
histogram's threshold operation was activated, the feature
histogram was not cleared. This problem has been fixed.
-
Additionally, in conjunction with the gray
histogram tool the feature histogram
tool generated program lines with empty parameters that
were not marked as invalid and crashed HDevelop if they were
executed. This happened if both histogram tools were open at the
same time and the gray histogram output a threshold region to the
Graphics Window, while the 'Insert Code' button of the feature
histogram tool was pressed. In this case, the iconic input
parameter of the generated code line, e.g., the Regions parameter
of the select_shape operator, was
empty, nevertheless, the code line was not marked as invalid. If
that program line was executed, HDevelop crashed. This problem has
been fixed. The feature histogram now recognizes correctly the
gray histogram's output as an invalid input and disables any
feature thus preventing any code generation. Furthermore, the
histograms now disable the 'Insert code' button when there is no
activated and enabled feature or operation.
-
If the gray histogram tool was
opened on an image that was created by the Image Acquisition Assistant the code
generation of the histogram failed. After pressing the 'Insert
Code' button in the gray histogram tool, an error 'Invalid
variable name (HDevelop error code: 21070)' was shown and the
wait cursor was not reset to the normal cursor. This problem has
been fixed. Now, if the gray histogram tool is used on the output
of the Image Acquisition Assistant, it uses the same variable
name for the code generation as the Image Acquisition
Assistant.
-
In some cases, the Image Acquisition
Assistant auto-selected the TWAIN interface after
auto-detection. This problem has been fixed.
-
HDevelop crashed when trying to export empty special comments, i.e.,
comment lines beginning with '#' followed by an empty string or
an arbitrary number of blanks. This problem has been fixed.
-
If for loop statements were exported to
C by HDevelop, they were executed in the reverse order
(compared to the execution in HDevelop) if the step was negative.
In rare cases, this could have led to an erroneous behavior of
the exported code. This problem has been fixed.
-
HDevelop exported HALCON operator
calls in procedures incorrectly to
C++ if an error variable was active at the time of the
operator call and the error variable was a procedure parameter.
In that case, the exported program failed to compile. This
problem has been fixed.
-
HDevelop code exported to C# -
HALCON/COM did not run on Windows x64 systems. This
problem has been fixed.
-
HDevelop in rare cases exported
assignments incorrectly to C# -
HALCON/.NET. This happened if the expression on the right
side of the assignment was a selection with an index that was not
of type integer. In this case, the exported code was either
syntactically incorrect or produced a runtime error during the
execution. This problem has been fixed.
-
HDevelop exported expressions
containing the operation =~ (substitute for regexp_test)
incorrectly to Visual Basic .NET -
HALCON/.NET. This problem has been fixed.
-
Examples:
HALCON has been extended by the following HDevelop example programs:
-
The new HDevelop example program
examples/solution_guide/basics/barcode_typical_cases.dev shows
typical cases for the preprocessing of 1D bar codes. It uses the
new images ean13_to_preprocess_* from the subdirectory
images/barcode/ean13. The example is described in detail in the
Solution Guide I (Basics).
-
The new HDevelop example programs crevis.dev,
crevis_binning.dev, crevis_parameters.dev, crevis_simple.dev,
and crevis_trigger.dev in the directory
examples/hdevelop/Images/Acquisition show how to use the Crevis interface.
The following HDevelop example programs have been modified:
-
The HDevelop example program
examples/hdevelop/Applications/3D-Vision/calibrate_sheet_of_light.dev
has been revised and is now more robust. The three procedures
compute_3d_coordinates_of_light_line, fit_3d_plane_xyz, and
get_light_plane_pose now return empty tuples if the processing
was not successful. Now, when using the procedures, the size of
the returned tuples should be tested after the processing and an
error handling can be applied if necessary.
-
The two example programs
examples/hdevelop/Tools/Calibration/change_radial_distortion_points.dev
and
examples/hdevelop/Applications/3D-Vision/reconstruct_connection_rod_calib.dev
have been adapted to the changes of the polynomial camera model.
-
The HDevelop example program
examples/solution_guide/image_acquisition/port_switching_inspecta.dev
has been enhanced for the extended description of port
switching in the Solution Guide on Image
Acquisition.
- Speed-Up and Enhancements
- Modified Operators
- Bug Fixes
-
Speed-Up and Enhancements:
-
find_uncalib_descriptor_model and
find_calib_descriptor_model use a
new point matching algorithm. In contrast to the old algorithm,
which used a random search strategy, the new algorithm uses a
deterministic strategy for searching objects in an
image. This new strategy has the following major advantages:
-
it can robustly detect multiple objects in the image,
-
it leads to nearly constant and well predictable execution
times for sequences of similar images,
-
it is between 20% and 90% faster than the old random algorithm
(90% only if compared with the cases where the old algorithm
took unreasonably long to make a decision), and
-
it detects the absence of objects in the image very quickly.
Note that existing applications might need adapted parameter
values due to the new algorithm. Furthermore, if the 'lepetit'
point detector was selected, the value for 'min_score'
has to be adapted due to the
modified score calculation of the
operator points_lepetit.
-
Modified Operators:
-
Until now, the parent window of a HALCON
window was informed about events from the left and right
mouse button under Windows. Now, a HALCON window posts also the
following messages concerning the middle mouse button and the
mouse wheel to its parent window (if it exists):
-
gen_region_hline now renders the
Hesse line regions more accurately. Additionally, the border
treatment has been improved.
-
points_lepetit internally
calculates a score for each extracted point and rejects all
points with a score less than the parameter MinScore. The score
was calculated based on the Laplacian-of-Gaussian (LoG) kernel.
However, the discretization of the kernel that was used proved to
be vulnerable to illumination changes. Therefore, the score
calculation has been changed and is now based on the Laplacian
kernel. As a result, the typical values of the MinScore
parameter are now between 5 and 20. The default value is
10. Note that this change makes the internal score calculation
conform to the existing reference manual entry of the operator.
-
Bug Fixes:
-
On Windows systems, HALCON sometimes incorrectly returned
error 2985 ("failed to create a tsd key") during the
initialization of the HALCON library. As a consequence, e.g.,
HALCON could not be used in the Visual
Studio designer or similar environments (via
HWindowControl, HWindowXCtrl, or ActivVisionTools). This
problem has been fixed.
-
HALCON might have detected too many CPUs on some Linux machines. This
problem has been fixed.
-
HALCON did not work under Windows systems if the path in the environment variable HALCONROOT
or HALCONIMAGES was surrounded by quotation marks.
This problem has been fixed.
-
Long contours were displayed
with some small gaps. The gap size depended on the
distance between the consecutive contour points. This
problem has been fixed.
-
The temporal accuracy of the ECC200
data code reader's timeout mechanism was insufficient.
This was especially the case with large images. This problem
has been fixed.
-
The data code reader (ECC200 and QR code) sometimes crashed in
training mode if the data code parameter 'persistence' was
set to 1, the parameter 'small_modules_robustness' was set to
'low' (default), and no data code could be found in the input
image. This problem has been fixed.
-
The sheet-of-light operators
crashed with invalid model handles, e.g., with handles of
models that have already been cleared. This problem has been
fixed.
-
affine_trans_image and affine_trans_image_size did not
transform the first pixel of a column in rare cases. This
problem has been fixed.
-
apply_sheet_of_light_calibration
could have crashed if the size of the image passed in
Disparity did not correspond to the width of the profile
region and to the value of the parameter 'num_profiles'.
This problem has been fixed.
-
binocular_disparity_mg and binocular_distance_mg crashed in rare
cases. The crashes were independent of the input images.
This problem has been fixed.
-
binocular_distance returned the
distance image instead of the score image. As a consequence
there was a memory leak because the memory allocated for the
score image was never freed. This problem has been fixed.
-
The distortion formula of the polynomial camera model was
used in the wrong direction. In contrast to the procedure
described in the documentation of camera_calibration, the distortion
formula was used to distort points analytically and undistort
points numerically. This problem has been fixed. The two
example programs
examples/hdevelop/Tools/Calibration/change_radial_distortion_points.dev
and
examples/hdevelop/Applications/3D-Vision/reconstruct_connection_rod_calib.dev
have been adapted accordingly.
Note that all camera parameters using the polynomial camera
model obtained by camera_calibration or binocular_calibration cannot be used
anymore and must be recomputed. Additionally, all 3D shape
models, descriptor models, deformable models, and
sheet-of-light models using the polynomial camera model must
be recreated.
-
camera_calibration did not
allow to use the values 'vx', 'vy', and 'vz' as well as
'~vx', '~vy', and '~vz' for the parameter EstimateParams. If
one of these values was passed in EstimateParams, the error
1308 ("Wrong value of parameter: 8") was returned. Additionally,
camera_calibration returned
altered values for the motion vector (vx, vy, vz) even if the
motion vector was excluded from the calibration. Furthermore,
camera_calibration returned an
altered value for the pose angle alpha even if it was
excluded from the calibration. These problems have been fixed.
-
clear_rectangle, move_rectangle, and set_window_param (with Param=
'background_color' or Param='window_title') did not work with
buffer windows on Linux/UNIX systems and raised a BadMatch
error. This problem has been fixed.
-
clear_shape_model, clear_scaled_shape_model, clear_aniso_shape_model, clear_shape_model_3d, and clear_data_code_2d_model had a memory
leak of 24/36 bytes per call on a 32/64 bit Windows operating
system. This problem has been fixed.
-
coherence_enhancing_diff
sometimes returned wrong values in the upper right and/or
lower right corner of non-square images. This problem has
been fixed.
-
create_shape_model_3d crashed
in rare cases. The crash occurred only for some combinations
of object models, camera parameters, and pose ranges.
Additionally,
create_shape_model_3d returned the error 6002
("Memory partition on heap has been overwritten") or crashed
in very rare cases. This was only the case if
create_shape_model_3d was parallelized. This
problem has been fixed.
-
determine_shape_model_params
and create_*shape_model hung in
very rare cases. This problem has been fixed.
-
difference_closed_contours_xld
crashed in very rare cases. The crash occurred if at least two
segments of the two contours were nearly identical. This
problem has been fixed.
-
difference_closed_contours_xld,
intersection_closed_contours_xld,
symm_difference_closed_contours_xld,
union2_closed_contours_xld,
difference_closed_polygons_xld,
intersection_closed_polygons_xld,
symm_difference_closed_polygons_xld,
and union2_closed_polygons_xld
crashed in some cases if the coordinates of the contours or
polygons had absolute values larger than 16383. This problem
has been fixed.
-
disp_obj hung or crashed if the
image part to be displayed in the window was set with set_part such that it lies completely
left of the image. Additionally,
disp_obj and disp_region with draw = 'margin' and
line_style > 0 displayed regions incorrectly. The right and
bottom parts of the contour were shifted one pixel to the
right and to the bottom. These problems have been fixed.
-
distance_lr returned wrong
results for a region consisting of one pixel. Additionally, an empty
input region returned no error message. These problems have
been fixed.
-
do_ocr_word_mlp and do_ocr_word_svm had a small memory
leak if the parameter Expression was a regular expression.
This problem has been fixed.
-
drag_region1, drag_region2, and drag_region3 sometimes crashed. This
problem has been fixed.
-
draw_xld and draw_xld_mod had a memory leak. This
problem has been fixed.
-
There was a resource leak when cancelling draw_* operators before actually
drawing anything. This problem has been fixed.
-
fill_up_shape disregarded all
shape features but 'area'. This problem has been fixed.
-
find_bar_code had the following
problems:
-
It sometimes crashed when 'element_size_max' was changed.
-
It sometimes returned the error 3513 ("Internal error:
number of chords too big for num_max").
-
It could not find bar codes if their orientation was
opposite to the specified orientation range.
-
It sometimes crashed while processing a composite 'CC-A/B'
symbol that was perspectively distorted.
-
It hung in very rare cases.
These problems have been fixed.
-
find_data_code_2d sometimes
crashed when processing an image of height 1. This usually
happened for PDF417 symbols if the general parameters were
set to 'train'/'all'. Additionally,
find_data_code_2d sometimes
crashed with a PDF417 symbol that encoded data in Numeric
Compaction mode and any of the codewords was the 0 codeword.
These problems have been fixed.
-
find_marks_and_pose in rare
cases returned the error 3274 ("Not enough valid points for
fitting the model") if the parameter MinContLength was set to
a value smaller than 5. This problem has been fixed.
-
find_ncc_model returned
different results in sequential and in parallel mode. This
problem has been fixed.
-
find_shape_model and its
derivates sometimes had a small memory leak if their
execution was interrupted by a timeout, which previously had
been set by using set_shape_model_param. This problem
has been fixed.
-
fread_line read the last
character of a file incorrectly if the file was not
terminated by a newline character. This problem has been
fixed.
-
frei_dir, kirsch_dir, prewitt_dir, and robinson_dir determined the edge
direction of horizontal edges with an intensity increase from top to bottom
incorrectly. Instead of 90 (180 degrees) the value 0 (0
degrees) was returned for these edges. This problem has been
fixed.
-
gen_binocular_rectification_map
sometimes returned the error 9205 ("Matrix is singular").
This problem has been fixed.
-
gen_contour_nurbs_xld crashed
if MaxError and/or MaxDistance were choosen too restrictive,
so that the constraints could not be fulfilled due to
floating point resolution limitations.
gen_contour_nurbs_xld now returns the new error 3291
("Constraints (MaxError/MaxDistance) cannot be fulfilled") in
these cases.
-
gen_ellipse_contour_xld
returned incorrect results for StartPhi=rad(360). This
problem has been fixed.
-
gen_grid_rectification_map
crashed in rare cases. This problem has been fixed.
-
get_bar_code_result with
argument 'quality_isoiec15416' sometimes crashed when
performing bar code print quality assessment on an image with
sub-optimal image quality (e.g., minimum bar code element
width < 5 pixels). This problem has been fixed.
-
get_data_code_2d_results
sometimes crashed when assessing the PDF417 print quality
(ResultNames = 'quality_isoiec15415'). This problem has been
fixed.
-
get_sheet_of_light_result could
have returned erroneously scaled values for the calibrated
coordinates X, Y, and Z if the model parameter 'scale' was
not set to 'mm'. This problem has been fixed.
-
get_sub_matrix sometimes
crashed for invalid input parameter values. This problem has
been fixed.
-
gray_erosion_shape, gray_dilation_shape, gray_opening_shape, and gray_closing_shape returned undefined
gray values outside the image domain if parallelized
automatically on domain level. For byte and uint2 images,
gray_erosion_rect, gray_dilation_rect, gray_opening_rect, and gray_closing_rect were affected as
well. This problem has been fixed.
-
gray_inside returned incorrect
values using a reduced domain. This problem has been fixed.
-
histo_to_thresh sometimes
returned wrong results if the parameter Histogram was an
absolute histogram with large values and/or if the parameter
Sigma was very large. This problem has been fixed.
-
intensity in rare cases
returned NaN as Deviation for homogeneous image regions on
Solaris. This problem has been fixed.
-
mean_n crashed when large
arrays (n>20) of single-channel images were passed to
it. This problem has been fixed.
-
For HALCON XL, the measure operators measure_pos, measure_pairs, measure_projection,
fuzzy_measure_pos, fuzzy_measure_pairs, and fuzzy_measure_pairing returned
incorrect results if the measure object covered image
coordinates bigger than 65535. This problem has been fixed.
-
measure_profile_sheet_of_light
might have returned wrong values for the disparity image as
well as for the score image when the model parameter
'ambiguity_solving' was set to 'brightest' and the model
parameter 'score_type' was set to 'width'. This problem has
been fixed.
-
median_separate in rare cases
did not work for MaskWidth=1. This problem has been fixed.
-
mirror_image and mirror_region did not work for large
regions if Mode='diagonal' (depending on the available
memory). This problem has been fixed.
-
optical_flow_mg produced
unpredictable results when invoked with the 'clg' algorithm.
This problem has been fixed.
-
paint_xld did not fill some
pixels at the border of the contour in very rare cases. This
problem has been fixed.
-
points_lepetit returned the
error 3513 ("Internal error: number of chords too big for
num_max") when the image domain had more than one connected
components. This error affected also the operators create_[un]calib_descriptor_model and
find_[un]calib_descriptor_model
if the 'lepetit' point detector was
selected. This problem has been fixed.
-
projective_trans_image_size
returned the error 3605 ("Projective transformation is
singular") when HomMat2D had a too small determinant. To
prevent an image transformation under a singular matrix, the
operator checked the determinant, although matrices with
small determinants can still be well defined (non-singular).
This problem has been fixed. The check is now based on the
matrix rank.
-
radial_distortion_self_calibration in
rare cases crashed. Additionally,
it returned a wrong error message for a wrong input control
parameter. These problems have been fixed.
-
read_contour_xld_arc_info,
read_polygon_xld_arc_info, and
read_world_file could have
crashed with nonexisting input files on Windows systems.
This problem has been fixed.
-
read_deformable_model could not
read models that were created with the metric
'ignore_color_polarity'. The error 8501 ("Wrong pattern file
version") was returned for these models. This problem has
been fixed.
-
read_image returned the error
6002 ("Memory partition on heap has been overwritten") when
reading a TIFF file with file extension '.tiff'. Additionally,
read_image and read_region crashed if a monochrome
bitmap file (BMP) was read that was saved top-down, i.e.,
with a negative value in the height field. Furthermore,
read_image could not read TIFF
files that have a file size larger than 2 GB. These problems
have been fixed.
-
read_tuple crashed in rare
cases when reading a tuple that contained strings.
-
select_characters did not work
correctly if the parameter Punctuation was set to 'true'. It
added a character more than once. Additionally,
if the parameter ConnectFragments was set to 'true', small
regions like dots were lost. These problems have been fixed.
-
set_check did not clear any
check flags with parameter values 'none' and 'ref_none'.
This problem has been fixed.
-
The axes shown in the '3d_plot' paint mode were not colored
in the correct order. Now, they are colored correctly in the
order row axis, height axis, and column axis. Further they
were assigned to the wrong axes, i.e., row was assigned to
the Z axis, column to the X axis, and height to the Y
axis. Now, the row axis is assigned to the X axis, the column
axis to the Y axis, and the height axis to the Z axis. Note
that all applications that supply a quaternion in the call to
set_paint must be adapted.
-
sobel_amp, sobel_dir, and laplace did not return an error with
images of too small dimensions. This problem has been fixed.
-
testd_ocr_class_box does not
parallelize region tuples correctly. Therefore, the ability
of tuple parallelization has been switched off for
testd_ocr_class_box.
-
tile_images and tile_channels returned incorrect image
domains in certain cases. If TileOrder was set to 'vertical' and
NumColumns and the number of input images were chosen such that
at least one column of the output image was empty and the last
used column was completly filled with images, this last column
was missing in the output domain. This problem has been fixed.
-
tile_images_offset did not work
for multi-channel images having different pixel types in the
different channels. This problem has been fixed.
-
trans_from_rgb and trans_to_rgb did not return the
correct output domain if the input images had different
domains when running automatic parallelization on domain
level. This problem has been fixed.
-
tuple_chrt could have caused
crashes if called with input tuples containing 0 (zero) as
first element or containing multiple 0 (zeroes)
consecutively. This problem has been fixed.
-
tuple_string violated memory if
a string was converted into a string of fixed length using a
format string such as '-Ns', where N is the desired string
width. Additionally,
tuple_string crashed when
called with the parameter Format of type integer or real
instead of string. These problems have been fixed.
-
zoom_image_factor and zoom_image_size returned the wrong
error messages for wrong input control parameters. In
particular, they returned the error 1302 ("Wrong value of
control parameter: 2") if the first input control parameter
was wrong and the error 1303 ("Wrong value of control
parameter: 3") if the second input control parameter was
wrong. This problem has been fixed. Now, the errors 1301
("Wrong value of control parameter: 1") and 1302 ("Wrong
value of control parameter: 2") are returned. Note that
programs that evaluate the returned error messages must be
adapted accordingly.
-
Bug Fixes:
-
gen_arrow_contour_xld raised a
'division-by-zero' error if a tuple of more than one point
pair was passed and the start and end point for at least one
point pair were identical. If a single point pair was passed,
an empty tuple was returned. These problems have been fixed.
Now, an XLD consisting of a single point is returned if the
start and end point of a point pair are identical.
-
Examples:
-
The C interface example example6.c now shows the usage of the
function T_call_halcon_by_id instead of the deprecated function
T_call_halcon.
-
Speed-Up and Enhancements:
-
The access to parameter values by their parameter name via the class
HOperator (with methods such as SetInputCtrl) is now
significantly more efficient.
-
Bug Fixes:
-
It was not possible to use the class HDeformableModel via
HALCON/C++. This problem has been fixed.
-
The C++ methods HTuple::ToString(const char*) and
HTuple::ToString(const Halcon::HTuple&) violated memory if a
string was converted into a string of fixed length using a
format string such as '-Ns', where N is the desired string
width. This problem has been fixed.
-
Examples:
-
In the MFC example MatchingExtWin, the parameter WINHWin in the
call of new_extern_window was used
erroneously. The example has been fixed. Furthermore, the
example program in the reference manual entry of
new_extern_window has been updated.
-
Bug Fixes:
-
Tool classes in HALCON/.NET entered an inconsistent state when
an operator constructing a new tool (such as
HShapeModel.CreateShapeModel) encountered an error. The tool
class could then no longer be reused. This problem has been
fixed.
-
When calling GetParallelsXLD via HALCON/.NET, the parameters
Row2 and Col2 contained corrupt output values. This problem has
been fixed.
-
The signature of the method HPose.HandEyeCalibration did not
allow to pass an array of robot poses but only a single
pose. This problem has been fixed.
-
It was possible for HWindowControl to raise an error when a
window was resized to a very small size (or anchored to a form
which got minimized). This problem has been fixed.
-
Bug Fixes:
-
External procedures that contained empty program lines could not
be executed within HDevEngine. The execution of such a
procedure was aborted with a syntax error message. This
problem has been fixed.
-
The methods HDevProcedure::GetInputIconicParamName(par_idx),
HDevProcedure::GetOutputIconicParamName(par_idx),
HDevProcedure::GetInputCtrlParamName(par_idx), and
HDevProcedure::GetOutputCtrlParamName(par_idx) for querying a
specific parameter name of a procedure were erroneous. The
passed parameter index was not interpreted correctly. According
to the documentation, the index should range from 1 to the
parameter number. However, it was interpreted as if it would
range from 0 to the parameter number - 1. But, passing 0 as
parameter index, the methods threw - as intended - an
HDevEngineException. Passing the parameter number as index, the
program was aborted by an unexpected and unhandled out-of-range
exception instead of returning the last parameter name. This
problem has been fixed.
-
HDevEngine crashed if not all HALCON help files were installed
under %HALCONROOT%\help or if HALCONROOT accidentally pointed to
a different HALCON version, e.g., HALCON 8.0. This problem has
been fixed. Now, before starting HDevEngine it is checked
whether the help files are available and whether they have the
correct version. If the correct help files cannot be found, an
error message is displayed. In addition, an exception is thrown
that can be caught by an exception handler in the HDevEngine
application.
-
There was a memory leak in HDevEngine/COM when passing iconic
objects as input parameters to procedures. This problem has
been fixed.
-
Speed-Up and Enhancements:
-
Bug Fixes:
-
The class design of the HALCON Codelets was not consistent.
Furthermore, minor problems concerning the user interface
occurred. These problems have been fixed.
-
The latest information about new extensions and newly supported
image acquisition devices can be found on MVTec's web
server.
-
New Image Acquisition Interfaces:
-
HALCON now also includes the
Crevis interface which supports the USB 2.0 cameras from
Crevis Corporation. The new HDevelop example programs
crevis.dev, crevis_binning.dev, crevis_parameters.dev,
crevis_simple.dev, and crevis_trigger.dev in the directory
examples/hdevelop/Images/Acquisition show how to use this
interface.
-
Modified Image Acquisition Interfaces:
-
Quick Guide:
The Quick Guide has been briefly extended. In the
section describing HALCON regions, it now warns that
regions may be clipped to the default image size if they
are created or loaded before the first
image. Furthermore, it shows the value of the default
image size for HDevelop and for the programming
interfaces.
-
Installation Guide:
The Installation Guide is now available in a new edition.
Besides the adaptation to the changes of HALCON 9.0.1, the following
problem has been fixed: Table 3.1 of the Installation Guide
(table on license binding options) contained contradictory
entries for 64 bit platforms. Now, the table shows the correct
information:
-
On Windows x64, parallel port dongles are only supported if
running the 32 bit version of HALCON.
-
On Linux x86_64, USB port dongles are only supported if running
the 32 bit version of HALCON.
-
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 9.0.1.
-
Solution Guide I (Basics):
The Solution Guide I (Basics) is now available in a new
edition. In particular, the section about 1D bar codes has been
extended by additional information about the preprocessing of 1D
bar codes that are difficult to read. The new HDevelop
example program
examples/solution_guide/basics/barcode_typical_cases.dev shows
typical cases for the preprocessing of 1D bar codes. It uses the
new images ean13_to_preprocess_* from the subdirectory
images/barcode/ean13.
-
Solution Guide II-A on Image Acquisition:
The Solution Guide II-A on Image Acquisition is now
available in a new edition. In particular, the description of port
switching has been extended. The corresponding HDevelop example
program
examples/solution_guide/image_acquisition/port_switching_inspecta.dev
has been adapted accordingly.
-
Solution Guide III-C on 3D Vision:
The Solution Guide III-C on 3D Vision is now available in a
new edition. It has been extended by more detailed descriptions for
the sheet-of-light measurement, in particular the interpretation of
the gray values in the images resulting from the measurement is
discussed. Additionally, the documentation of pose origins for the
perspective, deformable matching and the descriptor-based matching
has been revised.
-
Programmer's Guide:
The Programmer's Guide is now available in a new edition. It
has been adapted to the changes in HALCON 9.0.1.
-
HALCON Operator Reference Manual:
-
The index in the PDF version of the Operator Reference
Manual did not contain the correct index texts. This problem
has been fixed.
-
Example code in the Reference Manuals can now be pasted into
HDevelop's full text editor. For this, operator calls that
are split over multiple lines now are marked with a backslash
at the end. Furthermore, in the PDF manuals correct quote
characters are used.
-
The Reference Manual entry of add_channels has been extended and
corrected.
-
Some of the examples in the Reference Manual entries of the
classification operators
contained errors. This problem has been fixed.
-
The Reference Manual entry of convol_image now describes how the
reference point of the mask is determined.
-
The Reference Manual entries of create_planar*_deformable_model and
find_planar*_deformable_model
now correctly state that also uint2 images as well as
multi-channel images are supported.
-
The Reference Manual entry of create_calib_descriptor_model has
been extended by information about the relation between the
reference pose and the internally derived model pose.
-
The Reference Manual entry of depth_from_focus falsely stated
that if odd values are used for the parameter Filter, the
next larger odd value is used. This problem has been
fixed. Additionally,
the Reference Manual entry of depth_from_focus now
describes the parameters Filter and Selection in more
detail.
-
The Reference Manual entry of div_image now states that for a
division by zero the result is set to zero instead of being
undefined.
-
The Reference Manual entries of edges_image, sobel_dir, frei_dir, and prewitt_dir were incorrect. They
showed wrong directions for the gradients in the lists that
explain the edge direction. This problem has been fixed.
-
The Reference Manual entries of edges_sub_pix, edges_color_sub_pix, lines_facet, lines_gauss, and lines_color were extended by a note
on the dependence of the temporary memory requirements on
the height of the input region.
-
The Reference Manual entry of find_planar_calib_deformable_model
accidentally mixed up the calibrated and the uncalibrated
operators. This problem has been fixed.
-
The Reference Manual entry of gen_image_surface_first_order was
wrong. The description refered to gen_image_surface_second_order
instead of gen_image_surface_first_order. This
problem has been fixed.
-
The Reference Manual entries of the operators gen_image_to_world_plane_map, gen_radial_distortion_map, gen_arbitrary_distortion_map, gen_grid_rectification_map, and
gen_binocular_rectification_map
have been extended by the information that you can save the
created maps as multi-channel images with the operator
write_image, using the format
'tiff'.
-
The Reference Manual entries of gray_erosion_rect, gray_dilation_rect, gray_opening_rect, and gray_closing_rect now list uint2
as valid input image type.
-
The Reference Manual entry of integer_to_obj now states that the
value 0 must not be passed to SurrogateTuple.
-
The Reference Manual entry of mirror_image has been extended. It
now states that the diagonal mode can only be applied for
images having the same width and height.
-
The Reference Manual entry of phot_stereo now states that the
runtime of the operator can be influenced by a previous call
to optimize_fft_speed.
-
The Reference Manual entry of proj_match_points_ransac_guided
referred under 'See also' to the operator itself instead of
proj_match_points_ransac. This
problem has been fixed.
-
The example program in the Reference Manual entry of new_extern_window contained an incorrect parameter. This problem has been
fixed.
Additionally,
the Reference Manual entry of new_extern_window
suggested that the position of the external window can be
modified using set_window_extents. It now clearly
states that only the size of the external window can be
modified.
-
The Reference Manual entry of remove_noise_region now explains
the various possibilities for the parameter Type.
-
The Reference Manual entry of set_window_dc contained errors in
the examples. This problem has been fixed.
-
The Reference Manual entry of set_window_param contained a wrong
default value for the generic parameter
'axis_captions'. This problem has been fixed.
-
The Reference Manual entry of write_image has been reformatted to
make it easier to read.
-
HALCON Codelets Reference Manual:
A new reference documentation for the HALCON Codelets is provided
that can be used in the online help of Visual Studio. Every class
contains an API specification that includes a class summary and
detailed descriptions of important class members, constants, and
methods. An HTML version can be accessed
via the Windows start menu or via the file index.html in
the subdirectory doc\html\reference\codelets of the
folder where you installed HALCON.
-
Installation:
-
A runtime installer under Windows that also supports silent
installations is now available for download. Please refer to the
MVTec's download
area for more information about how to use it.
-
When checking online for updates, the installer now will not only
check for newer maintenance releases but also for hotfixes of the
current release.
-
Some temporary files were not removed from the %TEMP% directory
after running the installer or uninstaller. This problem has
been fixed.
-
If the system path under Windows was longer than 1024 characters
it was overwritten by the HALCON installer (instead of appended
to). This problem has been fixed.
-
Example Images:
|
|