Developers Corner

Introduction to XYZ-Mappings (part 1)

This technical article explores the benefits of XYZ-mappings in HALCON, showing how they increase speed, flexibility, and ease of use for many 3D applications.

In the context of 3D applications in HALCON, you have surely already heard the terms “3D mappings”, “XYZ-mappings” or “XYZ-images”. Many 3D sensors provide these XYZ-mappings along with the point cloud. In this and follow-up technical articles, we want to give you an overview about these XYZ-mappings.

In this article, we discuss the topics What are XYZ-mappings and give a short preview to the topic Why is using XYZ-mappings beneficial for many 3D applications. In the follow-up article, we will answer the question of Why is using XYZ-mappings beneficial for many 3D applications in more detail.

What are XYZ-mappings?

XYZ-mappings are images that map 3D coordinates into 2D coordinates, i.e., the X-coordinates are encoded as gray-values in the X-image, the Y-coordinates are encoded as gray-values in the Y-image and the Z-coordinates are encoded as gray-values in the Z-image.

Let’s take a look at some example data (also used in our standard examples find_surface_model_with_edges.hdev and find_box_3d.hdev.)

On the right side, you see four images referring to the same 3D scene. The intensity looks like a “normal” 2D image that could be used for common 2D image processing. In the XYZ-images, we basically see the same structure as in the intensity image (the three boxes); however, the images do not contain intensity values, but the X-, Y, and Z-coordinates of the related 3D points. So, in the XYZ-images, the 3D point coordinates are sorted row- and column-wise into 2D images. In the example images, you also see the required conventions for edge-supported surface based matching:

  • the X-mapping has increasing gray-values from left to right,
  • the Y-mapping has increasing gray-values from top to bottom and
  • the Z-mapping has increasing gray-values for object parts further away from the camera.

To convert XYZ-images into a 3D object model, you can use the operator

xyz_to_object_model_3d (X, Y, Z, ObjectModel3D)

The other way round, you can use

object_model_3d_to_xyz (X, Y, Z, ObjectModel3D, 'from_xyz_map', [], [])// ObjectModel3D must contain mappings

For further general information about 3D object models, please take a look at our Solution Guide III-C 3D Vision, chapter 2.3 3D Object Models.

Preview: Why is using XYZ-mappings beneficial for many 3D applications?

In summary, using XYZ-mappings increases speed and flexibility of an application. Most of the relevant 3D operators contain a mapping-based mode, e.g. triangulate_object_model_3d, sample_object_model_3d and reduce_object_model_by_view.

Moreover, on the XYZ-mappings, HALCON's powerful 2D library can be used in order to prepare the point cloud in an intuitive, efficient and flexible way for the main part of the application, such as 3D object localization based on the surface-based matching. More details will be given in the follow-up technical article.

Further articles

Visualize Object Model 3D
Improve your surface-based matching with two helpful features
Do you sometimes have objects, which have rather small symmetry-breaking elements (such as small boreholes on an object)? Does your surface-based 3D matching not find the correct orientation?
Read more
Developers Corner
Deep OCR Interface
Deep OCR recognition training – the next level
HALCON’s Deep OCR is very powerful and can detect and recognize text in various industrial scenes. However, what if you have a special font, or want to read foreign characters? With HALCON 22.05 it is possible to train the recognition model to read s…
Read more
Developers Corner
Fitted primitives distance threshold
Metrology Model – Quality of Fit
"For most applications, the standard parameter values are sufficient." This sentence is often read in the HALCON Solution Guide. But what if the results do not meet your expectations? The Metrology Model allows lightning-fast measurement of geometric…
Read more
Developers Corner
Review of Acquisition Modes
This article gives an overview of HALCON’s image acquisition modes, explaining how continuous, triggered, and synchronous acquisition work, and clarifying common misconceptions for practical applications.
Read more
Developers Corner
Deep OCR – Tips and Tricks
Have you already experienced the performance boost by using Deep OCR compared to the classical rule‑based approaches? In this article, we’ll show you practical tips and tricks to further improve your Deep OCR results.
Read more
Developers Corner
Easy text and code reading with MERLIC standard tools
If you want to build an MVApp that reads for example QR codes or bar codes you can do so with just a few clicks. You can even combine the tools to get all available information printed on a product in different formats without the need for programmin…
Read more
Developers Corner
About MVTec's Heatmap
Imagine you intend to deliver a HALCON deep-learning-based classification application. And you are about to evaluate a trained model. You are therefore looking for feedback about this model, i.e. about its performances, biases, and other possible def…
Read more
Developers Corner
Gabor filter: What is it for?
Gabor filters, which are well known in the realm of time series analyses, can also be used in HALCON for 2D image analysis. They are particularly useful for detecting textures, patterns, and orientations in complex images.
Read more
Developers Corner
Introduction to new sub-pixel feature of bar code reader
Do you have small resolution bar codes to read but don't get any good results? Then please try our new feature – the subpixel bar code reader.
Read more
Developers Corner
Introduction to XYZ-Mappings (part 2)
This technical article continues our introduction to XYZ-mappings. In the last article, we answered the question "What are XYZ-mappings?" and gave a short preview towards "Why is using XYZ-mappings beneficial for many 3D applications?". Today, we wil…
Read more
Developers Corner
Deep learning: Why is the dataset key for a success result?
Deep learning success starts with the dataset: Learn why acquiring high-quality, well-labeled training data is crucial for reliable classification, detection, segmentation, and anomaly detection in your machine vision applications.
Read more
Developers Corner
How to prepare 3D height images for further processing with MERLIC’s standard tools
Learn how to prepare 3D height images in MERLIC for further processing: convert non-byte images to byte images to enable alignment, embossed text reading, and defect detection with standard easyTouch tools.
Read more
Developers Corner
Deflectrometry demo HALCON
Inspection of specular surfaces with deflectometry in HALCON
Inspect flat and curved reflective surfaces quickly and reliably with HALCON deflectometry: detect scratches, dents, and other defects with synchronized image acquisition and flexible image processing.
Read more
Developers Corner
Deep Learning classifier HALCON
Training a deep learning classifier with HALCON on the embedded board Jetson TX2
Learn how to train a deep learning classifier with HALCON on both a PC and an embedded Jetson TX2 board, from image acquisition to model training and inference, for efficient machine vision applications.
Read more
Developers Corner
Add touch input to the HSmartWindowControlWPF
Learn how to easily add touch input, including pinch-to-zoom, to the HSmartWindowControlWPF in HALCON, leveraging WPF’s built-in multi-touch events for intuitive image control.
Read more
Developers Corner
Increasing Speed in Deflectometry Set-ups
Discover three approaches to increase speed in deflectometry setups, from simple software-based synchronization to hardware triggers and FPGA-based real-time control, enabling faster and more precise inspection of reflective surfaces.
Read more
Developers Corner
HDevelop matching assistant speedup greediness
Speeding up shape-based matching with "Greediness"
Learn how the 'Greediness' parameter in shape-based matching balances speed and detection completeness, enabling faster searches while maintaining robust results in HALCON.
Read more
Developers Corner
Best practice for classification and OCR
Discover best practices for setting up classification and OCR in HALCON using the HDevelop OCR Training File Browser – quickly review, correct, and optimize your training data to improve segmentation and classification results.
Read more
Developers Corner
Rejection all classes 1.5
How to use rejection classes in MVTec HALCON
Learn how to handle outlier samples in MVTec HALCON by using rejection classes in MLP classifiers – automatically generate samples outside the training classes to improve classification reliability.
Read more
Developers Corner
Using regularization Weight prior 0.1 large
Using Regularization in MLP Classification
Learn how to use regularization in HALCON to prevent overfitting in MLP classifiers, smooth decision boundaries, and achieve better generalization for new and unseen data.
Read more
Developers Corner
MVTec Software