train_variation_modelT_train_variation_modelTrainVariationModelTrainVariationModeltrain_variation_model (Operator)

Name

train_variation_modelT_train_variation_modelTrainVariationModelTrainVariationModeltrain_variation_model — Train a variation model.

Signature

train_variation_model(Images : : ModelID : )

Herror T_train_variation_model(const Hobject Images, const Htuple ModelID)

void TrainVariationModel(const HObject& Images, const HTuple& ModelID)

void HVariationModel::TrainVariationModel(const HImage& Images) const

void HImage::TrainVariationModel(const HVariationModel& ModelID) const

static void HOperatorSet.TrainVariationModel(HObject images, HTuple modelID)

void HVariationModel.TrainVariationModel(HImage images)

void HImage.TrainVariationModel(HVariationModel modelID)

def train_variation_model(images: HObject, model_id: HHandle) -> None

Description

train_variation_modeltrain_variation_modelTrainVariationModelTrainVariationModelTrainVariationModeltrain_variation_model trains the variation model that is passed in ModelIDModelIDModelIDModelIDmodelIDmodel_id with one or more images, which are passed in ImagesImagesImagesImagesimagesimages.

As described for create_variation_modelcreate_variation_modelCreateVariationModelCreateVariationModelCreateVariationModelcreate_variation_model, a variation model that has been created using the mode 'standard'"standard""standard""standard""standard""standard" can be trained iteratively, i.e., as soon as images of good objects become available, they can be trained with train_variation_modeltrain_variation_modelTrainVariationModelTrainVariationModelTrainVariationModeltrain_variation_model. The ideal image of the object is computed as the mean of all previous training images and the images that are passed in ImagesImagesImagesImagesimagesimages. The corresponding variation image is computed as the standard deviation of the training images and the images that are passed in ImagesImagesImagesImagesimagesimages.

If the variation model has been created using the mode 'robust'"robust""robust""robust""robust""robust", the model cannot be trained iteratively, i.e., all training images must be accumulated using concat_objconcat_objConcatObjConcatObjConcatObjconcat_obj and be trained with train_variation_modeltrain_variation_modelTrainVariationModelTrainVariationModelTrainVariationModeltrain_variation_model in a single call. If any images have been trained previously, the training information of the previous call is discarded. The image of the ideal object is computed as the median of all training images passed in ImagesImagesImagesImagesimagesimages. The corresponding variation image is computed as a suitably scaled median absolute deviation of the training images and the median image.

Attention

At most 65535 training images can be trained.

Execution Information

This operator modifies the state of the following input parameter:

During execution of this operator, access to the value of this parameter must be synchronized if it is used across multiple threads.

Parameters

ImagesImagesImagesImagesimagesimages (input_object)  singlechannelimage(-array) objectHImageHObjectHImageHobject (byte / int2 / uint2)

Images of the object to be trained.

ModelIDModelIDModelIDModelIDmodelIDmodel_id (input_control, state is modified)  variation_model HVariationModel, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

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)
grab_image (Image, AcqHandle)
get_image_pointer1 (Image, Pointer, Type, Width, Height)
dev_display (Image)
draw_region (Region, WindowHandle)
reduce_domain (Image, Region, ImageReduced)
area_center (Region, Area, RowRef, ColumnRef)
create_shape_model (ImageReduced, 4, 0, rad(360), rad(1), 'none', \
                    'use_polarity', 40, 10, TemplateID)
create_variation_model (Width, Height, Type, 'standard', ModelID)
for K := 1 to 100 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)
    if (|Score| == 1)
        vector_angle_to_rigid (Row, Column, Angle, RowRef, \
                               ColumnRef, 0, HomMat2D)
        affine_trans_image (Image, ImageTrans, HomMat2D, 'constant', \
                            'false')
        train_variation_model (ImageTrans, ModelID)
    endif
endfor
prepare_variation_model (ModelID, 10, 4)
write_region (Region, 'model.reg')
write_shape_model (TemplateID, 'model.shm')
write_variation_model (ModelID, 'model.var')
close_framegrabber (AcqHandle)

Result

train_variation_modeltrain_variation_modelTrainVariationModelTrainVariationModelTrainVariationModeltrain_variation_model returns TRUE if all parameters are correct.

Possible Predecessors

create_variation_modelcreate_variation_modelCreateVariationModelCreateVariationModelCreateVariationModelcreate_variation_model, find_shape_modelfind_shape_modelFindShapeModelFindShapeModelFindShapeModelfind_shape_model, affine_trans_imageaffine_trans_imageAffineTransImageAffineTransImageAffineTransImageaffine_trans_image, concat_objconcat_objConcatObjConcatObjConcatObjconcat_obj

Possible Successors

prepare_variation_modelprepare_variation_modelPrepareVariationModelPrepareVariationModelPrepareVariationModelprepare_variation_model

See also

prepare_variation_modelprepare_variation_modelPrepareVariationModelPrepareVariationModelPrepareVariationModelprepare_variation_model, compare_variation_modelcompare_variation_modelCompareVariationModelCompareVariationModelCompareVariationModelcompare_variation_model, compare_ext_variation_modelcompare_ext_variation_modelCompareExtVariationModelCompareExtVariationModelCompareExtVariationModelcompare_ext_variation_model, clear_variation_modelclear_variation_modelClearVariationModelClearVariationModelClearVariationModelclear_variation_model

Module

Matching