HALCON Reference Manual 10.0.2
Table of Contents / Inspection / Variation Model ClassesClassesClasses | | | Operators

compare_variation_modelcompare_variation_modelcompare_variation_modelCompareVariationModelCompareVariationModel (Operator)

Name

compare_variation_modelcompare_variation_modelcompare_variation_modelCompareVariationModelCompareVariationModel — Compare an image to a variation model.

Signature

compare_variation_model(Image : Region : ModelID : )

Herror compare_variation_model(const Hobject Image, Hobject* Region, const Hlong ModelID)

Herror T_compare_variation_model(const Hobject Image, Hobject* Region, const Htuple ModelID)

Herror compare_variation_model(Hobject Image, Hobject* Region, const HTuple& ModelID)

HRegion HImage::CompareVariationModel(const HVariationModel& ModelID) const

HRegionArray HImageArray::CompareVariationModel(const HVariationModel& ModelID) const

HRegionArray HVariationModel::CompareVariationModel(const HImageArray& Image) const

void HOperatorSetX.CompareVariationModel(
[in] IHUntypedObjectX* Image, [out] IHUntypedObjectX*Region, [in] VARIANT ModelID)

IHRegionX* HVariationModelX.CompareVariationModel([in] IHImageX* Image)

IHRegionX* HImageX.CompareVariationModel([in] IHVariationModelX* ModelID)

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

HRegion HVariationModel.CompareVariationModel(HImage image)

HRegion HImage.CompareVariationModel(HVariationModel modelID)

Description

compare_variation_modelcompare_variation_modelcompare_variation_modelCompareVariationModelCompareVariationModel compares the input image ImageImageImageImageimage to the variation model given by ModelIDModelIDModelIDModelIDmodelID. Before compare_variation_modelcompare_variation_modelcompare_variation_modelCompareVariationModelCompareVariationModel can be called, the two internal threshold images of the variation model must have been created with prepare_variation_modelprepare_variation_modelprepare_variation_modelPrepareVariationModelPrepareVariationModel or prepare_direct_variation_modelprepare_direct_variation_modelprepare_direct_variation_modelPrepareDirectVariationModelPrepareDirectVariationModel. Let c(x,y) denote the input image ImageImageImageImageimage and t{u,l} denote the two threshold images (see prepare_variation_modelprepare_variation_modelprepare_variation_modelPrepareVariationModelPrepareVariationModel or prepare_direct_variation_modelprepare_direct_variation_modelprepare_direct_variation_modelPrepareDirectVariationModelPrepareDirectVariationModel). Then the output region RegionRegionRegionRegionregion contains all points that differ substantially from the model, i.e., the points that fulfill the following condition:

  c(x,y) > t{u}(x,y) or c(x,y) < t{l}(x,y) .

If only too bright or too dark errors should be segmented the operator compare_ext_variation_modelcompare_ext_variation_modelcompare_ext_variation_modelCompareExtVariationModelCompareExtVariationModel can be used.

Parallelization

Parameters

ImageImageImageImageimage (input_object)  image(-array) objectHImageHImageHImageXHobject (byte / int2 / uint2)

Image of the object to be compared.

RegionRegionRegionRegionregion (output_object)  region(-array) objectHRegionHRegionHRegionXHobject *

Region containing the points that differ substantially from the model.

ModelIDModelIDModelIDModelIDmodelID (input_control)  variation_model HVariationModel, HTupleHVariationModel, HTupleHVariationModelX, VARIANTHtuple (integer) (IntPtr) (Hlong) (Hlong) (Hlong)

ID of the variation model.

Example (HDevelop)

open_framegrabber ('File', 1, 1, 0, 0, 0, 0, 'default', -1, \
                   'default', -1, 'default', 'model.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)
    disp_obj (Image, WindowHandle)
    if (|Score| = 1)
        vector_angle_to_rigid (Row, Column, Angle, RowRef, \
                               ColumnRef, 0, HomMat2D)
        affine_trans_image (Image, ImageTrans, HomMat2D, 'constant', \
                            'false')
        compare_variation_model (ImageTrans, RegionDiff, ModelID)
        disp_obj (RegionDiff, WindowHandle)
    endif
endfor
clear_shape_model (TemplateID)
clear_variation_model (ModelID)
close_framegrabber (AcqHandle)

Result

compare_variation_modelcompare_variation_modelcompare_variation_modelCompareVariationModelCompareVariationModel returns 2 (H_MSG_TRUE) if all parameters are correct and if the internal threshold images have been generated with prepare_variation_modelprepare_variation_modelprepare_variation_modelPrepareVariationModelPrepareVariationModel or prepare_direct_variation_modelprepare_direct_variation_modelprepare_direct_variation_modelPrepareDirectVariationModelPrepareDirectVariationModel.

Possible Predecessors

prepare_variation_modelprepare_variation_modelprepare_variation_modelPrepareVariationModelPrepareVariationModel, prepare_direct_variation_modelprepare_direct_variation_modelprepare_direct_variation_modelPrepareDirectVariationModelPrepareDirectVariationModel

Possible Successors

connectionconnectionconnectionConnectionConnection

Alternatives

compare_ext_variation_modelcompare_ext_variation_modelcompare_ext_variation_modelCompareExtVariationModelCompareExtVariationModel, dyn_thresholddyn_thresholddyn_thresholdDynThresholdDynThreshold

See also

get_thresh_images_variation_modelget_thresh_images_variation_modelget_thresh_images_variation_modelGetThreshImagesVariationModelGetThreshImagesVariationModel

Module

Matching


Table of Contents / Inspection / Variation Model ClassesClassesClasses | | | Operators
HALCON Reference Manual 10.0.2 Copyright © 1996-2011 MVTec Software GmbH