SAL3D Library Evaluation
This section will guide you through evaluation of the library's algorithms using the distributed precompiled example programs.
- Evaluation of the Merger Tool using wxMergerExample
- Evaluation of the Match3D Tool using wxMatch3DExample
Evaluation of SAL3D Core
This is a GUI example for the evaluation of SAL3D main objects (Range Maps, COPs and ZMaps) and related functionalities.
![]() |
|
|
Open Range Map data. Convert RangeMap to COP Load COPs from file. Display as points, wireframe or solid |
Export to PLY file format Obtain ZMaps from COPs Tune ZMapFactors Save ZMaps as image file |
Evaluation of the Peak Finder Tool using wxPeakFinderExample
This GUI example will allow you to evaluate the sub-pixel accuracy of the SAL3D Peak Finder Tool. Pictures can be loaded (from files or cameras) and the detected points of the laser profile stored in a plain text file. The Peak Finder Tool works analyzing frames row by row, returning a laser stripe point for each picture row. Horizontal laser stripes cannot be detected using this tool.
|
|
|
|
A Profile can be extracted from a Frame by converting the image file to a Frame (File > Open Image) Create a RangeMap (Grabber > Grab). Define Grab Parameters (threshold, time out, max profiles) Virtual frame grabber where Several files can be loaded to simulate the acquisition. Define the size of the Range Map with timeout and/or number of profiles |
|
In case of fileframegrabber, the number of profiles should correspond to the number of frames (files) used during the "virtual" acquisition. When acquiring from a real frame grabber, the number of profiles will depend on the camera trigger mode (free running, external trigger, the encoder, etc).
User can stop the Grabbing (Grabber > Freeze). In that case, the RangeMap acquisition stops without returning the acquired profiles.
Once a RangeMap is created, it can be viewed (View > Range Map). A color bi-dimensional representation of the RangeMap can be saved and use the Core Example for the next Range Map representations.
![]() |
![]() |
| Peak finder tool analyzes pictures row by row, so, only vertical stripe orientations. | |
Evaluation of the Metric Calibration Tool using wxLinearMetricExample and wxStaticMetricExample
These GUI examples will allow you to evaluate the metric accuracy in the 3D reconstruction from a RangeMap. wxLinearMetricExample needs a RangeMap originated from the acquisition of a calibration pattern. The difference between the wxLinearMetric and the wxStaticMetric is the calibration pattern. The first one requires the linear scanning of the Linear Metric Calibration Pattern, while the wxMetricStatic only requires a single profile of the Static Metric Calibration Pattern (or a central profile of the Linear Pattern).
Although the example RangeMaps distributed with SAL3D can be used, the results for every single acquisition system can be calculated by acquiring the RangeMap of a calibration pattern.
WxLinearMetricExample
![]() |
![]() |
![]() |
| Expected orientation of the Linear Metric Calibration Pattern | |
The metric calibration time depends on the RangeMap's size, and obtaining accurate results requires that pattern misorientation must be as small as possible. After calibration a metric report is obtained, containing 4 parameters:
- Metric configuration: Parameters used to transform from RangeMap to metric coordinates and vice versa (not displayed on the example).
- Accuracy Mean: Mean of the errors (X, Y, and Z) on the reconstruction of the metric calibration points.
- Accuracy Stddev: Standard deviation of the errors (X, Y, and Z) on the reconstruction of the metric calibration points.
- Pattern misorientation: Measure in pixels of the misorientation between the calibration pattern and the motion direction (in Y and Z axis)
WxStaticMetricExample
![]() |
This example needs a single profile for calibration, which is displayed on the top window.
After the calibration, the metric reconstruction profile is represented on the bottom window. User can visualize the metric coordinates by pointing the metric profile. In addition, the metric report is obtained, containing 3 parameters:
- Metric configuration: Parameters used to transform from RangeMap to metric coordinates and vice versa (not displayed on the example).
- Accuracy Mean: Mean of the errors (Y, and Z) on the reconstruction of the metric calibration points.
- Accuracy Stddev: Standard deviation of the errors (Y, and Z) on the reconstruction of the metric calibration points.
For getting accurate results, be sure that the pattern misorientation is as small as possible. However, as a single profile is analyzed, it is not possible to compute the pattern misorientation.
Evaluation of the Merger Tool using wxMergerExample
This GUI example lets you evaluate the accuracy of merging two Profiles acquired simultaneously from different cameras. For a better understanding, in this example Profiles are taken one by one from existing Range Maps. Merger tool requires its own parameters to combine information from both cameras. Load two calibration pattern range maps; one corresponding to the base camera and the other one to the auxiliary camera. After that, parameters can be computed clicking Calibrate under Merger Menu. The Merger Tool calibration expects the calibration pattern parallel to the motion (see Description of the linear calibration pattern for more details).
![]() |
|
|
Find example ARM files acquired from both cameras distributed with SAL3D. Load Merger Configuration, either from a file or calibrating. The bottom window displays the merged RangeMap. Get merged images from base and auxiliary cameras. Each profile of the RangeMap can be seen in the bottom window using the slider. |
This tool requires the same number of profiles in both range maps (base and auxiliary). Because it is assumed that both cameras are simultaneously acquiring.
After loading both RangeMaps, and obtained the Merger Configuration, the application displays an accuracy report (calibration time depends on the size of the RangeMaps).
-
Accuracy Mean: Mean of the errors (u, v, and g) merging of the calibration points.
-
Accuracy Stddev: Standard deviation of the errors (u, v, and g) merging the calibration points.
-
Pattern misorientation: Measure in pixels of the misorientation between the calibration pattern and the motion direction (in Y and Z axis)
Evaluation of the Match3D Tool using wxMatch3DExample
This GUI example lets you evaluate the alignment of two surfaces by loading a COP as a reference model, and a second COP related to the inspected part. After the alignment the right window displays both aligned surfaces. The bottom window displays the disparity map between both surfaces, and can be saved as a ZMap.
![]() |
|
See the alignment quality factor in the status bar. Get the status bar displays the x and y coordinates and also the metric disparity between model - part. Change the color scale of the disparity map (Disparity > Set Tolerance). Values between [-tolerance, tolerance] are scaled from blue to red. Higher or lower values are displayed in blue/red |
This example also permits the evaluation of the Match3DCoarse for aligning objects located one far from the other or big misoriented. Another option to align far objects is using an initial pre-alignment (Match > Set Initial Movement).









