MVTec Software GmbH
  Building Vision For Business


Release Notes for HALCON 7.1.1

This document provides the release notes for MVTec HALCON 7.1.1, as released in April 2006. HALCON 7.1.1 is primarily a maintenance release that fixes all known bugs in HALCON 7.1; besides, it provides added functionality and speedups.



Overview

This document contains the following information:

Compatibility
Detailed Description of Changes in HALCON 7.1.1
Major New Features of HALCON 7.1
Detailed Description of Changes in HALCON 7.1
Detailed Description of Changes in HALCON 7.0.2
Detailed Description of Changes in HALCON 7.0.1
Detailed Description of Changes in HALCON 7.0



Compatibility

o Licenses
    HALCON 7.1 licenses are also valid for HALCON 7.1.1. In contrast, all HALCON 7.0 licenses must be replaced or upgraded. Please contact your local distributor.

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

o HDevEngine

o HALCON Applications
    Applications (i.e., executables) developed with HALCON 7.1 can be used with HALCON 7.1.1, i.e., HALCON 7.1.1 is binary compatible with HALCON 7.1.
    C or C++ programs developed with HALCON 7.0.x must be re-compiled. The incompatibility with HALCON 7.0 or earlier versions mainly concerns the binaries, with only few changes in the operators' signatures. If you encounter problems during recompiling your programs, please check the detailed description of changes below and look up the signatures of the concerned operators in the reference manual.

o Frame Grabber Interfaces
    If you developed your own frame grabber interfaces with HALCON 7.1, you can use them with HALCON 7.1.1 without further action. Frame grabber interfaces developed with HALCON 7.0.x and 6.1.x are binary compatible with HALCON 7.1.1, interfaces developed with older versions must be re-generated.

o Extension Packages
    Extension packages developed with HALCON 7.1 can be used with HALCON 7.1.1 without further action. Extension packages developed with HALCON 7.0.x must be re-generated.

o ActivVisionTools
    Only ActivVisionTools 3.1 can be used directly with HALCON 7.1.1 because it is based on (a modified version of) HALCON 7.1. All older ActivVisionTools versions are based on HALCON 7.0.1 or below; by installing HALCON 7.1.1, you would thus disable such an ActivVisionTools installation. Therefore, the setup program of HALCON 7.1.1 checks whether there is an ActivVisionTools installation on your computer.
    • If it detects ActivVisionTools 3.1, no further action is required, as this version is compatible to HALCON 7.1.1.
    • If it detects ActivVisionTools 3.0, please contact your distributor for further information on how to run this version together with HALCON 7.1.1.
    • In contrast, ActivVisionTools 1.0 to 2.2 cannot be used with HALCON 7.1.1. If the setup program detects such an ActivVisionTools version, it warns you that by continuing to install HALCON 7.1.1 you will disable your ActivVisionTools installation.

      If you still want to use your ActivVisionTools installation you must also keep your old HALCON installation and switch back to it as described in the "Installation Guide".



Detailed Description of Changes in HALCON 7.1.1

Detailed release notes can be obtained for the following topics:

HDevelop
HALCON Library
HALCON/C++
HALCON/COM
HALCON/C
HDevEngine
Frame Grabber Interfaces
HMatchIt
Miscellaneous

HDevelop

o Enhancements
  • There is now a mechanism to control the readability of external HDevelop procedures. It is now possible for the user to enter a password, which is used to control the readability of an external procedure after it is loaded in HDevelop. It is not possible to view the content of a locked external procedure or to modify it in any way until it is unlocked by entering the correct password.

o Functionality
  • The HDevelop function remove now returns the original input tuple if the second parameter is the empty tuple.

o Bug Fixes
  • The HDevelop function deviation now returns the correct value if the deviation is nearly 0.
  • HDevelop sometimes crashed after aborting draw_* operators via the menu item Execute->Stop. This problem has been fixed.
  • The following problems with procedures have been fixed:
    • HDevelop displayed an unnecessary error message when loading an external procedure and an equally named procedure was already loaded.
    • It sometimes loaded programs containing external procedure calls incorrectly.
    • It crashed when trying to write a modified external procedure to file and the file properties did not allow modification, e.g., the file properties were set to read only. If a program was loaded in HDevelop at the time of the crash, the corresponding HDevelop program file would be corrupted.
    • When starting HDevelop from the command line in run mode and an external procedure path was set, HDevelop stopped execution immediately after the last external procedure had been loaded.
    • Loading an HDevelop program could leave the currently displayed procedure in an inconsistent state. This happened if the displayed procedure was external and contained variables.
  • HDevelop sometimes remained in an inconsistent state after cutting, deleting, or deactivating loop structures. This problem has been fixed.

o Manual:
o Examples
  • The new example programs in examples/application_guide/2d_data_codes/hdevelop show how to use HALCON's data code reader. They belong to the new Application Note on 2D Data Codes.
  • The following new example programs in examples/hdevelop/Image/Framegrabber show how to use the new frame grabber interfaces:
    • 1394iidc.dev, 394iidc_2cameras.dev, 1394iidc_camera_types.dev, 1394iidc_crop.dev, 1394iidc_format7.dev, 1394iidc_parameters.dev, 1394iidc_simple.dev, 1394iidc_software_trigger.dev
    • inspecta5.dev, inspecta5_parameters.dev, inspecta5_simple.dev, inspecta5_trigger.dev
    • matrixvisionacquire.dev, matrixvisionacquire_properties.dev, matrixvisionacquire_crop.dev, matrixvisionacquire_parameters.dev, matrixvisionacquire_simple.dev, matrixvisionacquire_multiple_instances.dev
    • millite.dev, millite_2ports.dev, millite_simple.dev, millite_1394_parameters.dev, millite_parameters.dev, millite_trigger.dev
    • saperalt.dev, saperalt_2boards.dev, saperalt_2cameras.dev, saperalt_crop.dev, saperalt_lut.dev, saperalt_parameters.dev, saperalt_simple.dev
    • sonyxci.dev, sonyxci_parameters.dev, sonyxci_simple.dev
    • excite.dev, excite_parameters.dev, excite_simple.dev

HALCON Library

o Speedup and Enhancements
  • The following operators using the Gauss filter now are significantly faster: derivate_gauss, critical_points_sub_pix (when setting Filter to 'gauss'), edges_sub_pix (when setting Filter to 'canny'), edges_color_sub_pix (when setting Filter to 'canny'), lines_gauss and points_foerstner (when setting Smoothing to 'gauss'), points_harris, points_sojka, corner_response, saddle_points_sub_pix, and connect_grid_points. The obtained speedup strongly depends on the operator and on the chosen parameter values and varies from about 10 to 200 percent.
  • The operators dump_window and dump_window_image are now significantly faster under Windows.
  • The operator points_foerstner is now faster when setting Smoothing to 'gauss'. The obtained speedup depends on the chosen parameters and is about 200% when using the default parameters.
  • The operator get_system now runs significantly faster.
  • The operators proj_match_points_ransac, match_rel_pose_ransac, match_fundamental_matrix_ransac and match_essential_matrix_ransac are now faster. The speedup varies and mainly depends on the used mask size.

o Modified Operators
  • The operator camera_calibration is now able to use up to 1000 calibration images.
  • The formula of the color space transformation 'cielab' of the operator trans_from_rgb is incorrect. To keep compatibility, a new color space 'cielab_new' with the correct transformation has been introduced. Besides, 'cielab_new' increases the accuracy for byte images using a more suitable scaling of the a and b channels. Additionally, the scaling of the results in case of int4 and float color images changed and is now consistent.

    The operator trans_to_rgb now also provides the new color space transformation 'cielab_new'.

    Note that 'cielab_new' will be renamed to 'cielab' in upcoming HALCON versions.

  • The operator tuple_remove now returns the original input tuple if the second parameter is the empty tuple.
  • The operators vector_to_fundamental_matrix, vector_to_essential_matrix and vector_to_rel_pose now provide an algorithm for the case of pure translation between the cameras. In this case the minimal required number of corresponding points is just two.
  • The operators vector_to_rel_pose and vector_to_essential_matrix now provide a new algorithm for which a minimum number of only six point correspondences is sufficient. The operators can also handle the special case where all 3D scene points lie in a single plane and are all closer to one of the cameras. Then, two solutions exist which are both contained in the output parameters.
  • HALCON windows now set the WM_CLASS property under UNIX. This enables the configuration of, for example, window decorations with certain window managers.

o Bug Fixes
  • Some operators (e.g., add_image) crashed when the input object contained 20 or more images. Roughly spoken, this problem affected operators with at least two iconic input parameters that accept image tuple and/or multi-channel images, and an iconic output parameter. This problem has been fixed.
  • The operators affine_trans_image and affine_trans_image_size in rare cases rounded the gray values incorrectly. This problem has been fixed.
  • The operator append_ocr_trainf crashed if the existing trainfile was not writable. Now, the error message "Error while opening the file" will be returned in these cases.
  • The operator create_component_model in rare cases got stuck within an infinite loop. This happened if the reference points of two components had a distance in the model image of exactly VariationRow and VariationColumn in row and column direction, respectively. This problem has been fixed.
  • The operator create_trained_component_model sometimes computed a wrong root ranking when dealing with symmetric components. This happened if during the training with train_model_components the angle search range was restricted by setting SearchAngleTol to a value that was below the rotational symmetry of the components, for example, if SearchAngleTol was set to a value below 90 degrees for a square component. In this case the rotational symmetry of the components were not taken into account when computing the root ranking during the model creation by using create_trained_component_model. Thus, rotationally symmetric components, which should not be used as the root components, might have been ranked too optimistic. This problem has been fixed.
  • The operator camera_calibration crashed in rare cases. Now, the error message "Camera calibration did not converge" will be returned in these cases.
  • The operator clear_all_variation_models crashed after check_par_hw_potential had been called. This problem has been fixed.
  • The operator depth_from_focus returned the error 1500 ("Number of input objects too big") in large images. This problem has been fixed.
  • The operator diff_of_gauss crashed if the parameter SigFactor was set to 1.0. This problem has been fixed.
  • The operator draw_xld did not finish when running Parallel HALCON. This problem has been fixed.
  • The operator dump_window_image no longer causes a memory leak.
  • The operator exhaustive_match_mg sometimes returned error 6002 ("Memory partition on heap has been overwritten") if the template was bigger than the image matrix. This problem has been fixed.
  • The operator find_data_code_2d showed the following problems: In some rare cases on an ECC200 data code model, the operator led to the error message "Memory partition on heap has been overwritten". When using PDF417 symbols and called in training mode, the operator in some cases adapted the model even if the symbol could not be read. In some other cases the symbol could be read before starting the training but could not be trained. In some rare cases the find_data_code_2d had a problem with some square ECC200 symbols: The operator could decode the symbol if the model was set to enhanced_recognition, but if the model was adjusted to the correct symbol size, it was not possible to decode the symbol. These problems have been fixed.
  • The operator find_marks_and_pose sometimes returned an inaccurate start pose. This problem has been fixed.
  • The operator find_shape_model and all variants thereof in rare cases returned wrong results for reduced domains. Here, wrong means that if the reduced domain contained the match that would be found if find_shape_model were applied to the entire image, find_shape_model returned a different match on the reduced domain. This problem has been fixed.

    Note that in rare cases existing applications using find_shape_model or variants of it now might miss the correct match when dealing with a reduced domain. These applications should be adapted in the following way: It must be ensured that the domain on the highest pyramid level is at least of size 3x3. Thus, the input domain on the lowest pyramid level must be chosen to be at least of size 3*pow(2,n-1) in both dimensions, where n denotes the number of pyramid levels.

  • The operator fit_ellipse_contour_xld sometimes returned wrong results for the parameters StartPhi and EndPhi if the parameter Algorithm was set to 'geometric', 'geohuber' or 'geotukey'. This problem has been fixed. Furthermore, the operator did not work properly for contours which are straight lines. Called with the parameter Algorithm set to 'fitzgibbon', 'fhuber' or 'ftukey' threw an error. Called with Algorithm set to 'geometric', 'geohuber', or 'geotukey' hung the program execution. Now, fit_ellipse_contour_xld detects the degeneracy and returns an ellipse with Radius1 equal to half the length of the line and Radius2 equal to zero.
  • The operators fit_ellipse_contour_xld and fit_line_contour_xld crashed if ClippingEndPoints was larger than the number of contour points. Now, the operators fit_circle_contour_xld, fit_ellipse_contour_xld, and fit_line_contour_xld check if sufficient contour points are available for fitting the respective model, and if not they all throw the same error indicating that problem.
  • In fit_surface_first_order and fit_surface_second_order the robust regression did not work correctly. This problem has been fixed.
  • The operator gen_arbitrary_image_map handled integer point coordinates incorrectly. This problem has been fixed.
  • The operator gen_checker_region sometimes returned the error 3503 ("Runlength row >= image height") or the error 3505 ("Runlength column >= image width"). The errors occurred if clip_region was set to 'true' using set_system and one of the parameters WidthRegion or HeightRegion exceeded the global maximum image width or height, respectively. This problem has been fixed.
  • The operator gen_circle in rare cases returned erroneous regions. This problem has been fixed.
  • The operator get_contour_angle_xld returned incorrect results for AngleMode = 'abs'. This problem has been fixed.
  • The operator gen_region_contour_xld did not observe the value of 'store_empty_region' that has been set with set_system. It always acted as if 'store_empty_region' were set to true. This problem has been fixed.
  • The operator gen_image_interleaved returned the error 3505 ("Runlength column >= image width") if no other HALCON image of at least the same size was already in use. This problem has been fixed.
  • The operator gen_region_contour_xld returned the error 6005 ("Tmp-memory management: Null pointer while freeing") if the contour contained coordinates that are outside the valid range for coordinates. Now, one out of the errors 3040, 3041, 3042, and 3043 is returned.
  • In the operator gen_ellipse_contour_xld, values of the parameter EndPhi greater than 2*PI were clipped to 2*PI. Now, all values are valid. The documentation has been adapted accordingly.
  • Some structuring elements of the *golay* operators were erroneous. This problem has been fixed.
  • The operators gray_dilation_shape, gray_erosion_shape, gray_opening_shape and gray_closing_shape returned wrong results at the left image border if MMX was enabled and a subpixel mask size was used. This problem has been fixed.
  • For some float images the operator gray_histo returned a wrong histogram. This behavior could also be observed with the gray histogram dialog in HDevelop. This problem has been fixed.
  • For the mode 'rectangle' gray_projections returned one value less in the output parameter VertProjection than it should. This problem has been fixed.
  • The operator image_to_world_plane crashed if the output image contained pixels that cannot be mapped because their correction caused by the radial distortion is undefined. This problem has been fixed.
  • Numerical values as input parameters caused info_framegrabber to crash. This problem has been fixed.
  • The operators inspect_shape_model and get_shape_model_contours now return consistent results. Sometimes, get_shape_model_contours returned additional contours that were not included in the model. Because the result of get_shape_model_contours is only used for visualization purposes, this did not affect the matching.
  • The operator mean_image sometimes returned the error 6002 ("Memory partition on heap has been overwritten") if the MMX acceleration was used. This problem has been fixed.
  • The operator open_file did not free file handles after an error occurred while opening a file. This problem has been fixed.
  • The operator open_window for window type 'pixmap' now works correctly for more than one window.
  • The operator phot_stereo sometimes returned different results when called multiple times. This was the case if the width or the height of the input images was an odd number. This problem has been fixed.
  • The operator points_foerstner sometimes crashed or returned different results when called multiple times when passing an image with a reduced domain and setting Smoothing to 'gauss'. This problem has been fixed.
  • The operators points_harris and points_foerstner sometimes returned the error 3513 ("Internal error: number of chords too big for num_max"). This problem has been fixed.
  • The operator proj_match_points_ransac in rare cases returned the error 3605 ("Projective transformation is singular"). This problem has been fixed.
  • The operator pruning sometimes returned the error 3510 ("Exceeding the maximum number of runlengths while automatical expansion"). This problem has been fixed.
  • Under Solaris, read_sequence produced output images for pixel type 'long' and 'signed short' with the wrong byte order. This problem has been fixed.
  • The operator read_image could not read very rare kinds of 32-bit BMP files. This problem has been fixed.
  • The operators read_ocr_trainf, read_ocr_trainf_names, read_ocr_trainf_select, and concat_ocr_trainf can now read an arbitrary number of train files and an arbitrary number of classes coded within these train files.
  • The operator regiongrowing_n somtimes returned results that didn't cover the whole input region. This problem has been fixed.
  • The operator scale_image did not work correctly for int2 images for certain scale factors. This happened only if MMX processing was enabled with set_system('mmx_enable','true') (the default). This problem has been fixed.
  • The socket communication operators send_region, receive_region and send_image, receive_image returned a memory error in some cases. This problem has been fixed.
  • The operators set_rgb and draw_lut now work correctly on a 256 color display under Windows.
  • The operator sobel_amp with FilterType = 'sum_abs' sometimes produced wrong results. The edge amplitude was sometimes much smaller than the maximum edge amplitude. This problem has been fixed.
  • The operator test_xld_point returned meaningless values if empty tuples were passed in Row and Column. Instead, test_xld_point now returns an empty tuple.
  • The operator var_threshold sometimes returned the error 3513 ("Number of chords too big for num_max"). This problem has been fixed.

o Manual
  • The new "Application Note on 2D Data Codes" shows you how to use HALCON's data code reader. It can be found via the Windows Start Menu or in the subdirectory doc/pdf/application_guide.

    It uses the new examples in the subdirectory examples/application_guide/2d_data_codes/hdevelop.

  • The "Quick Guide to HALCON" is available in a new edition. It has been adapted to the changes in HALCON 7.1.1 Furthermore, it now describes the pre-trained OCR fonts in more detail, so that you can easily find out which one is suitable for your application.
  • The "Installation Guide" is available in a new edition. It has been adapted to the changes in HALCON 7.1.1 and extended by a section that explains how to uninstall HALCON manually.
  • The documentation of expand_region now describes the limiting borders of the expansion when setting Mode to 'image'.
  • The documentation of find_neighbors wrongly stated that the city block distance is used to find neighboring regions. In fact, the chessboard distance is used. The documentation has been corrected accordingly.
  • The documentation of hough_line_trans and hough_line_trans_dir stated a wrong height of the output parameter HoughImage. It stated that the height corresponds to the diagonal of the surrounding rectangle of the input region. Instead, the height corresponds to the distance between lower right corner of the surrounding rectangle of the input region and the origin. The documentation has been corrected accordingly.
  • The documentation of set_serial_param now describes that timeouts on UNIX systems can only be specified in increments of 1/10 of a second.
  • The documentation of texture_laws falsely described an option for passing multiple FilterTypes in order to obtain a multi-channel image with the respective filter responses. However, only a single value is accepted by texture_laws. The documentation has been corrected accordingly.

o Miscellaneous
  • The operator tuple_deg has been moved from the chapter Tuple->Conversion to the chapter Tuple->Arithmetic.

HALCON/C++

o Bug Fixes
  • Some operations of iconic object classes of the standard HALCON/C++ interface (halconcpp.dll) under Windows operating systems were not thread-safe. This problem has been fixed.
  • The C++ function HTuple::Remove now returns the original input tuple if the second parameter is the empty tuple.

HALCON/COM

o Bug Fixes
  • The COM interface of Parallel HALCON was not thread-safe when using variant types. Furthermore, the following operators did not parallelize correctly on domain level: threshold, var_threshold, dyn_threshold, binocular_distance, binocular_disparity, add_image, sub_image, mult_image, div_image, min_image, max_image, rgb3_to_gray, trans_from_rgb, and trans_to_rgb. These problems have been fixed.

HALCON/C

o Bug Fixes
  • The tuple operations create_tuple, copy_tuple, resize_tuple, destroy_tuple, set_i, set_d, and set_s were not thread-safe, i.e., calling them in parallel from different threads could crash the application. This problem has been fixed.
  • The tuple operation resize_tuple caused a memory leak on condition that the tuple was made smaller and the discarded tuple items contained strings. This problem has been fixed.

HDevEngine

o Speedup and Enhancements
  • It is now possible to use HDevEngine in applications that can use COM, e.g., Visual Basic [.NET], C#, etc., via the new hdevenginex.dll. This DLL provides access to all functions in the HDevEngine via the native data types that are used in the HALCON/COM interface (HUntypedObjectX and Variants).

    The COM version of HDevEngine is also provided as a version that uses Parallel HALCON (parhdevenginex.dll). This version in thread-safe, but not reentrant. With it, you can use the automatic operator parallelization of Parallel HALCON in an application, but cannot execute multiple procedures in parallel.


o Functionality
  • The internal HDevelop operator dev_clear_obj is now implemented inside HDevEngine, analogously to the implementation in HDevelop. Correspondingly, the method DevClearObj has been removed from class HDevOperatorImpl, thus it is no longer possible to overwrite the implementation of dev_clear_obj with an user-defined method. Additionally, the methods DevUpdateVar, DevUpdatePC, DevUpdateWindow, DevUnmapProg, DevMapProg, DevUnmapVar, DevMapVar, DevUnmapPar, DevMapPar, DevCloseInspectCtrl, DevInspectCtrl, and DevClearObj have been removed from the class HDevOperatorImpl and therefore also cannot be implemented anymore. This means that the use of the HDevEngine is not source-code compatible to HALCON 7.1.
  • If an error occurs during the loading of a program or external procedure, an exception is now thrown in any case and all external procedures recursively loaded during the loading process are removed from the engine. Additionally, all newly loaded local procedures are also removed from the engine when failing to load a program.
  • It is now possible to specify the memory deallocation behavior inside HDevEngine regarding objects passed to the method HDevEngine::SetHDevOperatorImpl via an additional parameter. In case the parameter is set to true, the memory is deallocated inside HDevEngine (corresponding to the current behavior), otherwise the user is responsible for managing the corresponding memory.
  • There is now a version of HDevEngine that uses Parallel HALCON, i.e. the parallel versions of HALCON/C and the HALCON library. This version is threadsafe, but not reentrant, i.e., it is not possible to execute different procedures (or the same procedure or program) in different threads simultaneously. The main purpose of this version of the HDevEngine is to allow to use the automatic operator parallelization in Parallel HALCON.

o Bug Fixes
  • HDevEngine sometimes crashed when executing programs or procedure calls containing dev_open_window operator calls. This could happen if no user implementation of dev_open_window existed or the user implementation did not return a formally correct window handle in the corresponding overwritten method DevOpenWindow. This problem has been fixed.
  • Instances of class HDevEngineException sometimes did not contain the correct information. This problem has been fixed. Furthermore, the interface of the class has been modified so that member variables of type const char* are now of type char* and member functions are qualified as const. This means that the use of the HDevEngine is not source-code compatible to HALCON 7.1.
  • HDevEngine sometimes remained in an inconsistent state after an exception occurred during program or procedure execution. This problem has been fixed.
  • Calling the method HDevEngine::ExecuteProcedure repeatedly with the same input parameter (of type HDevProcedureCall) caused a memory leak in case the called procedure set output parameters. This problem has been fixed.
  • When the first instance of class HDevEngine was created, the HALCON data base was reset, i.e., all previously created HALCON objects were deleted. This problem has been fixed.

o Manual:
  • The new edition of the "Programmer's Guide" now explains how to use HDevEngine.

o Examples:
  • New examples have been added in the directory examples\hdevengine, which are described in the "Programmer's Guide". In this context, the directory structure has been modified and now looks as follows:
    • Examples for using HDevEngine in C++ applications reside in the subdirectory cpp, those for Visual Basic in the subdirectory vb, and examples for Visual Basic .NET in the subdirectory vb.net.
    • For each language, three examples are provided (in brackets the name for Visual Basic and Visual Basic .NET):
      • exec_program (ExecProgram) shows how to execute an HDevelop program.
      • exec_extproc (ExecExtProc) shows how to execute an external HDevelop procedure; this example replaces the former example fin.
      • error_handling (ErrorHandling) shows how to handle exceptions occurring in HDevEngine.
    • The Visual Studio workspace for the C++ examples has been adapted to the new examples and been renamed to i586-nt4.dsw.
    • The new subdirectory examples/hdevengine/hdevelop contains the HDevelop program that is executed by the corresponding examples. The subdirectory examples/hdevengine/procedures now contains additional procedures that are used by the examples for error handling.
    • The image sequence fin.seq has been moved from the subdirectory examples/hdevengine/images to the main image directory images. As a consequence the subdirectory examples/hdevengine/images has been removed.

Frame Grabber Interfaces

The latest information about new extensions and newly supported boards can be found on the image acquisition web page.

o New Frame Grabber Interfaces:
  • HALCON now also includes the generic 1394IIDC interface to support all IEEE 1394 (FireWire) cameras that are compliant with the IIDC 1394 standard under Windows. The new example programs 1394iidc.dev, 1394iidc_2cameras.dev, 1394iidc_camera_types.dev, 1394iidc_crop.dev, 1394iidc_format7.dev, 1394iidc_parameters.dev, 1394iidc_simple.dev, and 1394iidc_software_trigger.dev in the directory examples/hdevelop/Image/Framegrabber show how to use this interface.
  • HALCON now also includes a remote interface for Windows and Linux to the eXcite smart camera from Basler. The new example programs excite.dev, excite_parameters.dev, and excite_simple.dev show how to use this interface.
  • HALCON now also includes an interface to the INSPECTA-5 frame grabber boards from Mikrotron. The new example programs inspecta5.dev, inspecta5_parameters.dev, inspecta5_simple.dev, and inspecta5_trigger.dev show how to use this interface.
  • HALCON now also includes the MatrixVisionAcquire interface to support the mvBlueFOX USB 2.0 cameras from MATRIX VISION. The new example programs matrixvisionacquire.dev, matrixvisionacquire_properties.dev, matrixvisionacquire_crop.dev, matrixvisionacquire_parameters.dev, matrixvisionacquire_simple.dev, and matrixvisionacquire_multiple_instances.dev in the directory examples\hdevelop\Image\Framegrabber show how to use this interface.
  • HALCON now also includes the MilLite interface to support the Meteor-II, Helios, Solios, and Odyssey frame grabber boards from Matrox based on MIL-Lite 8.0. The new example programs millite.dev, millite_2ports.dev, millite_simple.dev, millite_1394_parameters.dev, millite_parameters.dev, and millite_trigger.dev in the directory examples\hdevelop\Image\Framegrabber show how to use this interface.
  • HALCON now also includes the SaperaLT interface to support the Bandit-II, PC2-CamLink, PC2-Vision, Viper, X64-CL, and X64-AN frame grabber boards from DALSA Coreco. The new example programs saperalt.dev, saperalt_2boards.dev, saperalt_2cameras.dev, saperalt_crop.dev, saperalt_lut.dev, saperalt_parameters.dev, and saperalt_simple.dev in the directory examples/hdevelop/Image/Framegrabber show how to use this interface.
  • HALCON now also includes the SonyXCI interface to support the XCI-SX1 smart cameras from Sony. The new example programs sonyxci.dev, sonyxci_parameters.dev, and sonyxci_simple.dev in the directory examples\hdevelop\Image\Framegrabber show how to use this interface.

o Modified Frame Grabber Interfaces
  • The following HALCON frame grabber interfaces have been revised: BitFlow, DFG-LC, DirectFile, DirectShow, IDS, INSPECTA, Meteor-II, MilLite, MultiCam, TWAIN, and uEye.
  • Please refer to the corresponding documentation for information about additional changes, especially whether a new revision of the corresponding device driver is required.

  • Note that it is no longer necessary to register the HALCON frame grabber interface for DirectShow and for the DirectShow file reader manually. Instead, upon the first call to open_framegrabber the DLL performs the necessary steps itself.

HMatchIt

o Functionality
  • Test images were not displayed correctly if their size differed from that of the model image. This problem has been fixed.
  • HMatchIt sometimes crashed after returning the error 8510 ("Number of shape model points too small"). This happened if the chosen model ROI did not contain a sufficient number of pixels that exceeded the specified contrast values. This problem has been fixed.

Miscellaneous

o Example Images
  • New example images have been added in the subdirectories of images/datacode; they are used in the examples in the new Application Note on 2D Data Codes.
  • The image sequence fin.seq that is used in the examples for HDevEngine has been moved from the subdirectory examples/hdevengine/images to the directory images.

o Installation
  • To ensure the execution of HMatchIt, the HALCON setup program now also installs the Windows Common Controls ActiveX Control files MSCOMCTL.OCX and MSCOMCT2.OCX as well as the Microsoft Standard Data Formatting Object DLL MSSTDFMT.DLL.
  • In addition to the error code the HALCON setup program now displays the full error message in case of move data errors.
  • In some cases, the uninstallation process didn't restore the system path variable %PATH% correctly and didn't delete the HALCON environment variables %HALCONROOT% and %HALCONIMAGES%. This happened in case the registry key HKEY_LOCAL_MACHINE\Software\MVTec\HALCON\7.1 was not empty at the end of the uninstallation process, especially when Parallel HALCON was used and, thus, the parallelization information was still stored under this registry key. This problem has been fixed.


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






Webmaster Last modified: Fri December 15 17:32:04 CET 2006