compare_ext_variation_model — Vergleich eines Bildes mit einem Variationsmodell.
compare_ext_variation_model vergleicht das Eingabebild
Image mit dem Variationsmodell ModelID.
compare_ext_variation_model ist eine Erweiterung von
compare_variation_model, die mehr Modi zum Bildvergleich
bietet. Bevor compare_ext_variation_model aufgerufen werden
kann, müssen mit prepare_variation_model oder
prepare_direct_variation_model die beiden internen
Schwellwertbilder erzeugt worden sein. Sei das aktuelle Bild
Image durch c(x,y) bezeichnet und die beiden
internen Schwellwertbilder mit (siehe
prepare_variation_model oder
prepare_direct_variation_model). Dann wird für
Mode = 'absolute' die Ausgaberegion
Region aus allen Punkten bestimmt, die sich stark vom
Modell unterscheiden, d.h. für die gilt:
Diese Modus ist also identisch zu compare_variation_model.
Für Mode = 'light' besteht Region aus
allen Punkten, die zu hell sind:
Für Mode = 'dark' besteht Region aus
allen Punkten, die zu dunkel sind:
Schließlich werden für Mode = 'light_dark' in
Region zwei Regionen zurückgeliefert. In der ersten
Region ist das Ergebnis von Mode = 'light', in
der zweiten Region das Ergebnis von Mode =
'dark'. Die jeweiligen Regionen können mit
select_obj selektiert werden.
Image (input_object) singlechannelimage(-array) → object (byte / int2 / uint2)
Bild des zu vergleichenden Objekts.
Region (output_object) region(-array) → object
Region der Punkte, die sich stark vom Modell unterscheiden.
ModelID (input_control) variation_model → (handle)
ID des Variationsmodells.
Mode (input_control) string → (string)
Art des Vergleichs mit dem Variationsmodells.
Defaultwert: 'absolute'
Wertevorschläge: 'absolute', 'light', 'dark', 'light_dark'
open_framegrabber ('File', 1, 1, 0, 0, 0, 0, 'default', -1, \
'default', -1, 'default', 'testimages.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)
dev_display (Image)
if (|Score| == 1)
vector_angle_to_rigid (Row, Column, Angle, RowRef, \
ColumnRef, 0, HomMat2D)
affine_trans_image (Image, ImageTrans, HomMat2D, 'constant', \
'false')
compare_ext_variation_model (ImageTrans, RegionDiff, ModelID, \
'light')
dev_display (RegionDiff)
endif
endfor
close_framegrabber (AcqHandle)
compare_ext_variation_model liefert 2 (H_MSG_TRUE) zurück, wenn alle
Parameter korrekt sind und die internen Schwellwertbilder zuvor mit
prepare_variation_model oder
prepare_direct_variation_model erzeugt worden sind.
prepare_variation_model,
prepare_direct_variation_model
compare_variation_model,
dyn_threshold
get_thresh_images_variation_model
Matching