prepare_direct_variation_model
— Vorbereitung eines Variationsmodells zum Vergleich.
prepare_direct_variation_model(RefImage, VarImage : : ModelID, AbsThreshold, VarThreshold : )
prepare_direct_variation_model
bereitet ein Variationsmodell
zum Vergleich mit compare_variation_model
oder
compare_ext_variation_model
vor. Hierzu muss das Modell mit
Mode
='direct' mit create_variation_model
erzeugt worden sein. Im Unterschied zu
prepare_variation_model
werden das ideale Bild und das
zugehörige Variationsbild nicht durch train_variation_model
berechnet, sondern in RefImage
und VarImage
direkt
übergeben. Dies ist sinnvoll, wenn, wie bei
create_variation_model
beschrieben, das Variationsmodell aus
einem Bild erzeugt werden soll. Das Variationsbild
VarImage
sollte typischerweise mit Kantenoperatoren wie
sobel_amp
, edges_image
oder gray_range_rect
erzeugt werden.
prepare_direct_variation_model
berechnet aus dem idealen
Bild RefImage
und dem Variationsbild VarImage
zwei
interne Schwellwertbilder und speichert sie im Variationsmodell ab.
Diese Schwellwertbilder werden in compare_variation_model
oder compare_ext_variation_model
verwendet, um den Vergleich
des aktuellen Bildes mit dem Variationsmodell durchzuführen.
Zur Berechnung der Schwellwertbilder werden zwei Schwellwerte
verwendet. Der Schwellwert AbsThreshold
gibt an, um
wieviele Graustufen sich das Bild des aktuellen Objektes mindestens
vom idealen Bild unterscheiden muss. Der Schwellwert
VarThreshold
gibt einen Faktor für den Unterschied des
aktuellen Bildes relativ zu der im Variationsbild gespeicherten
Variation des Objektes an.
VarThreshold
legt mittels VarImage
Regionen fest,
in denen Unterschiede in den Grauwerten auftreten dürfen, die nicht
als Fehler gezählt werden sollen.
Dadurch werden Abweichungen in bestimmten Bereichen des zu prüfenden
Objekts erlaubt.
AbsThreshold
und
VarThreshold
können jeweils einen oder zwei Werte
enthalten. Falls zwei Werte angegeben werden, können
unterschiedliche Schwellen für zu helle und zu dunkle Pixel
festgelegt werden. Dabei bezieht sich der erste Wert auf die zu
hellen Grauwerte und der zweite Wert auf die zu dunklen Grauwerte.
Falls nur ein Wert angegeben wird, bezieht sich der Wert sowohl auf
die zu hellen als auch auf die zu dunklen Grauwerte. Sei
i(x,y) das ideale Bild RefImage
,
v(x,y) das Variationsbild VarImage
,
,
,
und
(bzw.
,
,
und
).
Dann werden die beiden Schwellwertbilder wie
folgt berechnet:
Wenn das aktuelle Bild c(x,y) mit
compare_variation_model
mit dem Variationsmodell verglichen
wird, wird die Ausgaberegion aus allen Punkten bestimmt, die sich
stark vom Modell unterscheiden, d.h. für die gilt:
In compare_ext_variation_model
stehen erweiterte
Vergleichsmodi zur Verfügung, mit denen zusätzlich nur zu helle
Fehler, nur zu dunkle Fehler und zu helle und zu dunkle Fehler als
separate Regionen zurückgeliefert werden können.
Nachdem die Schwellwertbilder erzeugt worden sind, können sie mit
get_thresh_images_variation_model
ausgelesen werden.
Es ist zu beachten, dass RefImage
und VarImage
nicht als ideales Bild bzw. als Variationsbild im Modell
abgespeichert werden, um Speicherplatz im Modell zu sparen.
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.
RefImage
(input_object) singlechannelimage →
object (byte / int2 / uint2)
Referenzbild des Objektes.
VarImage
(input_object) singlechannelimage →
object (byte / int2 / uint2)
Variationsbild des Objekts.
ModelID
(input_control, Zustand wird modifiziert) variation_model →
(handle)
ID des Variationsmodells.
AbsThreshold
(input_control) number(-array) →
(real / integer)
Absoluter Mindestschwellwert für die Unterschiede bezüglich des Variationsmodells.
Defaultwert: 10
Wertevorschläge: 0, 5, 10, 15, 20, 30, 40, 50
Restriktion: AbsThreshold >= 0
VarThreshold
(input_control) number(-array) →
(real / integer)
Schwellwert für die Unterschiede bezüglich der Variation des Variationsmodells.
Defaultwert: 2
Wertevorschläge: 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5
Restriktion: VarThreshold >= 0
read_image (Image, 'model') sobel_amp (Image, VarImage, 'sum_abs', 3) get_image_pointer1 (Image, Pointer, Type, Width, Height) create_variation_model (Width, Height, Type, 'direct', ModelID) prepare_direct_variation_model (Image, VarImage, ModelID, 20, 1) write_variation_model (ModelID, 'model.var')
prepare_direct_variation_model
liefert 2 (H_MSG_TRUE) zurück, wenn
alle Parameter korrekt sind.
sobel_amp
,
edges_image
,
gray_range_rect
compare_variation_model
,
compare_ext_variation_model
,
get_thresh_images_variation_model
,
write_variation_model
Matching