Skip to content

refine_deformable_surface_modelRefineDeformableSurfaceModelRefineDeformableSurfaceModelrefine_deformable_surface_modelT_refine_deformable_surface_model🔗

Short description🔗

refine_deformable_surface_modelRefineDeformableSurfaceModelRefineDeformableSurfaceModelrefine_deformable_surface_modelT_refine_deformable_surface_model — Refine the position and deformation of a deformable surface model in a 3D scene.

Signature🔗

refine_deformable_surface_model( deformable_surface_model DeformableSurfaceModel, object_model_3d ObjectModel3D, real RelSamplingDistance, object_model_3d InitialDeformationObjectModel3D, attribute.name GenParamName, attribute.value GenParamValue, out real Score, out deformable_surface_matching_result DeformableSurfaceMatchingResult )void RefineDeformableSurfaceModel( const HTuple& DeformableSurfaceModel, const HTuple& ObjectModel3D, const HTuple& RelSamplingDistance, const HTuple& InitialDeformationObjectModel3D, const HTuple& GenParamName, const HTuple& GenParamValue, HTuple* Score, HTuple* DeformableSurfaceMatchingResult )static void HOperatorSet.RefineDeformableSurfaceModel( HTuple deformableSurfaceModel, HTuple objectModel3D, HTuple relSamplingDistance, HTuple initialDeformationObjectModel3D, HTuple genParamName, HTuple genParamValue, out HTuple score, out HTuple deformableSurfaceMatchingResult )def refine_deformable_surface_model( deformable_surface_model: HHandle, object_model_3d: HHandle, rel_sampling_distance: float, initial_deformation_object_model_3d: HHandle, gen_param_name: MaybeSequence[str], gen_param_value: MaybeSequence[Union[str, float, int]] ) -> Tuple[Sequence[float], Sequence[HHandle]]

def refine_deformable_surface_model_s( deformable_surface_model: HHandle, object_model_3d: HHandle, rel_sampling_distance: float, initial_deformation_object_model_3d: HHandle, gen_param_name: MaybeSequence[str], gen_param_value: MaybeSequence[Union[str, float, int]] ) -> Tuple[float, HHandle]Herror T_refine_deformable_surface_model( const Htuple DeformableSurfaceModel, const Htuple ObjectModel3D, const Htuple RelSamplingDistance, const Htuple InitialDeformationObjectModel3D, const Htuple GenParamName, const Htuple GenParamValue, Htuple* Score, Htuple* DeformableSurfaceMatchingResult )

HTuple HObjectModel3D::RefineDeformableSurfaceModel( const HDeformableSurfaceModel& DeformableSurfaceModel, double RelSamplingDistance, const HObjectModel3D& InitialDeformationObjectModel3D, const HTuple& GenParamName, const HTuple& GenParamValue, HDeformableSurfaceMatchingResultArray* DeformableSurfaceMatchingResult ) const

double HObjectModel3D::RefineDeformableSurfaceModel( const HDeformableSurfaceModel& DeformableSurfaceModel, double RelSamplingDistance, const HObjectModel3D& InitialDeformationObjectModel3D, const HString& GenParamName, const HString& GenParamValue, HDeformableSurfaceMatchingResult* DeformableSurfaceMatchingResult ) const

double HObjectModel3D::RefineDeformableSurfaceModel( const HDeformableSurfaceModel& DeformableSurfaceModel, double RelSamplingDistance, const HObjectModel3D& InitialDeformationObjectModel3D, const char* GenParamName, const char* GenParamValue, HDeformableSurfaceMatchingResult* DeformableSurfaceMatchingResult ) const

double HObjectModel3D::RefineDeformableSurfaceModel( const HDeformableSurfaceModel& DeformableSurfaceModel, double RelSamplingDistance, const HObjectModel3D& InitialDeformationObjectModel3D, const wchar_t* GenParamName, const wchar_t* GenParamValue, HDeformableSurfaceMatchingResult* DeformableSurfaceMatchingResult ) const (Windows only)

HTuple HDeformableSurfaceModel::RefineDeformableSurfaceModel( const HObjectModel3D& ObjectModel3D, double RelSamplingDistance, const HObjectModel3D& InitialDeformationObjectModel3D, const HTuple& GenParamName, const HTuple& GenParamValue, HDeformableSurfaceMatchingResultArray* DeformableSurfaceMatchingResult ) const

double HDeformableSurfaceModel::RefineDeformableSurfaceModel( const HObjectModel3D& ObjectModel3D, double RelSamplingDistance, const HObjectModel3D& InitialDeformationObjectModel3D, const HString& GenParamName, const HString& GenParamValue, HDeformableSurfaceMatchingResult* DeformableSurfaceMatchingResult ) const

double HDeformableSurfaceModel::RefineDeformableSurfaceModel( const HObjectModel3D& ObjectModel3D, double RelSamplingDistance, const HObjectModel3D& InitialDeformationObjectModel3D, const char* GenParamName, const char* GenParamValue, HDeformableSurfaceMatchingResult* DeformableSurfaceMatchingResult ) const

double HDeformableSurfaceModel::RefineDeformableSurfaceModel( const HObjectModel3D& ObjectModel3D, double RelSamplingDistance, const HObjectModel3D& InitialDeformationObjectModel3D, const wchar_t* GenParamName, const wchar_t* GenParamValue, HDeformableSurfaceMatchingResult* DeformableSurfaceMatchingResult ) const (Windows only)

static HTuple HDeformableSurfaceMatchingResult::RefineDeformableSurfaceModel( const HDeformableSurfaceModel& DeformableSurfaceModel, const HObjectModel3D& ObjectModel3D, double RelSamplingDistance, const HObjectModel3D& InitialDeformationObjectModel3D, const HTuple& GenParamName, const HTuple& GenParamValue, HDeformableSurfaceMatchingResultArray* DeformableSurfaceMatchingResult )

double HDeformableSurfaceMatchingResult::RefineDeformableSurfaceModel( const HDeformableSurfaceModel& DeformableSurfaceModel, const HObjectModel3D& ObjectModel3D, double RelSamplingDistance, const HObjectModel3D& InitialDeformationObjectModel3D, const HString& GenParamName, const HString& GenParamValue )

double HDeformableSurfaceMatchingResult::RefineDeformableSurfaceModel( const HDeformableSurfaceModel& DeformableSurfaceModel, const HObjectModel3D& ObjectModel3D, double RelSamplingDistance, const HObjectModel3D& InitialDeformationObjectModel3D, const char* GenParamName, const char* GenParamValue )

double HDeformableSurfaceMatchingResult::RefineDeformableSurfaceModel( const HDeformableSurfaceModel& DeformableSurfaceModel, const HObjectModel3D& ObjectModel3D, double RelSamplingDistance, const HObjectModel3D& InitialDeformationObjectModel3D, const wchar_t* GenParamName, const wchar_t* GenParamValue ) (Windows only)

HTuple HObjectModel3D.RefineDeformableSurfaceModel( HDeformableSurfaceModel deformableSurfaceModel, double relSamplingDistance, HObjectModel3D initialDeformationObjectModel3D, HTuple genParamName, HTuple genParamValue, out HDeformableSurfaceMatchingResult[] deformableSurfaceMatchingResult )

double HObjectModel3D.RefineDeformableSurfaceModel( HDeformableSurfaceModel deformableSurfaceModel, double relSamplingDistance, HObjectModel3D initialDeformationObjectModel3D, string genParamName, string genParamValue, out HDeformableSurfaceMatchingResult deformableSurfaceMatchingResult )

HTuple HDeformableSurfaceModel.RefineDeformableSurfaceModel( HObjectModel3D objectModel3D, double relSamplingDistance, HObjectModel3D initialDeformationObjectModel3D, HTuple genParamName, HTuple genParamValue, out HDeformableSurfaceMatchingResult[] deformableSurfaceMatchingResult )

double HDeformableSurfaceModel.RefineDeformableSurfaceModel( HObjectModel3D objectModel3D, double relSamplingDistance, HObjectModel3D initialDeformationObjectModel3D, string genParamName, string genParamValue, out HDeformableSurfaceMatchingResult deformableSurfaceMatchingResult )

static HTuple HDeformableSurfaceMatchingResult.RefineDeformableSurfaceModel( HDeformableSurfaceModel deformableSurfaceModel, HObjectModel3D objectModel3D, double relSamplingDistance, HObjectModel3D initialDeformationObjectModel3D, HTuple genParamName, HTuple genParamValue, out HDeformableSurfaceMatchingResult[] deformableSurfaceMatchingResult )

double HDeformableSurfaceMatchingResult.RefineDeformableSurfaceModel( HDeformableSurfaceModel deformableSurfaceModel, HObjectModel3D objectModel3D, double relSamplingDistance, HObjectModel3D initialDeformationObjectModel3D, string genParamName, string genParamValue )

Description🔗

The operator refine_deformable_surface_modelRefineDeformableSurfaceModel refines the initial position and deformation given in InitialDeformationObjectModel3DinitialDeformationObjectModel3Dinitial_deformation_object_model_3d of the surface model DeformableSurfaceModeldeformableSurfaceModeldeformable_surface_model in the 3D scene ObjectModel3DobjectModel3Dobject_model_3d. The deformable surface model DeformableSurfaceModeldeformableSurfaceModeldeformable_surface_model must have been created previously with, for example, create_deformable_surface_modelCreateDeformableSurfaceModel.

refine_deformable_surface_modelRefineDeformableSurfaceModel is useful if the position and deformation of an object in a scene is approximately known and only needs to be refined. Additional information about the output parameters can be found in find_deformable_surface_modelFindDeformableSurfaceModel.

InitialDeformationObjectModel3DinitialDeformationObjectModel3Dinitial_deformation_object_model_3d must contain as many points as the sampled deformation model obtained by get_deformable_surface_model_paramGetDeformableSurfaceModelParam and in the same order.

The score of the refined result is returned in Scorescorescore and a deformable surface matching result handle is returned in DeformableSurfaceMatchingResultdeformableSurfaceMatchingResultdeformable_surface_matching_result. Details of the result, such as the deformed model and the position of the reference points, can be queried with the operator get_deformable_surface_matching_resultGetDeformableSurfaceMatchingResult using the result handle.

The score is normalized between 00 and 11 and represents the amount of model surface visible in the scene. A value of 11 represents a perfect match.

The parameters GenParamNamegenParamNamegen_param_name and GenParamValuegenParamValuegen_param_value are used to set generic parameters. Details about the generic parameters are described in the documentation of find_deformable_surface_modelFindDeformableSurfaceModel.

Execution information🔗

Execution information
  • Multithreading type: reentrant (runs in parallel with non-exclusive operators).

  • Multithreading scope: global (may be called from any thread).

  • Automatically parallelized on internal data level.

This operator returns a handle. Note that the state of an instance of this handle type may be changed by specific operators even though the handle is used as an input parameter by those operators.

This operator supports canceling timeouts and interrupts.

Parameters🔗

DeformableSurfaceModeldeformableSurfaceModeldeformable_surface_model (input_control) deformable_surface_model → (handle)HTuple (HHandle)HDeformableSurfaceModel, HTuple (IntPtr)HHandleHtuple (handle)

Handle of the deformable surface model.

ObjectModel3DobjectModel3Dobject_model_3d (input_control) object_model_3d → (handle)HTuple (HHandle)HObjectModel3D, HTuple (IntPtr)HHandleHtuple (handle)

Handle of the 3D object model containing the scene.

RelSamplingDistancerelSamplingDistancerel_sampling_distance (input_control) real → (real)HTuple (double)HTuple (double)floatHtuple (double)

Relative sampling distance of the scene.

Default: 0.050.05
Suggested values: 0.1, 0.07, 0.05, 0.04, 0.030.1, 0.07, 0.05, 0.04, 0.03
Restriction: 0 < RelSamplingDistance < 1

InitialDeformationObjectModel3DinitialDeformationObjectModel3Dinitial_deformation_object_model_3d (input_control) object_model_3d → (handle)HTuple (HHandle)HObjectModel3D, HTuple (IntPtr)HHandleHtuple (handle)

Initial deformation of the 3D object model

GenParamNamegenParamNamegen_param_name (input_control) attribute.name(-array) → (string)HTuple (HString)HTuple (string)MaybeSequence[str]Htuple (char*)

Names of the generic parameters.

Default: [][]
List of values: 'pose_ref_dist_threshold_abs', 'pose_ref_dist_threshold_rel', 'pose_ref_num_steps', 'pose_ref_scoring_dist_abs', 'pose_ref_scoring_dist_rel', 'scene_normal_computation'"pose_ref_dist_threshold_abs", "pose_ref_dist_threshold_rel", "pose_ref_num_steps", "pose_ref_scoring_dist_abs", "pose_ref_scoring_dist_rel", "scene_normal_computation"

GenParamValuegenParamValuegen_param_value (input_control) attribute.value(-array) → (string / real / integer)HTuple (HString / double / Hlong)HTuple (string / double / int / long)MaybeSequence[Union[str, float, int]]Htuple (char* / double / Hlong)

Values of the generic parameters.

Default: [][]
Suggested values: 'fast', 'mls', 0, 1, 10, 25, 50, 0.05, 0.1, 0.25, 0.3, 0.05, 0.03, 0.005"fast", "mls", 0, 1, 10, 25, 50, 0.05, 0.1, 0.25, 0.3, 0.05, 0.03, 0.005

Scorescorescore (output_control) real(-array) → (real)HTuple (double)HTuple (double)Sequence[float]Htuple (double)

Score of the refined model.

DeformableSurfaceMatchingResultdeformableSurfaceMatchingResultdeformable_surface_matching_result (output_control) deformable_surface_matching_result(-array) → (handle)HTuple (HHandle)HDeformableSurfaceMatchingResult, HTuple (IntPtr)Sequence[HHandle]Htuple (handle)

Handle of the matching result.

Result🔗

refine_deformable_surface_modelRefineDeformableSurfaceModel returns 2 (H_MSG_TRUE) if all parameters are correct. If necessary, an exception is raised.

Combinations with other operators🔗

Combinations

Possible predecessors

read_object_model_3dReadObjectModel3d, xyz_to_object_model_3dXyzToObjectModel3d, get_object_model_3d_paramsGetObjectModel3dParams, read_deformable_surface_modelReadDeformableSurfaceModel, create_deformable_surface_modelCreateDeformableSurfaceModel, get_deformable_surface_model_paramGetDeformableSurfaceModelParam, find_deformable_surface_modelFindDeformableSurfaceModel

Possible successors

get_deformable_surface_matching_resultGetDeformableSurfaceMatchingResult, clear_deformable_surface_matching_resultClearDeformableSurfaceMatchingResult, clear_object_model_3dClearObjectModel3d

Alternatives

find_deformable_surface_modelFindDeformableSurfaceModel

See also

create_deformable_surface_modelCreateDeformableSurfaceModel, find_deformable_surface_modelFindDeformableSurfaceModel

Module🔗

3D Metrology