Operator Reference

compare_ext_variation_modelT_compare_ext_variation_modelCompareExtVariationModelCompareExtVariationModelcompare_ext_variation_model (Operator)

compare_ext_variation_modelT_compare_ext_variation_modelCompareExtVariationModelCompareExtVariationModelcompare_ext_variation_model — Compare an image to a variation model.

Signature

compare_ext_variation_model(Image : Region : ModelID, Mode : )

Herror T_compare_ext_variation_model(const Hobject Image, Hobject* Region, const Htuple ModelID, const Htuple Mode)

void CompareExtVariationModel(const HObject& Image, HObject* Region, const HTuple& ModelID, const HTuple& Mode)

HRegion HVariationModel::CompareExtVariationModel(const HImage& Image, const HString& Mode) const

HRegion HVariationModel::CompareExtVariationModel(const HImage& Image, const char* Mode) const

HRegion HVariationModel::CompareExtVariationModel(const HImage& Image, const wchar_t* Mode) const   ( Windows only)

HRegion HImage::CompareExtVariationModel(const HVariationModel& ModelID, const HString& Mode) const

HRegion HImage::CompareExtVariationModel(const HVariationModel& ModelID, const char* Mode) const

HRegion HImage::CompareExtVariationModel(const HVariationModel& ModelID, const wchar_t* Mode) const   ( Windows only)

static void HOperatorSet.CompareExtVariationModel(HObject image, out HObject region, HTuple modelID, HTuple mode)

HRegion HVariationModel.CompareExtVariationModel(HImage image, string mode)

HRegion HImage.CompareExtVariationModel(HVariationModel modelID, string mode)

def compare_ext_variation_model(image: HObject, model_id: HHandle, mode: str) -> HObject

Description

compare_ext_variation_modelcompare_ext_variation_modelCompareExtVariationModelCompareExtVariationModelcompare_ext_variation_model compares the input image ImageImageImageimageimage to the variation model given by ModelIDModelIDModelIDmodelIDmodel_id. compare_ext_variation_modelcompare_ext_variation_modelCompareExtVariationModelCompareExtVariationModelcompare_ext_variation_model is an extension of compare_variation_modelcompare_variation_modelCompareVariationModelCompareVariationModelcompare_variation_model that provides more modes for the image comparison. Before compare_ext_variation_modelcompare_ext_variation_modelCompareExtVariationModelCompareExtVariationModelcompare_ext_variation_model can be called, the two internal threshold images of the variation model must have been created with prepare_variation_modelprepare_variation_modelPrepareVariationModelPrepareVariationModelprepare_variation_model or prepare_direct_variation_modelprepare_direct_variation_modelPrepareDirectVariationModelPrepareDirectVariationModelprepare_direct_variation_model. Let c(x,y) denote the input image ImageImageImageimageimage and denote the two threshold images (see prepare_variation_modelprepare_variation_modelPrepareVariationModelPrepareVariationModelprepare_variation_model or prepare_direct_variation_modelprepare_direct_variation_modelPrepareDirectVariationModelPrepareDirectVariationModelprepare_direct_variation_model). 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_modelCompareVariationModelCompareVariationModelcompare_variation_model. 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_objSelectObjSelectObjselect_obj.

Execution Information

  • 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.

Parameters

ImageImageImageimageimage (input_object)  singlechannelimage(-array) objectHImageHObjectHObjectHobject (byte / int2 / uint2)

Image of the object to be compared.

RegionRegionRegionregionregion (output_object)  region(-array) objectHRegionHObjectHObjectHobject *

Region containing the points that differ substantially from the model.

ModelIDModelIDModelIDmodelIDmodel_id (input_control)  variation_model HVariationModel, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

ID of the variation model.

ModeModeModemodemode (input_control)  string HTuplestrHTupleHtuple (string) (string) (HString) (char*)

Method used for comparing the variation model.

Default: '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"

Example (HDevelop)

read_shape_model ('model.shm', TemplateID)
read_variation_model ('model.var', ModelID)
for K := 1 to 10 by 1
    read_image (Image, 'pen-' + K$'02')
    find_generic_shape_model (Image, TemplateID, MatchResultID, \
                              NumMatchResult)
    get_generic_shape_model_result (MatchResultID, 'all', 'hom_mat_2d', \
                                    HomMat2D)
    dev_display (Image)
    if (NumMatchResult == 1)
        affine_trans_image (Image, ImageTrans, HomMat2D, 'constant', \
                            'false')
        compare_ext_variation_model (ImageTrans, RegionDiff, ModelID, \
                                     'absolute')
        dev_display (RegionDiff)
    endif
endfor

Result

compare_ext_variation_modelcompare_ext_variation_modelCompareExtVariationModelCompareExtVariationModelcompare_ext_variation_model returns 2 ( H_MSG_TRUE) if all parameters are correct and if the internal threshold images have been generated with prepare_variation_modelprepare_variation_modelPrepareVariationModelPrepareVariationModelprepare_variation_model or prepare_direct_variation_modelprepare_direct_variation_modelPrepareDirectVariationModelPrepareDirectVariationModelprepare_direct_variation_model.

Possible Predecessors

prepare_variation_modelprepare_variation_modelPrepareVariationModelPrepareVariationModelprepare_variation_model, prepare_direct_variation_modelprepare_direct_variation_modelPrepareDirectVariationModelPrepareDirectVariationModelprepare_direct_variation_model

Possible Successors

select_objselect_objSelectObjSelectObjselect_obj, connectionconnectionConnectionConnectionconnection

Alternatives

compare_variation_modelcompare_variation_modelCompareVariationModelCompareVariationModelcompare_variation_model, dyn_thresholddyn_thresholdDynThresholdDynThresholddyn_threshold

See also

get_thresh_images_variation_modelget_thresh_images_variation_modelGetThreshImagesVariationModelGetThreshImagesVariationModelget_thresh_images_variation_model

Module

Matching