MVTec Software GmbH
  Building Vision For Business


 
  Release Notes for HALCON 8.0.2  
 

 

This document provides the release notes for MVTec HALCON 8.0.2, as released in April 2008. HALCON 8.0.2 is primarily a maintenance release that fixes all known bugs in HALCON 8.0.1; besides, it provides added functionality and speed-ups.




Overview

This document contains the following information:

Compatibility
Major New Features of HALCON 8.0.2
Detailed Description of Changes in HALCON 8.0.2
Major New Features of HALCON 8.0.1
Detailed Description of Changes in HALCON 8.0.1
Major New Features of HALCON 8.0
Detailed Description of Changes in HALCON 8.0 (relative to HALCON 7.1.2)
Major New Features of HALCON 7.1
Detailed Description of Changes in HALCON 7.1.2
Detailed Description of Changes in HALCON 7.1.1
Detailed Description of Changes in HALCON 7.1




Compatibility

o Licenses

HALCON 8.0 licenses are also valid for HALCON 8.0.1 and HALCON 8.0.2. In contrast, all HALCON 7.1 licenses must be replaced or upgraded. Please contact your local distributor.



o HALCON Library

HALCON 8.0.2 is fully compatible with HALCON 8.0. Compared to HALCON 7.1, many extensions have been introduced. Thus, the HALCON 8.0.2 libraries are not compatible with HALCON 7.1 or earlier versions.



o HALCON Applications

Applications (i.e., executables) developed with HALCON 8.0 can be used with HALCON 8.0.2, i.e., HALCON 8.0.2 is binary compatible with HALCON 8.0.

The incompatibility with HALCON 7.1 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 8.0 and HALCON 8.0.1, respectively.

Please note that applications using HALCON/.NET (and HDevEngine/.NET) have local copies of the corresponding assemblies (halcondotnet.dll etc.). After installing HALCON 8.0.2, these applications would therefore still use the old HALCON versions. You must either replace the assemblies manually or re-compile the projects.


o Image Acquisition Interfaces

If you have developed your own acquisition interfaces with HALCON 8.0 or HALCON 8.0.1, you can use them with HALCON 8.0.2 without further action. Because of the new version of the HALCON Acquisition Integration Interface in HALCON 8.0, acquisition interfaces developed with HALCON 7.1.x or lower are not binary compatible, but mostly source-code compatible with 8.0.


o Extension Packages

Extension packages developed with HALCON 8.0 or HALCON 8.0.1 can be used with HALCON 8.0.1 without further action. Extension packages developed with HALCON 7.1.x must be re-generated.


o ActivVisionTools

Only ActivVisionTools 3.2 can be used directly with HALCON 8.0.2 because it is based on HALCON 8.0.2. All older ActivVisionTools versions are based on HALCON 7.1.1 or below; by installing HALCON 8.0.2, you would thus disable such an ActivVisionTools installation. Therefore, the setup program of HALCON 8.0.2 checks whether there is an ActivVisionTools installation on your computer.

  • If it detects ActivVisionTools 3.2, no further action is required, as this version is compatible to HALCON 8.0.2.
  • If it detects ActivVisionTools 3.1 or ActivVisionTools 3.1.1, please contact your distributor for further information on how to run this version together with HALCON 8.0.2.
  • In contrast, ActivVisionTools 1.0 to 3.0 cannot be used with HALCON 8.0.2. If the setup program detects such an ActivVisionTools version, it warns you that by continuing to install HALCON 8.0.2 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 8.0.2

General Features

o Bar code reader:
  • The HALCON bar code reader is now significantly faster.
  • The bar code reader provides new parameters, in particular parameters that can be used to access the scanlines that are used to decode the bar code, parameters that can be used to either query the orientation of the already decoded bar code or to restrict the search of the bar code to a specific orientation range, and a parameter that sets the minimum height for the bar code elements.
  • The bar code reader now supports Composite codes that are attached to RSS bar codes.

o Image Acquisition Interfaces:

HALCON now also includes an universal interface to access all GigE Vision compliant cameras.



HDevelop

o Image Acquisition Assistant:

The parameter GUI of the HDevelop Image Acquisition Assistant has been significantly improved.



o Supported Languages:

Italian has been added to the list of supported HDevelop GUI languages.



o Open Example dialog:

The HDevelop Open Example dialog now provides a revised selection of examples in the category Operator.



o General Usabilty:

The general usability of HDevelop has been enhanced in many ways.





Detailed Description of Changes in HALCON 8.0.2

Detailed release notes can be obtained for the following topics:

HDevelop
HALCON Library
HALCON/C
HALCON/C++
HALCON/.NET
HDevEngine
Extension Package Interface
Image Acquisition Interfaces
Miscellaneous

HDevelop

o Speed-Up and Enhancements:
  • The HDevelop Open Example dialog now shows HDevelop examples for each operator as long as at least one suitable example is available. For operators that are used in a large amount of examples, a selection of relevant examples is displayed.
  • The HDevelop Help now supplies the possibility to print the shown help file or a part of it.
  • Within the Graphics Window, it is now possible to display the current pixel position as well as the gray value(s) as a tool tip directly next to the mouse cursor. This mode is activated by holding the Ctrl key pressed and left by releasing the key. This mode is not available if the Graphics Window is in the Zoom mode.
  • The parameter GUI of the Image Acquisition Assistant has been significantly improved. For most acquisition interfaces, more sliders, value lists and parameter tooltips are available. Parameters can be sorted alphabetically, and filtered by logical category or level of expertise when such information is provided by the acquisition interface. Alternating background colors improve the readability.
o Functionality:
  • When exporting the operator read_image to C and C++, HDevelop no longer automatically exports a special error handling mechanism.
  • HDevelop's External Procedures tab of the Preferences dialog now provides the opportunity to display the listing of a procedure by a double click.
  • HDevelop's Find/Replace dialog now allows the selection of more than one result. While the dialog has the focus (if in MDI mode) the Cut/Copy/Delete/Activate/Deactivate tool buttons of the main window now work on the selection in the Find/Replace dialog's result view. These actions can also be triggered with a new context menu on the result view. The context menu is also supported in SDI mode.
  • The list of operators that is displayed in the combo box labeled 'Enter Operator or Procedure' in the Operator Window now starts with the operators or procedures that begin with the given string, followed by the operators that contain the string. Both lists are arranged in alphabetical order.
  • A program line can be selected for being edited in the Operator Window by clicking on that line in the Program Listing. If the user clicked into the listing before the operator was re-entered into the program, until now, the connection between the program line and the Operator Window was lost and pressing OK or Enter in the Operator Window entered a new program line with the selected operator into the program at the current insert position. This behavior was counterintuitive and sometimes confusing, because new operators could be added to the listing unintentionally. Therefore the behavior has been changed in the following way:

    • As long as the program line that was selected for editing exists (i.e., as long as neither the program line nor the containing procedure has been deleted), it will be replaced when 'OK' or 'Replace' is pressed within the Operator Window.

    • Which of the two different modes of the Operator Window - editing and replacing an existing program line or creating and inserting a new line - is currently active, can easily be recognized both by the title bar of the Operator Window and by the labels of the Enter/Replace button:

      If an existing program line is edited, the title bar of the Operator Window shows: Edit: '<operator name>' in procedure '<procedure name>' line <num> and the 'Enter' button is renamed into 'Replace'.

      Otherwise the title bar shows: Insert: '<operator name>' and the Enter button keeps the label 'Enter'.

    • In addition, the program line that is being edited in the Operator Window is marked in the listing by using a different font emphasis.

    Attention: Pressing the 'Replace' button will replace the original program line even if a different procedure is displayed in the Program Listing.

  • If the block begin and end statements of a loop or conditional block were disabled, e.g., by selecting them and pressing F4, the indentation of all statements within this block in relation to the block begin and end statements were removed. Especially in cases where several blocks are nested and the outer block as a whole is disabled, the structure of the code was lost by this behavior because all operator indentations were reset to the outer block. For keeping the block structure, the behavior was changed so that the indentation of all operators is now preserved no matter whether validly connected block statements are enabled or disabled. Block statements that are not connected and therefore invalid, have, as before, no influence on the indentation.
  • The status bar now collects a history of the latest execution messages and displays them as the tool tip of the status bar's message area. This is particularly helpful in the following cases:

    1. If the execution of several operators is stopped by a 'stop' statement, the status bar displays the message: "Automatic program stop; press Run (F5) to continue". This message hides another message that displays the number of executed operators, the execution time, and the name of the operator that was called most recently.

    2. For measuring the execution time of a specific operator, the operator can be executed for several times, just by placing the program counter on it and pressing F6 again and again. Afterwards the status bar history tool tip displays a collection of the latest execution times of this operator.

    3. For comparing the execution time of several operators (e.g., for comparing the time consumption of alternative approaches) the operators can easily be executed one after the other with F6. Afterwards the status bar history allows to compare the execution times at a glance.

    The history can be copied to the clipboard by an appropriate entry in the context menu of the status bar.

  • The HDevelop Help window contains on the left-hand side a tab card that was named 'Index'. On this tab card, all HALCON operators are listed in alphabetical order. Because the list is not a general index, this tab card was renamed into 'Operators'.
  • HDevelop now has new Help menu entries as shortcuts to the help pages for the HDevelop Language, the HDevelop Reference and the HALCON Reference.
  • HDevelop now offers a context menu entry 'Sort by Name' and 'Sort by Occurrence' in the Variable Window.
  • The Variable Window of HDevelop has a new tab card 'User' to define your own view of iconic and control variables. The default view of the user tab card is empty. Which variables are displayed can be selected via the context menu of the Variable Window.
  • Within the Variable View, the context menu of the control variable table offers a new entry for copying the selected variable values to the global clipboard. If the Variable View has the keyboard focus, Ctrl-C can be used as an alternative. Tuples with zero or more than one values are returned in tuple notation: [.., ..]. If several variables are selected, the tuples of the different variables are separated by a new line.
  • The Variable Inspection dialog shows in the lower part some statistics and meta information about the values displayed in the upper part of the table. The kind of information that is displayed can be selected via the context menu. So far, this context menu could be opened only by clicking on the left part of the table. This was changed so that now the context menu can be opened by clicking anywhere in the statistics table.
  • HDevelop now always opens one Graphics Window on startup and will not reopen the Help Window even if it was open at the end of the last HDevelop session.
  • If an image with gray values 128 was displayed in the Graphics Window and an HALCON draw operator was executed, the cursor was no longer invisible. The cross cursor has been replaced by a cursor that is always visible.
  • When loading all images from a directory using the Image Acquisition Assistant, the new option "recursive" can now be used to load images from subdirectories as well.
  • Italian has been added to the list of supported HDevelop GUI languages.


o Bug Fixes:
  • Sometimes the text in the HDevelop popup window had too many word wraps. This problem has been fixed. Now, the text in the HDevelop Demo popup window is correctly displayed.
  • HDevelop crashed if New Program was selected from the menu or tool bar and at the same time no Operator Window was open. This problem has been fixed.
  • HDevelop crashed if an error variable that was created by dev_error_var was removed from the procedure by Cleanup and afterwards any operator was executed. This problem has been fixed.
  • HDevelop exported for loop statements incorrectly to C++ if the loop variable was an output control parameter (of the procedure containing the for loop statement) and the increment value for the loop variable (step) was not a constant. This problem has been fixed.
  • The Visualization menu that can be opened via the main menu or as the context menu of the Graphics window has a submenu for setting the paint mode that is used for displaying images in the Graphics window. In contrast to the Visualization Parameters dialog, using this submenu for setting the paint mode, e.g., to '3D-plot', did not work. This problem has been fixed.
  • HDevelop crashed if after inserting a program at the end of the current HDevelop program by 'File - Insert Program - Insert All' and removing it with 'Undo' (Ctrl-Z), again a program was inserted into the program. This problem has been fixed.
  • The Preferences dialog contains a spin box 'Indent' under 'User Interface/Program Listing' for changing the indentation of loop bodies in the program listing. However, changing the value had no effect on the procedures that had already been displayed until the program was reloaded or HDevelop was closed and started again. This problem has been fixed.
  • HDevelop deleted all parameters from the Procedure Interface dialog if the Reset button was clicked twice. This problem has been fixed.
  • Using HDevelop's Procedure Interface dialog may have lead to unusable procedures if text containing newlines was pasted into the Short Description or the Chapter of the procedure interface. This problem has been fixed.
  • HDevelop crashed if the appropriate procedure path was removed from the list of managed external procedure paths after making a local procedure external. This problem has been fixed.
  • HDevelop did not propagate changes in the chapter entries of procedures to the menu hierarchy and allowed more than one sub-chapter hierarchy. These problems have been fixed.
  • If an external procedure file with a corrupt interface description was referenced by the external procedure path, HDevelop crashed when HDevelop tried to load the procedure. This problem has been fixed.
  • HDevelop's Histogram dialogs ignored the new lower display limit when zooming with the mouse. This problem has been fixed.
  • HDevelop's Feature Histogram was empty on reopening. This problem has been fixed.
  • When a feature was selected that is not supported (e.g., gray_anisotropy when the input image is of type int2) the Feature Histogram displayed an incorrect histogram, and error messages were displayed when low level errors are enabled. These problems have been fixed. Now, the Histogram dialog displays a well-defined (i.e., empty) histogram, and the low level error messages are blocked. Furthermore, an appropriate error message is displayed in the histogram's plot area.
  • HDevelop's Gray Histogram sometimes displayed int2 images incorrectly. This problem has been fixed.
  • If in the Operator Window an operator is selected for entering it into the program, the combo boxes of the parameter edit fields display a list of appropriate variables. Here the following error occurred: If the semantic type of a parameter was not 'any', e.g., 'numeric' or 'string', variables with a semantic type of 'attribute' or 'pose' were not suggested in that variable/value list. The problem has been fixed. This error did not occur if under 'Preferences->General Options->Experienced User' the option 'Ignore semantic type' was checked.
  • HDevelop froze if in the Operator Window a HALCON operator was selected, parameterized, and then - by keeping the Enter key pressed - continuously entered into the program and executed. This problem has been fixed.
  • If an operator was executed by clicking the Apply button in the Operator Window, the information that was displayed in the status bar was often wrong:

    1. Instead of the name of the applied operator the name of the operator that was executed before via a normal execution action was displayed.
    2. Messages like 'No more lines to execute...', 'Executed n program lines in...', or 'Automatic program stop...' remained visible.
    3. In some rare cases the execution time was wrong.

    These problems have been fixed.

  • The output control parameters of procedures were not suggested in the Operator Window as input parameters of subsequent operators. This error occurred only if the experienced user preference 'Ignore semantic type' was unchecked (default). This problem has been fixed.
  • In old HDevelop programs (8.0 and earlier), reserved identifiers (like 'continue') could be used as variable names. If such a program was loaded into HDevelop 8.0.1, these variables were renamed by adding _AUTO_RENAME_ as a prefix. However, for input control variables the renaming did not work properly: Although the variable names were replaced in the listing, a variable with the old, reserved name was still referenced by some operators. This produced an error during program execution. This problem has been fixed.
  • The list of suggested values for the parameter 'Mode' of the internal HDevelop operator dev_set_paint contained wrong value names and 'Mode' was erroneously labled as 'string'. These problems have been fixed. Now, 'plot' is replaced by '3D-plot', 'plot_hidden" is replaced by '3D-plot_hidden', and the parameter is correctly labeled as 'Mode'.
  • Some HDevelop tuple comparison functions sometimes returned erroneous results if at least one tuple contained more than one element. This problem has been fixed.
  • Running an HDevelop program via the 'Run Until Here' entry of the Program Window's context menu did not work when

    • either the mouse cursor was below the last line of the main procedure
    • or over the return statement of a procedure.

    Instead of the program execution, no action at all took place. This problem has been fixed.

  • Setting a breakpoint, the insert cursor, or the program counter on the final 'return' statement of a procedure via the context menu of the Program Window did not work. In addition, while setting breakpoints on the selected program lines via the 'Execute' menu, the 'return' statement was ignored. These problems have been fixed.
  • The HDevelop Help browser sometimes showed a wrongly rendered window title. This problem has been fixed.
  • The links in the pages that are displayed in the HDevelop Help as well as the links to the corresponding parameter descriptions did not work correctly in some cases. This problem has been fixed. The links to the parameter description work correctly for all languages except Japanese.
  • Several calls of the Variable Inspection Window with identical variables did always open a new window instead of simply showing or reopening the respective window. This problem has been fixed.
  • While drawing an ROI within the Matching Assistant, it was possible to execute the program. This could have led to inconsistent states and thus could have caused HDevelop to crash. This problem has been fixed. Now, the program execution is disabled as long as an ROI is drawn. Furthermore, the stop button is enabled and can be used to cancel the ROI creation.
  • If within the Matching Assistant the drawing of an ROI was immediately aborted by clicking the right mouse button without drawing anything before with the left mouse button, an error message was returned. In addition, sometimes this message was not clickable and the application was frozen in the draw-a-region-mode, i.e., most of the actions were disabled until one clicked somewhere with the right mouse button again. This problem has been fixed.
  • The Matching Assistant has a check box on the Model Creation tab card under Advanced Model Parameters that controls whether the shape model has to be pregenerated completely at creation time (in create_*_shape_model) or not. This setting was not considered for the code that was generated by the assistant, i.e., the generated call of create_*_shape_model did not set the second value of the Optimization parameter to 'pregeneration' or 'no_pregeneration'. This might result in a different behavior of the generated program in contrast to the Matching Assistant, i.e., shape models that were found within the Matching Assistant might not be found by the generated code. This problem has been fixed.
  • In the Matching Assistant for good reasons the buttons for drawing an ROI are disabled as long as no model image is loaded. However, via the Create Model / Create ROI menu it was possible to perform these drawing actions without an image. This resulted in an error message and might even have crashed HDevelop. This problem has been fixed. As long as no model image is loaded, the appropriate menu entries are disabled, too.
  • If in the Matching Assistant a test image was removed from the Model Use / Test Images table after 'Detect All' was executed, the table was not correctly updated. The entries in the columns Visible and Detected for test images that followed after the removed images were not moved one row up together with the filename entry. This problem has been fixed.
  • If within the Matching Assistant an arbitrary (free-hand) model region was drawn as the model ROI and afterwards the assistant settings were saved into a .das file, the ROI was not correctly restored by reloading the assistant settings (.das) file into another Matching Assistant. This problem has been fixed.
  • Buttons of some message boxes in HDevelop did not adapt their text when a different language was selected, i.e., they still contained the default text. This problem has been fixed. Note that for the adaptation of the text of the message box buttons HDevelop has to be restarted.
  • The syntax switch in the HDevelop Help browser is no longer ignored if the language is set to Japanese. Now, the appropriate help files are shown.
  • The Solution Guide I is no longer incorrectly listed as 'Quick Guide to HALCON' in results obtained from HDevelop's built-in search engine.


o Examples:
  • The example examples/hdevelop/Applications/Barcode/RSS14Truncated.dev has been adapted to the separation of the bar code symbol RSS-14 Truncated from the previously used pure RSS-14.
  • The new example programs examples/hdevelop/Applications/Barcode/barcode_param_orientation.dev and examples/hdevelop/Applications/Barcode/barcode_orientation.dev demonstrate the usage of the new bar code parameters 'orientation' and 'orientation_tol'. The first one uses the new example image images/barcode/25interleaved/barcode/25interleaved/25interleaved16.png.
  • The new example program examples/hdevelop/Applications/Barcode/inspect_scanlines.dev demonstrates how to visualize the scanlines used to decode a bar code candidate. It uses the new example images 'ean1313.png' and 'ean1314.png' in the directory images/barcode/ean13/.
  • The new example program examples/hdevelop/Applications/Barcode/barcode_param_element_height_min.dev demonstrates the usage of the new bar code parameter 'element_height_min'.
  • The new example program examples/hdevelop/Applications/Barcode/RSSComposite.dev demonstrates how to read Composite codes attached to RSS bar code symbols. It uses the new example images 'rss14_stacked_composite_01.png', 'rsslimited_composite_01.png', and 'rssexpanded_composite_01.png' in the directory images/barcode/rss_composite.
  • The following new example programs in examples/hdevelop/Image/Acquisition show how to use the new image acquisition interfaces:
    • abs.dev, abs_crop.dev, abs_do_parameter.dev, abs_parameters.dev, and abs_simple.dev,
    • gigevision.dev, gigevision_frame_rate.dev, gigevision_parameters.dev, and gigevision_simple.dev,
    • linx.dev, linx_2boards.dev, linx_2ports.dev, linx_2simultaneous.dev, linx_cont.dev, and linx_simple.dev,
    • menablevisualapplets.dev, menablevisualapplets_continuous.dev, menablevisualapplets_parameters.dev, and menablevisualapplets_simple.dev,
    • vrmusbcam.dev, vrmusbcam_2cameras.dev, vrmusbcam_crop.dev, vrmusbcam_parameters.dev, vrmusbcam_simple.dev, and vrmusbcam_trigger.dev

    Besides, the following examples have been modified in the above directory:



o Manuals:
  • The HDevelop User's Guide is now available in a new edition. It has been adapted to the changes in HALCON 8.0.2. Furthermore, the layout has been enhanced for the description of the 'Edit->Preferences->General Options' dialog.
  • With the release of HALCON 8.0, the behavior of the 'return' statement changed when it is executed in the 'main' procedure: the operator is no longer ignored but the program counter jumps to the program end, i.e., the program is finished. Nevertheless, the documentation was still describing the old behavior. The documentation was updated according to the new behavior.


HALCON Library

o Speed-Up and Enhancements:
  • The HALCON bar code reader has been enhanced in many ways:
    • find_bar_code is now faster and uses less memory. The average speed-up is roughly a factor of five and the used memory is about three times less. These values just indicate the magnitude of the improvements and can largely vary depending on the specific image content.
    • find_bar_code now takes the bar code symbol RSS-14 Truncated as a separate code type. To read RSS-14 Truncated, choose the parameter CodeType equal to 'RSS-14 Truncated' instead of 'RSS-14'. The separation leads to a faster reading of the normal RSS-14 symbol. The example program examples/hdevelop/Applications/Barcode/RSS14Truncated.dev has been adapted accordingly.
    • get_bar_code_object now provides parameters to visualize the scanlines used to decode a bar code candidate. This can be used to inspect the reader's behavior. The example program examples/hdevelop/Applications/Barcode/inspect_scanlines.dev demonstrates this functionality. It uses the new example images 'ean1313.png' and 'ean1314.png' in the directory images/barcode/ean13/.
    • get_bar_code_result has got a new parameter 'orientation' with which the bar code reader returns the orientation of an indentified bar code. Furthermore, the bar code reader provides a mechanism to constrain the searching of bar codes to a restricted orientation range by setting the parameters 'orientation' and 'orientation_tol' in set_bar_code_param. The new example programs examples/hdevelop/Applications/Barcode/barcode_param_orientation.dev and examples/hdevelop/Applications/Barcode/barcode_orientation.dev demonstrate this functionality. The first one uses the new example image images/barcode/25interleaved/barcode/25interleaved/25interleaved16.png.
    • The HALCON bar code reader now has a new parameter for the minimal bar code height, called 'element_height_min'. The default value of this parameter is -1, meaning that the bar code reader automatically chooses the right height. The height of the bar code should be set by the user only in case of very flat or very high symbols. The example program examples/hdevelop/Applications/Barcode/barcode_param_element_height_min.dev demonstrates this functionality.
    • The HALCON bar code reader now is able to read Composite codes attached to RSS bar code symbols. The decoding of Composite codes is switched on and off by calling set_bar_code_param(...,'composite_code','CC-A/B') and set_bar_code_param(...,'composite_code','none'), respectively, before find_bar_code is executed. The example program examples/hdevelop/Applications/Barcode/RSSComposite.dev demonstrates this functionality. It uses the new example images 'rss14_stacked_composite_01.png', 'rsslimited_composite_01.png', and 'rssexpanded_composite_01.png' in the directory images/barcode/rss_composite.
    • The linkage flag stored internally in all RSS bar codes is now returned as the first of the reference values accessible through get_bar_code_result(...,'decoded_reference',...). The reference value is 1 if the linkage flag was set, which means that there is a Composite code attached to the RSS symbol. The value is 0 if the linkage flag is not set.
    • The HALCON bar code reader now is able to read EAN symbols with add-ons even if the add-on region is not part of the main candidate region. Now, the user should adjust the 'element_size_max' parameter just to the widths of the bars and spaces of the principal symbol part and no longer as large as the gap between main and add-on part.
  • auto_threshold, eliminate_min_max, mean_sp and eliminate_sp now support uint2 images. select_gray now supports uint2 images for the features 'moments_row', 'moments_column', 'alpha', and 'beta'. And histo_to_thresh now supports histograms derived from uint2 images, i.e., histograms with more than 256 entries.
  • union2 is now faster by up to 30%.
  • HALCON is now able to read RGB BMP files with 10 bits per pixel.


o Modified Operators:
  • distance_pl, in addition to the calculation of the distances between n points and n lines, now supports the calculation of the distances between a tuple of points and one line and the calculation of the distances between a tuple of lines and one point..
  • distance_pp, distance_pl, distance_ps, distance_ss, distance_sl, distance_pr, distance_lr, distance_sr, intersection_ll, angle_ll, angle_lx, and projection_pl now allow tuples with more than 10000 elements.
  • find_bar_code now decodes only bar codes that have start and stop patterns. Previously, this was not required and sometimes was resulting in identification of arbitrary texture patterns as valid codes. In particular, the affected code types were '2/5 Industrial', '2/5 Interleaved', 'Code 39', and 'Code 93'.
  • get_grayval now supports tuples with more than 100000 elements.
  • min_max_gray with Percent > 0 now supports the same image types as min_max_gray with Percent = 0 (i.e., byte, direction, cyclic, int1, int2, uint2, int4, and real).
  • select_characters no longer removes small regions in 'step2_partition_characters'. Thus, the minimum value of CharHeight and CharWidth must no longer be set to very small values for dot prints.
  • set_spy now supports the display of XLD contours. This can be achieved via set_spy('input_xld_window', window_handle).
  • The HALCON 2D data code readers support the ECI protocol that can be used to switch between different coding tables. If these ECI codes are used by the symbols, the different symbology specifications require that normal backslashes (characters with ASCII code 92) must be doubled for the output. On the other hand, if the ECI protocol is not used within an application, doubling of data backslashes is not what users expect and should be omitted. This was not implemented consistently by the HALCON data code readers: while the ECC200 reader always doubled all backslashes, the QR code and the PDF417 readers did never double any backslashes. In addition, this behavior was not sufficiently documented. Now, the behavior has been changed in the following way: For all symbologies applies that the data code readers will double data backslashes if the symbol contains at least one ECI code, otherwise backslashes are not doubled. The information whether the symbol has ECI codes or not can be obtained (as before) from the symbology identifier that can be queried by get_data_code_2d_result. For more information see the references of the operators create_data_code_2d_model and get_data_code_2d_result.


o Bug Fixes:
  • add_image sometimes returned incorrect results for uint2 and int2 images that are close to their respective saturation limit if the processor does not support MMX or MMX has been disabled via set_system.

    Additionally, add_image sometimes returned erroneous results for uint2 images on Linux systems when using MMX. These problems have been fixed.

  • add_image, sub_image, mult_image, and div_image did not clip their results in the case of int4 images. This caused incorrect results due to integer overflows if the precision of the int4 data type is not sufficient for the result. This problem has been fixed.
  • area_center_xld returned results that were slightly inaccurate on SSE2 and 64 bit architectures. The relative error was up to 0.01 % compared to the results achieved on non-SSE2 architectures. This problem has been fixed.
  • camera_calibration returned slightly inaccurate results on SSE2 and 64 bit Intel architectures. This problem has been fixed.
  • close_contours_xld sometimes crashed when the affected contours had attributes. This problem has been fixed.
  • connect_grid_points had a memory leak. This problem has been fixed.
  • create_cam_pose_look_at_point did not handle input tuples of different lengths correctly. For example, if in CamPosX, CamPosY, and CamPosZ more than one value was passed while in LookAtX, LookAtY, and LookAtZ only one value was passed, the error message 1204 ("Wrong type of control parameter: 4") was returned. This problem has been fixed. Now, the maximum number of parameter values over all input control parameters is computed that defines the number of output camera poses. If a parameter does not contain either 1 or the maximum number of values, an appropriate error message is returned. If the parameter contains 1 value, this value is used to compute all camera poses. If the parameter contains the maximum number of values, for each pose the value with the corresponding index is used. The documentation of create_cam_pose_look_at_point has been adapted accordingly.
  • create_shape_model, create_scaled_shape_model, and create_aniso_shape_model sometimes retured the error 3513 ("Internal error: number of chords to big for num_max") or the error 6041 ("No memory block allocated at last"). This happened if the width of the bounding box of the input image domain was large in comparison to its height.

    Additionally, create_shape_model, create_scaled_shape_model, and create_aniso_shape_model sometimes returned the error 6041 ("No memory block allocated at last") if the parameter Contrast was set to either 'auto', 'auto_contrast', or 'auto_contrast_hyst' and additionally MinContrast was set to 'auto'. This for example happened if an artificial model image was passed and the minimum contrast was estimated too high such that not enough model points could be found that exceeded the minimum contrast. These problems have been fixed. For the latter problem, now, in these cases the more appropriate error 8510 ("Number of shape model points too small") is returned instead.

  • crop_rectangle1 returned the error 1303 ("Wrong value of control parameter: 3") or 1304 ("Wrong value of control parameter: 4") if 0 was passed as parameter Row2 or Column2, respectively. This problem has been fixed.
  • dev_close_inspect_ctrl had no effect on variable inspection windows that were opened for image acquisition device handles. This problem has been fixed.
  • disp_obj and disp_region returned the error 3510 ("Exceeding the maximum number of run lengths while automatical expansion") in very rare cases if the region to be displayed had to be scaled down to fit the window. The same applied to disp_image with images with reduced domains. This problem has been fixed.
  • distance_transform did not work correctly if Metric was set to 'euclidean', Foreground was set to 'false', and the input region contained parts of the first line of the output image. In this case the resulting transformation was erroneous. This problem has been fixed.
  • dist_ellipse_contour_points_xld crashed if radius2 was equal to zero and if at least one end point was clipped. This problem has been fixed.

    Additionally, the following changes have been made. If the ellipse is degenerated to a line dist_ellipse_contour_points_xld and dist_ellipse_contour_xld('geometric') are now based on a measure that is the shortest distance to the line segment instead of the orthogonal distance to the line.

  • draw_nurbs and draw_nurbs_mod caused an abnormal program termination if they were terminated by a click of the right mouse button or the HDevelop stop button while no control point has been drawn. This problem has been fixed.
  • edges_image and edges_sub_pix in some cases returned wrong results for the filters 'shen' and 'mshen'. This problem has been fixed.
  • erosion1, erosion2, minkowski_sub1, and minkowski_sub2 returned an empty region in the case of an empty structuring element in very rare cases. The correct result is a region containing the full image domain. The same problem applied to the operator closing_golay in the case of the golay element 'h' and Rotation=0, the operator opening_golay in the case of the golay element 'h' and Rotation=1, and the operator erosion_golay in the case of the golay element 'h' and Rotation=1. This problem has been fixed.
  • evaluate_class_gmm did not work correctly for GMM classifiers with reduced feature dimensions (i.e., classifiers created with 'principal_components' or 'canonical_variates' in the parameter Preprocessing and NumComponents < NumDim). This problem has been fixed.
  • expand_gray and expand_gray_ref sometimes returned the error 6041 ("No memory block allocated at last") if the input regions did not lie completely within the extents of the input image. This problem has been fixed.
  • find_data_code_2d failed to decode big QR codes (version 10 and bigger) that contained data blocks in pure numeric mode (status message: "decoding failed: inconsistent data"). This problem has been fixed.

    Additionally, find_data_code_2d in some rare cases had a small memory leak when called on an ECC200 DataMatrix model. The memory leak could occur in conjunction with symbols that cannot be read owing to decoding errors, i.e., for symbols where the error correction works correctly but there are inconsistencies in the data. This problem has been fixed.

  • find_marks_and_pose crashed in rare cases when using unoriented calibration plates. This problem has been fixed. It now returns error number 8417 ("fitting of calibration target failed") in these cases.
  • find_shape_model, all variants thereof, and find_shape_model_3d in rare cases returned the error 3513 ("number of chords too big for num_max") if an input image with a reduced domain was passed. In particular, this error occurred if the width of the input image was small in comparison to its height. This problem has been fixed.
  • find_shape_model_3d did not work correctly if the range of allowed camera-object distances was specified by passing 'dist_min' or 'dist_max' for the generic parameter GenParamNames and passing appropriate values for the generic parameter GenParamValues. If the specified distance range would lead to a restriction of the distance range that was specified during the creation of the 3D shape model (create_shape_model_3d), find_shape_model_3d always returned without a result. This problem has been fixed.
  • fit_circle_contour_xld and fit_ellipse_contour_xld crashed if more than 50000 contours were used as input. This problem has been fixed.
  • fit_ellipse_contour_xld had a memory leak if Algorithm was set to 'focpoints' and the error 9101 ("No (unique) solution for the linear equation") was returned.

    Additionally, fit_ellipse_contour_xld did not check the correctness of the parameter VossTabSize if Algorithm was set to 'voss'. In the special case that VossTabSize was set to 0, HALCON crashed. These problems have been fixed. For the latter, now an appropriate error message is returned.

  • fit_surface_first_order and fit_surface_second_order crashed with empty input regions if the system variable 'empty_region_result' was set to something else but 'true' using the operator set_system. This problem has been fixed.
  • get_contour_angle_xld returned incorrect results if the input contour was closed. This problem has been fixed.
  • get_data_code_2d_results(...,'quality_isoiec15415',...) had a memory leak if used for print quality assessment of PDF417 symbols. This problem has been fixed.
  • If the contour of a full ellipse (i.e., the absolute value of the difference between StartPhi and EndPhi corresponds to 2*PI) was computed using gen_ellipse_contour_xld, this contour was not closed in very rare cases. This problem has been fixed.
  • gen_radial_distortion_map returned the error 3513 ("number of chords too big for num_max") if the width of the resulting map exceeded approximately twice its height, where the width and height of the resulting map is defined in CamParOut. This problem has been fixed.
  • golay_elements did not set the reference point correctly. The column coordinate of the reference point was always set to the passed row coordinate. This problem has been fixed.
  • gray_dilation_shape, gray_erosion_shape, gray_closing_shape, and gray_opening_shape returned striped results for uint2 images if parallelized on domain level. This problem has been fixed.
  • harmonic_interpolation sometimes returned images that contained edges in areas that should have been interpolated smoothly. This problem has been fixed.
  • histo_to_thresh returned slightly wrong results in rare cases. Especially for large values of sigma, the histogram minima for large gray values might have been erroneous. This problem has been fixed.
  • hough_lines, hough_lines_dir, and hough_line_trans_dir crashed in rare cases. This problem has been fixed. Please note that the fix causes the height of the resulting HoughImage in hough_line_trans_dir to increase by up to 2 pixels.

    Additionally, hough_lines and hough_lines_dir sometimes returned a wrong line. This happened if no line in the input region existed that is supported by at least Threshold pixels. In this case, the line that is represented by Angle = -PI/2 and Dist = 0.0 was returned. This problem has been fixed. Now, an empty tuple is returned for Angle and Dist instead.

    Furthermore, hough_lines wrongly allowed Threshold values below 2. However, in this case no meaningful lines were returned because at least two points are necessary to define a line. This problem has been fixed. Now, hough_lines returns an appropriate error message if Threshold is set to a value below 2.

  • junctions_skeleton in rare cases returned the error 6002 ("Memory partition on heap has been overwritten"). This problem occurred only if the input region contained lines which were more than one pixel wide. This problem has been fixed.
  • inner_rectangle1 sometimes returned rectangles that were too large. This problem has been fixed.
  • inspect_shape_model crashed under very rare circumstances if multichannel images were used and 'trace_memory' was set to 'false' (which is the case if the option in Edit -> Preferences... -> General Options -> Experienced User -> Show memory usage is not checked). This problem has been fixed.
  • lines_gauss in rare cases returned the error 6002 ("Memory partition on heap has been overwritten"). This problem has been fixed.
  • mean_image crashed if the input image was only one pixel high and the parameter MaskWidth was set to 1. The same problem applied to images of one pixel width if the parameter MaskHeight was set to 1. This problem has been fixed.
  • median_weighted caused a memory or heap error in rare cases when running with mask type 'gauss'. This problem has been fixed.
  • paint_gray, overpaint_gray, and expand_domain_gray sometimes returned the error 3146 ("Target image has wrong height (not big enough)") if the domain of the input image was empty. This problem has been fixed.
  • paint_xld returned slightly inaccurate results on SSE2 and 64 bit architectures. The error was relative in the size of the input contour's coordinates. This problem has been fixed.
  • projective_trans_image and projective_trans_image_size sometimes returned an incomplete result image. This might have happened if the transformation of the complete input image crossed the line at infinity. In this case, the domain of the transformed image might have been incomplete. This problem has been fixed.
  • query_param_info crashed. This problem has been fixed.
  • read_class_gmm sometimes crashed. This problem has been fixed.
  • read_class_gmm had a small memory leak. This problem has been fixed.
  • read_image, when called with a filename containing a file extension, removed the extension from the input string. This problem has been fixed.
  • read_image did not read binary PBM files with a width that is not a multiple of 8 correctly. This problem has been fixed.
  • read_ocr did not read classificators correctly that contained the feature 'gradient_8dir' as the only gray value based feature. Subsequent calls using this classificator resulted in a crash. This problem has been fixed.
  • read_region returned erroneous regions when BMP images were read. This problem has been fixed.
  • read_tuple sometimes read strings with blanks incorrectly. This problem has been fixed. Now, it reads blanks at the beginning of a string and strings containing only blanks correctly.
  • receive_region did not receive arrays of regions on socket connections. This problem has been fixed.
  • region_to_bin, when called with a region array, has written only the last region of the array to the output image. This problem has been fixed. Furthermore, the operator returned wrong results when being parallelized on tuple level. Now, the operator cannot be parallelized on tuple level automatically anymore.
  • region_to_label and region_to_mean returned wrong results when being parallelized on tuple level. Now, the operators cannot be parallelized on tuple level automatically anymore.
  • scale_image returned wrong results for byte and int4 images if the gray values were very large and if the scale was very close to 1. For byte images, this occurred only if MMX was disabled.

    Additionally, scale_image with int4 images produced incorrect results if scale factor and offset were chosen in such a way that the resulting image was close to the saturation limit of the int4 data type (+/-2147483647). These problems have been fixed.

  • segment_characters did not work if the region set by the parameter Region was not the whole domain of the image. This problem has been fixed.
  • select_characters sometimes returned the HALCON error 6000 ("Access to undefined memory area"). This problem has been fixed.
  • select_lines_longest returned the error 6002 ("Memory partition on heap has been overwritten") on all 64 bit architectures in most cases. If no error was reported, the results of the operator may have been erroneous (on 64 bit architectures). This problem has been fixed.
  • select_gray crashed if the string 'max' was passed as parameter Max. This problem has been fixed.
  • With set_spy set to the mode 'input_gray_window' or 'input_region_window', the associated window was not correctly refreshed. This problem has been fixed.
  • test_equal_obj sometimes returned the error 4052 ("Image data management: wrong object-ID"). This always happened when an XLD contour was compared with a non-equal object. This problem has been fixed.
  • text_line_orientation and text_line_slant did not concatenate the result tuples when using Parallel HALCON. This problem has been fixed.
  • text_line_slant returned the error 3513 ("number of chords too big for num_max") in rare cases. This problem has been fixed.
  • train_class_svm crashed in rare cases on 64 bit architectures if the kernel type 'rbf' was selected with create_class_svm. This problem has been fixed.
  • trainf_ocr_class_svm and train_class_svm returned the error message "Nu was chosen too big" if the training data did not contain samples for all classes. Now the error 3392 ("Train data does not contain all classes") is returned in this case.
  • tuple_pow always returned an output parameter of type real, even if both input parameters were of type integer. This problem has been fixed. Now, if both input parameters are of type integer, the output parameter is also of type integer.
  • tuple_strrchr crashed on 64 bit systems if the string length of tuple T1 was 0. This problem has been fixed.
  • Some HALCON tuple comparison operators sometimes returned erroneous results if at least one tuple contained more than one element. This problem has been fixed.
  • var_threshold crashed if the size of the filter mask exceeded the image size. Now, an appropriate error message is returned.
  • write_image only wrote the first channel of a multichannel image correctly to a JPEG2000 file if the format of the input channels was int1, int2, uint2, or int4. All subsequent channels were written with a constant gray value of 0. This problem has been fixed.
  • write_string did not use the default font set by the operator set_system('default_font', font_name) under Windows. This problem has been fixed.
  • The version information in the HALCON DLLs and EXEs now show the correct internal and original file names. Previously, for DLLs and EXEs that belong to Parallel HALCON, e.g., parhalcon.dll, the internal and original file names did not have the "par" prefix.


o Manuals:
  • The Solution Guide I (Basics) is available in a new edition. It was adapted to the enhanced HALCON bar code reader.
  • The Solution Guide II-C on 2D Data Codes is available in a new edition. The section about print quality now is a separate chapter.
  • The Programmer's Guide is available in a new edition. It now clarifies that I/O operations including visualization can only be performed in the same thread, but not necessarily in the main thread. Besides, it now describes the output of the HALCON/C++ method HCtrlVal.ValType in more detail.
  • The Installation Guide is available in a new edition. The Windows installer in rare cases failed to detect SSE2 capabilities. Now, the Installation Guide describes how to avoid this problem using a command line switch.
  • The reference manual entry of create_cam_pose_look_at_point was adapted to the changed handling of input tuples of different lenghts.
  • The reference manual entry of get_data_code_2d_results and the Solution Guide II-C on 2D Data Codes stated that the persistence has to be set to one before calling the operator for print quality inspection of ECC200 and QR-Code data codes. This statement is obsolete and has been removed.
  • For create_data_code_2d_model and get_data_code_2d_result, the reference manual entries were adapted to the modified behavior concerning ECI codes.
  • The reference manual entry of set_font has been extended by a description of the font string on UNIX systems.
  • The reference manual entry of fit_surface_first_order and fit_surface_second_order did not document the computation of the center coordinates r_center and c_center correctly. This has been corrected.


HALCON/C

o Bug Fixes:
  • In single value API variants, output data type mismatch between integers and doubles is now resolved by casting the value instead of raising an exception. The most obvious effect is the usability of "double HImage.GetGrayval(int,int)" for non-float images.


HALCON/C++

o Bug Fixes:
  • HALCON crashed in rare cases when using the C++ language interface with Parallel HALCON. Standard HALCON was only concerned when using draw operators and message pipes with events starting procedures containing HALCON operators. This problem has been fixed.
  • The Hobject constructors of iconic classes caused a crash when the ID in question was obtained from an object without explicit initialization, which is usually treated as an empty region in HALCON/C++. This problem has been fixed.
  • The HALCON/C++ member function HTuple::Xor() returned erroneous results if the function arguments were not 0 or 1. This problem has been fixed.
  • The last tuple element of the result of the HALCON/C++ member function HTuple::Split() always contained an empty string. This problem has been fixed.
  • The HALCON/C++ member function HTuple::StrBitSelect() returned a tuple with only one element (containing the result for the first element of the calling HTuple object), instead of returning a tuple of the same size as the calling HTuple object. Furthermore, HTuple::StrBitSelect() sometimes returned an erroneous result for input parameters of type integer. These problems have been fixed.
  • Some HALCON/C++ tuple comparison member functions in class HTuple sometimes returned erroneous results if at least one tuple contained more than one element. This problem has been fixed.


HALCON/.NET

o Bug Fixes:
  • In some cases, no exception was raised if an error occurred during an operator call. This problem has been fixed. The problem was restricted to special error codes with values less than 1000, such as H_MSG_FAIL. Known affected operators include GetMposition and SocketAcceptConnect.
  • The HObject constructors of iconic objects, such as HImage(HObject obj), only copied the first element if the input was an object tuple. This problem has been fixed.
  • HALCON/.NET applications raised the wrong exception when encountering a license error in HALCON 8.0.1. Furthermore, that exception was of a type which could only be caught when using Visual Studio 2005. This problem has been fixed.


HDevEngine

o Bug Fixes:
  • There was a potential memory leak when using HDevEngine/.NET to run programs or procedures using dev_display and rerouting output by custom HDevOperator implementations or convenience implementations such as HDevOpFixedWindowImpl. This problem has been fixed.

    Attention: When providing a custom implementation for DevDisplay, please note that the input object is now only valid inside the body of the DevDisplay handler. HDevEngine/.NET will clear the input object after the call has returned.

  • With HDevEngine/.NET, it was not possible to pass tuples with mixed content as input parameters of procedures. This problem has been fixed.

Extension Package Interface

o Examples:
  • The implementation of the operator user_area in the sample extension package halconuser used a large static array, causing a stack overflow when calling HHalconuser.UserArea from a .NET application. This problem has been fixed.


Image Acquisition Interfaces

The latest information about new extensions and newly supported image acquisition devices can be found on MVTec's web server.



o New Image Acquisition Interfaces:
  • HALCON now also includes the HALCON ABS interface to support ABS UK1000/3000 cameras. The new example programs abs.dev, abs_crop.dev, abs_do_parameter.dev, abs_parameters.dev, and abs_simple.dev in the directory examples/hdevelop/Image/Acquisition show how to use this interface.
  • HALCON now also includes an universal HALCON GigEVision interface to support all GigE Vision compliant cameras. Note that this new interface is based on an user-space implementation of the GigE Vision protocol and is available for Windows x86 and Linux. The interface is based on GenICam 1.1, which is installed automatically during the installation. The new example programs gigevision.dev, gigevision_frame_rate.dev, gigevision_parameters.dev, and gigevision_simple.dev in the directory examples/hdevelop/Image/Acquisition show how to use this interface.
  • HALCON now also includes the HALCON LinX interface to support LinX GINGA digital-CL1e/CL2e/CL4e and GINGA++M1e/M4e boards. The new example programs linx.dev, linx_2boards.dev, linx_2ports.dev, linx_2simultaneous.dev, linx_cont.dev, and linx_simple.dev in the directory examples/hdevelop/Image/Acquisition show how to use this interface.
  • HALCON now also includes the HALCON mEnableVisualApplets interface to support Silicon Software microEnable boards via VisualApplets. The new example programs menablevisualapplets.dev, menablevisualapplets_continuous.dev, menablevisualapplets_parameters.dev, and menablevisualapplets_simple.dev in the directory examples/hdevelop/Image/Acquisition show how to use this interface.
  • HALCON now also includes the HALCON VRmUsbCam interface to support VRmagic USB cameras. The new example programs vrmusbcam.dev, vrmusbcam_2cameras.dev, vrmusbcam_crop.dev, vrmusbcam_parameters.dev, vrmusbcam_simple.dev, and vrmusbcam_trigger.dev in the directory examples/hdevelop/Image/Acquisition show how to use this interface.


o Modified Image Acquisition Interfaces:
  • The following HALCON image acquisition interfaces have been revised since HALCON 8.0.1:
    • For the 1394IIDC interface a problem in open_framegrabber has been fixed to prevent a possible crash due to an erroneous memory access. Furthermore, the new revision supports the usage of interlaced gray-scale cameras.
    • For the BaumerFCAM interface a problem has been fixed in the operator get_framegrabber_param('image_available') concerning the 2^16 frame counter wraparound.
    • The BitFlow interface now is based on the new BitFlow SDK 5.00 that supports also the new Alta-AN, Karbon-CL, and Neon-CL boards. Additionally, the interface provides a new parameter for discarding all image buffers in the output buffer queue in continuous grabbing mode. Furthermore, a problem has been fixed in the serial communication with Camera Link cameras.
    • The INSPECTA5 interface and the INSPECTA interface had problems in buffer handling when switching from asynchronous to synchronous grabbing. This problem has been fixed.
    • The iPORT interface provides the new parameter 'image_available' and several problems have been fixed for the parameter handling within the operators info_framegrabber and open_framegrabber.
    • The LuCam interface provides new parameters for iris and lens control as well as for controlling the digital input/output lines of the camera.
    • The MatrixVisionAcquire interface had a problem in acquiring the first image in case that the buffer queue size was set to 1. This problem has been fixed. Additionally, problems have been fixed in the operator grab_image_start as well as in the parameters 'available_param_names', 'available_param_types', and 'available_param_description'.
    • The mEnableIII / mEnableIV interfaces and the mEnable3 interface had a problem in the operator info_framegrabber('info_boards') when having multiple boards installed. This problem has been fixed.
    • The MultiCam interface has been adapted to the MultiCam driver version 6.0 and supports now also the new GRABLINK Express boards from Euresys. Furthermore, six new parameters allow the software control of all digital input and output lines. The example program multicam_parameters.dev shows how to use this functionality.
    • The pylon interface has been adapted to the new Basler pylon SDK version 2.0 (with support of the new pilot and runner camera models). Furthermore, the new interface revision provides additional color transformation functionality and fixes a bug in continuous grabbing mode.
    • The RangerC and RangerE interfaces have been adapted to the new Sick IVP SDK version 3.3 and problems have been fixed for buffer handling, triggering, and error handling in case of grab timeouts. Additionally, problems have been fixed in info_framegrabber to prevent accessing uninitialized memory.
    • For the SaperaLT interface some problems concerning the parameter