Name
compare_ext_variation_modelT_compare_ext_variation_modelCompareExtVariationModelCompareExtVariationModel — Compare an image to a variation model.
Herror T_compare_ext_variation_model(const Hobject Image, Hobject* Region, const Htuple ModelID, const Htuple Mode)
compare_ext_variation_modelcompare_ext_variation_modelCompareExtVariationModelCompareExtVariationModelCompareExtVariationModel compares the input image
ImageImageImageImageimage to the variation model given by ModelIDModelIDModelIDModelIDmodelID.
compare_ext_variation_modelcompare_ext_variation_modelCompareExtVariationModelCompareExtVariationModelCompareExtVariationModel is an extension of
compare_variation_modelcompare_variation_modelCompareVariationModelCompareVariationModelCompareVariationModel that provides more modes for the
image comparison. Before compare_ext_variation_modelcompare_ext_variation_modelCompareExtVariationModelCompareExtVariationModelCompareExtVariationModel can be
called, the two internal threshold images of the variation model
must have been created with prepare_variation_modelprepare_variation_modelPrepareVariationModelPrepareVariationModelPrepareVariationModel or
prepare_direct_variation_modelprepare_direct_variation_modelPrepareDirectVariationModelPrepareDirectVariationModelPrepareDirectVariationModel. Let c(x,y)
denote the input image ImageImageImageImageimage and
denote the two threshold images (see prepare_variation_modelprepare_variation_modelPrepareVariationModelPrepareVariationModelPrepareVariationModel
or prepare_direct_variation_modelprepare_direct_variation_modelPrepareDirectVariationModelPrepareDirectVariationModelPrepareDirectVariationModel). Then, for ModeModeModeModemode
= 'absolute'"absolute""absolute""absolute""absolute" the output region RegionRegionRegionRegionregion contains
all points that differ substantially from the model, i.e., the
points that fulfill the following condition:
This mode is identical to compare_variation_modelcompare_variation_modelCompareVariationModelCompareVariationModelCompareVariationModel. For
ModeModeModeModemode = 'light'"light""light""light""light", RegionRegionRegionRegionregion contains all
points that are too bright:
For ModeModeModeModemode = 'dark'"dark""dark""dark""dark", RegionRegionRegionRegionregion contains all
points that are too dark:
Finally, for ModeModeModeModemode = 'light_dark'"light_dark""light_dark""light_dark""light_dark" two regions are
returned in RegionRegionRegionRegionregion. The first region contains the result
of ModeModeModeModemode = 'light'"light""light""light""light", while the second region
contains the result of ModeModeModeModemode = 'dark'"dark""dark""dark""dark". The
respective regions can be selected with select_objselect_objSelectObjSelectObjSelectObj.
- Multithreading type: reentrant (runs in parallel with non-exclusive operators).
- Multithreading scope: global (may be called from any thread).
- Automatically parallelized on tuple level.
- Automatically parallelized on domain level.
Image of the object to be compared.
Region containing the points that differ
substantially from the model.
ID of the variation model.
Method used for comparing the variation model.
Default value:
'absolute'
"absolute"
"absolute"
"absolute"
"absolute"
Suggested values: 'absolute'"absolute""absolute""absolute""absolute", 'light'"light""light""light""light", 'dark'"dark""dark""dark""dark", 'light_dark'"light_dark""light_dark""light_dark""light_dark"
open_framegrabber ('File', 1, 1, 0, 0, 0, 0, 'default', -1, \
'default', -1, 'default', 'testimages.seq', 'default', \
-1, -1, AcqHandle)
read_region (Region, 'model.reg')
area_center (Region, Area, RowRef, ColumnRef)
read_shape_model ('model.shm', TemplateID)
read_variation_model ('model.var', ModelID)
for K := 1 to 10000 by 1
grab_image (Image, AcqHandle)
find_shape_model (Image, TemplateID, 0, rad(360), 0.5, 1, 0.5, \
'true', 4, 0.9, Row, Column, Angle, Score)
dev_display (Image)
if (|Score| == 1)
vector_angle_to_rigid (Row, Column, Angle, RowRef, \
ColumnRef, 0, HomMat2D)
affine_trans_image (Image, ImageTrans, HomMat2D, 'constant', \
'false')
compare_ext_variation_model (ImageTrans, RegionDiff, ModelID, \
'light')
dev_display (RegionDiff)
endif
endfor
close_framegrabber (AcqHandle)
compare_ext_variation_modelcompare_ext_variation_modelCompareExtVariationModelCompareExtVariationModelCompareExtVariationModel returns 2 (H_MSG_TRUE) if all parameters
are correct and if the internal threshold images have been generated
with prepare_variation_modelprepare_variation_modelPrepareVariationModelPrepareVariationModelPrepareVariationModel or
prepare_direct_variation_modelprepare_direct_variation_modelPrepareDirectVariationModelPrepareDirectVariationModelPrepareDirectVariationModel.
prepare_variation_modelprepare_variation_modelPrepareVariationModelPrepareVariationModelPrepareVariationModel,
prepare_direct_variation_modelprepare_direct_variation_modelPrepareDirectVariationModelPrepareDirectVariationModelPrepareDirectVariationModel
select_objselect_objSelectObjSelectObjSelectObj,
connectionconnectionConnectionConnectionConnection
compare_variation_modelcompare_variation_modelCompareVariationModelCompareVariationModelCompareVariationModel,
dyn_thresholddyn_thresholdDynThresholdDynThresholdDynThreshold
get_thresh_images_variation_modelget_thresh_images_variation_modelGetThreshImagesVariationModelGetThreshImagesVariationModelGetThreshImagesVariationModel
Matching