inspect_clustered_components — 检查从训练中获得的刚性模型组件。
inspect_clustered_components( : ModelComponents : ComponentTrainingID, AmbiguityCriterion, MaxContourOverlap, ClusterThreshold : )
inspect_clustered_components creates a representation of the
rigid model components based on the training result
ComponentTrainingID in form of contour regions. The
resulting rigid model components are computed depending on the
criterion that is used to solve the ambiguities
AmbiguityCriterion, the maximum allowable contour overlap
MaxContourOverlap, and the cluster threshold
ClusterThreshold (see train_model_components). The
cluster threshold, for example, influences the merging of the
initial components. The greater the threshold is chosen, the fewer
initial components are merged. The determined rigid model components
are returned in ModelComponents。
Hence, after the components have been trained once by using
train_model_components, inspect_clustered_components
can be used to estimate the effect of different values for the
parameters AmbiguityCriterion, MaxContourOverlap,
and ClusterThreshold without performing the complete
training procedure several times. Once the desired parameter values
have been found, they can be efficiently adopted into the training
result by using cluster_model_components。
ModelComponents (输出对象) region(-array) → object
Contour regions of rigid model components.
ComponentTrainingID (输入控制) component_training → (handle)
Handle of the training result.
AmbiguityCriterion (输入控制) string → (string)
Criterion for solving the ambiguities.
默认值: 'rigidity'
值列表: 'distance', 'distance_orientation', 'orientation', 'rigidity'
MaxContourOverlap (输入控制) real → (real)
Maximum contour overlap of the found initial components.
默认值: 0.2
建议值: 0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0
最小增量: 0.01
建议增量: 0.05
限制:
0 <= MaxContourOverlap && MaxContourOverlap <= 1
ClusterThreshold (输入控制) real → (real)
Threshold for clustering the initial components.
默认值: 0.5
建议值: 0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0
限制:
0 <= ClusterThreshold && ClusterThreshold <= 1
* Get the model image.
read_image (ModelImage, 'model_image.tif')
* Define the regions for the initial components.
gen_rectangle2 (InitialComponentRegions, 212, 233, 0.62, 167, 29)
gen_rectangle2 (Rectangle2, 298, 363, 1.17, 162, 34)
gen_rectangle2 (Rectangle3, 63, 444, -0.26, 50, 27)
gen_rectangle2 (Rectangle4, 120, 473, 0, 33, 20)
concat_obj (InitialComponentRegions, Rectangle2, InitialComponentRegions)
concat_obj (InitialComponentRegions, Rectangle3, InitialComponentRegions)
concat_obj (InitialComponentRegions, Rectangle4, InitialComponentRegions)
* Get the training images
gen_empty_obj (TrainingImages)
for i := 1 to 4 by 1
read_image (TrainingImage, 'training_image-'+i$'02'+'.tif')
concat_obj (TrainingImages, TrainingImage, TrainingImages)
endfor
* Extract the model components and train the relations.
train_model_components (ModelImage, InitialComponentRegions, \
TrainingImages, ModelComponents, 22, 60, 30, 0.65, \
0, 0, rad(60), 'speed', 'rigidity', 0.2, 0.5, \
ComponentTrainingID)
* Find the best value for the parameter ClusterThreshold.
inspect_clustered_components (ModelComponents, ComponentTrainingID, \
'rigidity', 0.2, 0.4)
* Adopt the ClusterThreshold into the training result.
cluster_model_components (ModelComponents, ModelComponents, \
ComponentTrainingID, 'rigidity', 0.2, 0.4)
* Create the component model based on the training result.
create_trained_component_model (ComponentTrainingID, -rad(30), rad(60), 10, \
0.5, 'auto', 'auto', 'none', \
'use_polarity', 'false', ComponentModelID, \
RootRanking)
If the handle of the training result is valid, the operator
inspect_clustered_components 返回值 2 ( H_MSG_TRUE )。如有必要,则抛出异常。
匹配