ClassesClasses | | Operators

Structured Light

List of Operators ↓

This chapter describes operators for using structured light.

Concept of Structured Light

The basic concept behind structured light is the display of known patterns onto a display or projector. The way those patterns appear in the scene after hitting surfaces helps to further analyze the surfaces.

To use structured light, a model must first be created using create_structured_light_modelcreate_structured_light_modelCreateStructuredLightModelCreateStructuredLightModelCreateStructuredLightModel. The model type is specified in ModelTypeModelTypeModelTypeModelTypemodelType. Currently, only the model type 'deflectometry'"deflectometry""deflectometry""deflectometry""deflectometry" is supported. Deflectometry is the procedure of analyzing the reflections of known patterns from specular or semi-specular surfaces. Currently, only deflectometry to detect defects on the specular surfaces is supported. In such a setup, for every pattern image projected on the screen, a camera image of the reflection is acquired. Deformations of the pattern in the camera image imply a defect on the specular surface.

In the following, the steps that are required to perform defect detection on specular surfaces are described briefly.

Create a structured light model:

In the first step, a structured light model is created with

or read with

Set the model parameters:

The different structured light model parameters can then be set with set_structured_light_model_paramset_structured_light_model_paramSetStructuredLightModelParamSetStructuredLightModelParamSetStructuredLightModelParam or queried with get_structured_light_model_paramget_structured_light_model_paramGetStructuredLightModelParamGetStructuredLightModelParamGetStructuredLightModelParam. The pattern parameters 'pattern_width'"pattern_width""pattern_width""pattern_width""pattern_width", 'pattern_height'"pattern_height""pattern_height""pattern_height""pattern_height", 'pattern_orientation'"pattern_orientation""pattern_orientation""pattern_orientation""pattern_orientation", and 'pattern_type'"pattern_type""pattern_type""pattern_type""pattern_type" specify along with the stripe parameter 'min_stripe_width'"min_stripe_width""min_stripe_width""min_stripe_width""min_stripe_width" the specifications of the pattern images to be generated and projected onto the specular surface. Segmentation parameters can also be set. Finally, the 'persistence'"persistence""persistence""persistence""persistence" parameter can be enabled to debug intermediate results.

Generate the pattern images:

The pattern images are to be generated with gen_structured_light_patterngen_structured_light_patternGenStructuredLightPatternGenStructuredLightPatternGenStructuredLightPattern after setting all relevant parameters. Please ensure that the output images are as needed in the particular setup.

Project the patterns and acquire the camera images:

At this stage, the pattern images are shown on the display and reflected by the specular surface. The respective reflected image is acquired by the camera for each pattern image.

Decode the acquired images:

The acquired CameraImagesCameraImagesCameraImagesCameraImagescameraImages can be decoded with decode_structured_light_patterndecode_structured_light_patternDecodeStructuredLightPatternDecodeStructuredLightPatternDecodeStructuredLightPattern. Upon calling this operator, the correspondence images are created and stored in the model StructuredLightModelStructuredLightModelStructuredLightModelStructuredLightModelstructuredLightModel.

Get the results:

Now the decoded 'correspondence_image'"correspondence_image""correspondence_image""correspondence_image""correspondence_image", as well as other results can be queried with get_structured_light_objectget_structured_light_objectGetStructuredLightObjectGetStructuredLightObjectGetStructuredLightObject. The 'defect_image'"defect_image""defect_image""defect_image""defect_image" can be generated and queried with get_structured_light_objectget_structured_light_objectGetStructuredLightObjectGetStructuredLightObjectGetStructuredLightObject. For more details of the different objects that can be queried, please refer to the operator's documentation.

Clear the structured light model:

Finally, the structured light model should be cleared and all allocated memory freed by calling clear_structured_light_modelclear_structured_light_modelClearStructuredLightModelClearStructuredLightModelClearStructuredLightModel.

Further operators

The structured light model offers various other operators that help access and update the various parameters of the model.

The operator write_structured_light_modelwrite_structured_light_modelWriteStructuredLightModelWriteStructuredLightModelWriteStructuredLightModel enables writing the structured light model to a file. Please note that previously generated pattern images are not written in this file. A structured light model file can be read using read_structured_light_modelread_structured_light_modelReadStructuredLightModelReadStructuredLightModelReadStructuredLightModel.

Furthermore, it is possible to serialize and deserialize the structured light model using serialize_structured_light_modelserialize_structured_light_modelSerializeStructuredLightModelSerializeStructuredLightModelSerializeStructuredLightModel and deserialize_structured_light_modeldeserialize_structured_light_modelDeserializeStructuredLightModelDeserializeStructuredLightModelDeserializeStructuredLightModel.

Further Information

See also the “Solution Guide Basics” for further details.


List of Operators

clear_structured_light_modelClearStructuredLightModelClearStructuredLightModelclear_structured_light_model
Clear a structured light model and free the allocated memory.
create_structured_light_modelCreateStructuredLightModelCreateStructuredLightModelcreate_structured_light_model
Create a structured light model.
decode_structured_light_patternDecodeStructuredLightPatternDecodeStructuredLightPatterndecode_structured_light_pattern
Decode the camera images acquired with a structured light setup.
deserialize_structured_light_modelDeserializeStructuredLightModelDeserializeStructuredLightModeldeserialize_structured_light_model
Deserialize a structured light model.
gen_structured_light_patternGenStructuredLightPatternGenStructuredLightPatterngen_structured_light_pattern
Generate the pattern images to be displayed in a structured light setup.
get_structured_light_model_paramGetStructuredLightModelParamGetStructuredLightModelParamget_structured_light_model_param
Query parameters of a structured light model.
get_structured_light_objectGetStructuredLightObjectGetStructuredLightObjectget_structured_light_object
Get (intermediate) iconic results of a structured light model.
read_structured_light_modelReadStructuredLightModelReadStructuredLightModelread_structured_light_model
Read a structured light model from a file.
serialize_structured_light_modelSerializeStructuredLightModelSerializeStructuredLightModelserialize_structured_light_model
Serialize a structured light model.
set_structured_light_model_paramSetStructuredLightModelParamSetStructuredLightModelParamset_structured_light_model_param
Set parameters of a structured light model.
write_structured_light_modelWriteStructuredLightModelWriteStructuredLightModelwrite_structured_light_model
Write a structured light model to a file.

ClassesClasses | | Operators