{"id":29588,"date":"2026-08-31T00:17:28","date_gmt":"2026-08-30T22:17:28","guid":{"rendered":"https:\/\/www.heliotis.com\/tutorials2\/getting-started-with-the-helialgo-library\/"},"modified":"2026-08-31T10:25:31","modified_gmt":"2026-08-31T08:25:31","slug":"getting-started-with-the-helialgo-library","status":"publish","type":"tutorial","link":"https:\/\/www.heliotis.com\/en\/tutorial\/getting-started-with-the-helialgo-library\/","title":{"rendered":"Getting Started with the heliAlgo Library"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Summary<\/h2>\n\n<p class=\"wp-block-paragraph\">The <strong>heliAlgo Library<\/strong> extends classic machine vision software with specialized algorithms for processing Heliotis 3D measurement data. Many of these algorithms leverage specific knowledge of Heliotis measurement principles and data, and are also used internally in Heliotis reference and production software.<\/p>\n\n<p class=\"wp-block-paragraph\">heliAlgo is not intended as a replacement for existing machine vision libraries, but as a complement. The algorithms can be combined with HALCON, OpenCV, custom algorithms, or other components of an existing machine vision application.<\/p>\n\n<p class=\"wp-block-paragraph\">Bindings are available for <strong>C\/C++, CLR (C#, LabVIEW), Python, Rust, HALCON, and Aurora Vision<\/strong>. Regardless of the API, the same core algorithms are used.<\/p>\n\n<p class=\"wp-block-paragraph\">The standard packages of the heliAlgo Library are <strong>available free of charge<\/strong>. Only the <strong>ISO Roughness<\/strong> package for calculating surface parameters in compliance with the standard requires an additional license.<\/p>\n\n<figure class=\"wp-block-video\"><video height=\"1080\" style=\"aspect-ratio: 1920 \/ 1080;\" width=\"1920\" controls=\"\" poster=\"https:\/\/www.heliotis.com\/wp-content\/uploads\/2026\/08\/heliAlgo_tutorial.webp\" src=\"https:\/\/www.heliotis.com\/wp-content\/uploads\/2026\/08\/heliAlgo-intro_1.mp4\"><\/video><\/figure>\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n<h1 class=\"wp-block-heading\">Quick Start<\/h1>\n\n<h3 class=\"wp-block-heading\">1. Download and install heliAlgo<\/h3>\n\n<p class=\"wp-block-paragraph\">The current version of the heliAlgo Library can be downloaded from the Heliotis software download area. Installers are available for <strong>Windows and Linux<\/strong>. A Heliotis login is required for the download.<\/p>\n\n<p class=\"wp-block-paragraph\">In the installer, you can select the required algorithm packages and APIs. In most cases, we recommend installing the full library. This also installs the local documentation and programming examples.<\/p>\n\n<h3 class=\"wp-block-heading\">2. Algorithm packages<\/h3>\n\n<p class=\"wp-block-paragraph\">heliAlgo is divided into functional packages for different processing tasks:<\/p>\n\n<ul class=\"wp-block-list\">\n<li><strong>C4 Algos<\/strong> \u2013 algorithms specifically for heliCam C4 data<\/li>\n\n\n\n<li><strong>Calibration<\/strong> \u2013 calibration, correction, and stitching<\/li>\n\n\n\n<li><strong>Data Cleaning<\/strong> \u2013 including outlier removal and polynomial fit<\/li>\n\n\n\n<li><strong>Surface Algorithms<\/strong> \u2013 processing of surface and phase data, including Guided Phase Unwrapping<\/li>\n\n\n\n<li><strong>System Checks<\/strong> \u2013 characterization of optical systems, for example focus and MTF analysis<\/li>\n\n\n\n<li><strong>ISO Roughness<\/strong> \u2013 surface parameters in compliance with the standard<\/li>\n\n\n\n<li><strong>Utilities<\/strong> \u2013 additional utility functions<\/li>\n\n\n\n<li><strong>Experimental<\/strong> \u2013 already usable algorithms whose API may still change in future versions<\/li>\n<\/ul>\n\n<p class=\"wp-block-paragraph\">The directory structure of the installation reflects these functional packages and also contains the selected bindings, documentation, and examples.<\/p>\n\n<h3 class=\"wp-block-heading\">3. Using the documentation<\/h3>\n\n<p class=\"wp-block-paragraph\">Each algorithm package includes detailed local documentation. Under <strong>Background Information<\/strong>, the operating principle and use of the respective algorithm, as well as relevant boundary conditions and limitations, are described.<\/p>\n\n<p class=\"wp-block-paragraph\">Separate sections document the interfaces for the various programming environments with the respective functions and parameters. This makes the documentation a good starting point for integrating a heliAlgo algorithm into an existing application.<\/p>\n\n<h3 class=\"wp-block-heading\">4. Integrating heliAlgo into your application<\/h3>\n\n<p class=\"wp-block-paragraph\">Bindings are available for the following programming environments:<\/p>\n\n<p class=\"wp-block-paragraph\"><strong>C\/C++ \u00b7 CLR (C#, LabVIEW) \u00b7 Python \u00b7 Rust \u00b7 HALCON \u00b7 Aurora Vision<\/strong><\/p>\n\n<p class=\"wp-block-paragraph\">Only the API differs. The underlying heliAlgo algorithms remain identical and can therefore be used in different machine vision environments.<\/p>\n\n<h3 class=\"wp-block-heading\">5. Example: Guided Phase Unwrapping with Python<\/h3>\n\n<p class=\"wp-block-paragraph\">In the tutorial, we show a simple processing chain using <strong>Guided Phase Unwrapping<\/strong> from the Surface Algorithms package and <strong>Polynomial Fit<\/strong> from Data Cleaning.<\/p>\n\n<p class=\"wp-block-paragraph\">The starting point is a wrapped phase image and the corresponding amplitude image. Guided Phase Unwrapping uses both input datasets. The amplitude provides information about measurement quality and helps the algorithm choose a suitable path for phase unwrapping. This reduces the risk that local phase errors propagate across larger areas of the surface.<\/p>\n\n<p class=\"wp-block-paragraph\">Next, a <strong>first-order polynomial fit<\/strong> is used to remove the overall plane. In the final step, the phase values are converted from radians into a physical surface height, taking the measurement wavelength into account.<\/p>\n\n<p class=\"wp-block-paragraph\">The result can be displayed as a 2D height map or further processed within the machine vision application.<\/p>\n\n<h3 class=\"wp-block-heading\">6. Licensing<\/h3>\n\n<p class=\"wp-block-paragraph\">The standard functions of the heliAlgo Library are <strong>available free of charge<\/strong>; the corresponding standard license is included with the installation.<\/p>\n\n<p class=\"wp-block-paragraph\">An additional license is required for the <strong>ISO Roughness<\/strong> package. Using the supplied <strong>Hardware ID Tool<\/strong>, you can determine the hardware ID of the target PC. Based on this, Heliotis can provide the corresponding license file. Alternatively, the license can be bound to a HALCON dongle if required.<\/p>\n\n<p class=\"wp-block-paragraph\">When updating heliAlgo, an existing license file is automatically detected and retained.<\/p>\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The heliAlgo Library provides ready-to-use algorithms for processing Heliotis 3D measurement data. This tutorial gives an overview of the available algorithm packages, installation and APIs, and shows integration using a simple Python example.<\/p>\n","protected":false},"author":4,"featured_media":29589,"template":"","wpdmcategory":[],"wpdmtag":[],"measurement_type":[],"application_area":[],"class_list":["post-29588","tutorial","type-tutorial","status-publish","has-post-thumbnail","hentry"],"_links":{"self":[{"href":"https:\/\/www.heliotis.com\/en\/wp-json\/wp\/v2\/tutorial\/29588","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.heliotis.com\/en\/wp-json\/wp\/v2\/tutorial"}],"about":[{"href":"https:\/\/www.heliotis.com\/en\/wp-json\/wp\/v2\/types\/tutorial"}],"author":[{"embeddable":true,"href":"https:\/\/www.heliotis.com\/en\/wp-json\/wp\/v2\/users\/4"}],"version-history":[{"count":2,"href":"https:\/\/www.heliotis.com\/en\/wp-json\/wp\/v2\/tutorial\/29588\/revisions"}],"predecessor-version":[{"id":29604,"href":"https:\/\/www.heliotis.com\/en\/wp-json\/wp\/v2\/tutorial\/29588\/revisions\/29604"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.heliotis.com\/en\/wp-json\/wp\/v2\/media\/29589"}],"wp:attachment":[{"href":"https:\/\/www.heliotis.com\/en\/wp-json\/wp\/v2\/media?parent=29588"}],"wp:term":[{"taxonomy":"wpdmcategory","embeddable":true,"href":"https:\/\/www.heliotis.com\/en\/wp-json\/wp\/v2\/wpdmcategory?post=29588"},{"taxonomy":"wpdmtag","embeddable":true,"href":"https:\/\/www.heliotis.com\/en\/wp-json\/wp\/v2\/wpdmtag?post=29588"},{"taxonomy":"measurement_type","embeddable":true,"href":"https:\/\/www.heliotis.com\/en\/wp-json\/wp\/v2\/measurement_type?post=29588"},{"taxonomy":"application_area","embeddable":true,"href":"https:\/\/www.heliotis.com\/en\/wp-json\/wp\/v2\/application_area?post=29588"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}