train_variation_modelT_train_variation_modelTrainVariationModelTrainVariationModel (Operator)

Name

train_variation_modelT_train_variation_modelTrainVariationModelTrainVariationModel — 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)

Description

train_variation_modeltrain_variation_modelTrainVariationModelTrainVariationModelTrainVariationModel trains the variation model that is passed in ModelIDModelIDModelIDModelIDmodelID with one or more images, which are passed in ImagesImagesImagesImagesimages.

As described for create_variation_modelcreate_variation_modelCreateVariationModelCreateVariationModelCreateVariationModel, a variation model that has been created using the mode '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_modelTrainVariationModelTrainVariationModelTrainVariationModel. The ideal image of the object is computed as the mean of all previous training images and the images that are passed in ImagesImagesImagesImagesimages. The corresponding variation image is computed as the standard deviation of the training images and the images that are passed in ImagesImagesImagesImagesimages.

If the variation model has been created using the mode 'robust'"robust""robust""robust""robust", the model cannot be trained iteratively, i.e., all training images must be accumulated using concat_objconcat_objConcatObjConcatObjConcatObj and be trained with train_variation_modeltrain_variation_modelTrainVariationModelTrainVariationModelTrainVariationModel 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 ImagesImagesImagesImagesimages. 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

ImagesImagesImagesImagesimages (input_object)  singlechannelimage(-array) objectHImageHImageHobject (byte / int2 / uint2)

Images of the object to be trained.

ModelIDModelIDModelIDModelIDmodelID (input_control, state is modified)  variation_model HVariationModel, HTupleHTupleHtuple (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_modelTrainVariationModelTrainVariationModelTrainVariationModel returns 2 (H_MSG_TRUE) if all parameters are correct.

Possible Predecessors

create_variation_modelcreate_variation_modelCreateVariationModelCreateVariationModelCreateVariationModel, find_shape_modelfind_shape_modelFindShapeModelFindShapeModelFindShapeModel, affine_trans_imageaffine_trans_imageAffineTransImageAffineTransImageAffineTransImage, concat_objconcat_objConcatObjConcatObjConcatObj

Possible Successors

prepare_variation_modelprepare_variation_modelPrepareVariationModelPrepareVariationModelPrepareVariationModel

See also

prepare_variation_modelprepare_variation_modelPrepareVariationModelPrepareVariationModelPrepareVariationModel, compare_variation_modelcompare_variation_modelCompareVariationModelCompareVariationModelCompareVariationModel, compare_ext_variation_modelcompare_ext_variation_modelCompareExtVariationModelCompareExtVariationModelCompareExtVariationModel, clear_variation_modelclear_variation_modelClearVariationModelClearVariationModelClearVariationModel

Module

Matching