train_variation_model
— Trainieren eines Variationsmodells.
train_variation_model
trainiert das durch ModelID
angegebene Variationsmodell mit einem oder mehreren Bildern, die in
Images
übergeben werden.
Wie bei create_variation_model
beschrieben, kann ein
Variationsmodell, das mit dem Modus 'standard' erzeugt
worden ist, iterativ trainiert werden kann, d.h. sobald ein oder
mehrere Bilder eines guten Objektes vorliegen, können diese mit
train_variation_model
trainiert werden. Das ideale Bild des
Objektes wird in diesem Modus aus dem Mittelwert aller bisherigen
Trainingsbilder und den Bildern, die in Images
übergeben
werden, berechnet. Das zugehörige Variationsbild wird aus der
Standardabweichung der Trainingsbilder und der Bilder, die in
Images
übergeben werden, berechnet.
Falls das Variationsmodell mit dem Modus 'robust' erzeugt
worden ist, kann das Modell nicht iterativ trainiert werden,
d.h. alle Trainingsbilder müssen mit concat_obj
aufgesammelt werden und in einem Aufruf von
train_variation_model
trainiert werden. Falls zuvor schon
Bilder trainiert worden sind, geht die Trainingsinformation
verloren. Das ideale Bild des Objektes wird in diesem Modus aus dem
Median aller in Images
übergebenen Trainingsbilder
berechnet. Das zugehörige Variationsbild wird aus dem Median der
absoluten Abweichungen der Trainingsbilder vom Median berechnet und
geeignet skaliert.
Es können maximal 65535 Trainingsbilder trainiert werden.
Dieser Operator modifiziert den Zustand des folgenden Eingabeparameters:
Während der Ausführung dieses Operators muss der Zugriff auf den Wert dieses Parameters synchronisiert werden, wenn er über mehrere Threads hinweg verwendet wird.
Images
(input_object) singlechannelimage(-array) →
object (byte / int2 / uint2)
Bilder des zu trainierenden Objekts.
ModelID
(input_control, Zustand wird modifiziert) variation_model →
(handle)
ID des Variationsmodells.
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)
train_variation_model
liefert 2 (H_MSG_TRUE) zurück, wenn alle
Parameter korrekt sind.
create_variation_model
,
find_shape_model
,
affine_trans_image
,
concat_obj
prepare_variation_model
,
compare_variation_model
,
compare_ext_variation_model
,
clear_variation_model
Matching