Name
prepare_direct_variation_modelprepare_direct_variation_modelPrepareDirectVariationModelprepare_direct_variation_modelPrepareDirectVariationModelPrepareDirectVariationModel — Vorbereitung eines Variationsmodells zum Vergleich.
void PrepareDirectVariationModel(const HObject& RefImage, const HObject& VarImage, const HTuple& ModelID, const HTuple& AbsThreshold, const HTuple& VarThreshold)
void HVariationModel::PrepareDirectVariationModel(const HImage& RefImage, const HImage& VarImage, const HTuple& AbsThreshold, const HTuple& VarThreshold) const
void HVariationModel::PrepareDirectVariationModel(const HImage& RefImage, const HImage& VarImage, double AbsThreshold, double VarThreshold) const
static void HOperatorSet.PrepareDirectVariationModel(HObject refImage, HObject varImage, HTuple modelID, HTuple absThreshold, HTuple varThreshold)
void HVariationModel.PrepareDirectVariationModel(HImage refImage, HImage varImage, HTuple absThreshold, HTuple varThreshold)
void HVariationModel.PrepareDirectVariationModel(HImage refImage, HImage varImage, double absThreshold, double varThreshold)
prepare_direct_variation_modelprepare_direct_variation_modelPrepareDirectVariationModelprepare_direct_variation_modelPrepareDirectVariationModelPrepareDirectVariationModel bereitet ein Variationsmodell
zum Vergleich mit compare_variation_modelcompare_variation_modelCompareVariationModelcompare_variation_modelCompareVariationModelCompareVariationModel oder
compare_ext_variation_modelcompare_ext_variation_modelCompareExtVariationModelcompare_ext_variation_modelCompareExtVariationModelCompareExtVariationModel vor. Hierzu muss das Modell mit
Mode='direct'"direct""direct""direct""direct""direct" mit create_variation_modelcreate_variation_modelCreateVariationModelcreate_variation_modelCreateVariationModelCreateVariationModel
erzeugt worden sein. Im Unterschied zu
prepare_variation_modelprepare_variation_modelPrepareVariationModelprepare_variation_modelPrepareVariationModelPrepareVariationModel werden das ideale Bild und das
zugehörige Variationsbild nicht durch train_variation_modeltrain_variation_modelTrainVariationModeltrain_variation_modelTrainVariationModelTrainVariationModel
berechnet, sondern in RefImageRefImageRefImageRefImageRefImagerefImage und VarImageVarImageVarImageVarImageVarImagevarImage direkt
übergeben. Dies ist sinnvoll, wenn, wie bei
create_variation_modelcreate_variation_modelCreateVariationModelcreate_variation_modelCreateVariationModelCreateVariationModel beschrieben, das Variationsmodell aus
einem Bild erzeugt werden soll. Das Variationsbild
VarImageVarImageVarImageVarImageVarImagevarImage sollte typischerweise mit Kantenoperatoren wie
sobel_ampsobel_ampSobelAmpsobel_ampSobelAmpSobelAmp, edges_imageedges_imageEdgesImageedges_imageEdgesImageEdgesImage oder gray_range_rectgray_range_rectGrayRangeRectgray_range_rectGrayRangeRectGrayRangeRect
erzeugt werden.
prepare_direct_variation_modelprepare_direct_variation_modelPrepareDirectVariationModelprepare_direct_variation_modelPrepareDirectVariationModelPrepareDirectVariationModel berechnet aus dem idealen
Bild RefImageRefImageRefImageRefImageRefImagerefImage und dem Variationsbild VarImageVarImageVarImageVarImageVarImagevarImage zwei
interne Schwellwertbilder und speichert sie im Variationsmodell ab.
Diese Schwellwertbilder werden in compare_variation_modelcompare_variation_modelCompareVariationModelcompare_variation_modelCompareVariationModelCompareVariationModel
oder compare_ext_variation_modelcompare_ext_variation_modelCompareExtVariationModelcompare_ext_variation_modelCompareExtVariationModelCompareExtVariationModel verwendet, um den Vergleich
des aktuellen Bildes mit dem Variationsmodell durchzuführen.
Zur Berechnung der Schwellwertbilder werden zwei Schwellwerte
verwendet. Der Schwellwert AbsThresholdAbsThresholdAbsThresholdAbsThresholdAbsThresholdabsThreshold gibt an, um
wieviele Graustufen sich das Bild des aktuellen Objektes mindestens
vom idealen Bild unterscheiden muss. Der Schwellwert
VarThresholdVarThresholdVarThresholdVarThresholdVarThresholdvarThreshold gibt einen Faktor für den Unterschied des
aktuellen Bildes relativ zu der im Variationsbild gespeicherten
Variation des Objektes an.
VarThresholdVarThresholdVarThresholdVarThresholdVarThresholdvarThreshold legt mittels VarImageVarImageVarImageVarImageVarImagevarImage 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.
AbsThresholdAbsThresholdAbsThresholdAbsThresholdAbsThresholdabsThreshold und
VarThresholdVarThresholdVarThresholdVarThresholdVarThresholdvarThreshold 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 RefImageRefImageRefImageRefImageRefImagerefImage,
v(x,y) das Variationsbild VarImageVarImageVarImageVarImageVarImagevarImage,
a{u}=AbsThresholdAbsThresholdAbsThresholdAbsThresholdAbsThresholdabsThreshold[0],
a{l}=AbsThresholdAbsThresholdAbsThresholdAbsThresholdAbsThresholdabsThreshold[1],
b{u}=VarThresholdVarThresholdVarThresholdVarThresholdVarThresholdvarThreshold[0]
und
b{l}=VarThresholdVarThresholdVarThresholdVarThresholdVarThresholdvarThreshold[1]
(bzw.
a{u}=AbsThresholdAbsThresholdAbsThresholdAbsThresholdAbsThresholdabsThreshold,
a{l}=AbsThresholdAbsThresholdAbsThresholdAbsThresholdAbsThresholdabsThreshold,
b{u}=VarThresholdVarThresholdVarThresholdVarThresholdVarThresholdvarThreshold und
b{l}=VarThresholdVarThresholdVarThresholdVarThresholdVarThresholdvarThreshold).
Dann werden die beiden Schwellwertbilder t_{u,l} wie
folgt berechnet:
t{u}(x,y) = i(x,y) + max{a{u},b{u}*v(x,y)}
t{l}(x,y) = i(x,y) - max{a{l},b{l}*v(x,y)}
Wenn das aktuelle Bild c(x,y) mit
compare_variation_modelcompare_variation_modelCompareVariationModelcompare_variation_modelCompareVariationModelCompareVariationModel mit dem Variationsmodell verglichen
wird, wird die Ausgaberegion aus allen Punkten bestimmt, die sich
stark vom Modell unterscheiden, d.h. für die gilt:
c(x,y) > t{u}(x,y) or c(x,y) < t{l}(x,y) .
In compare_ext_variation_modelcompare_ext_variation_modelCompareExtVariationModelcompare_ext_variation_modelCompareExtVariationModelCompareExtVariationModel 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_modelget_thresh_images_variation_modelGetThreshImagesVariationModelget_thresh_images_variation_modelGetThreshImagesVariationModelGetThreshImagesVariationModel ausgelesen werden.
Es ist zu beachten, dass RefImageRefImageRefImageRefImageRefImagerefImage und VarImageVarImageVarImageVarImageVarImagevarImage
nicht als ideales Bild bzw. als Variationsbild im Modell
abgespeichert werden, um Speicherplatz im Modell zu sparen.
- Multithreading-Typ: exclusive (läuft parallel nur zu unabhängigen Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Wird ohne Parallelisierung verarbeitet.
Referenzbild des Objektes.
Variationsbild des Objekts.
ID des Variationsmodells.
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
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')
clear_variation_model (ModelID)
prepare_direct_variation_modelprepare_direct_variation_modelPrepareDirectVariationModelprepare_direct_variation_modelPrepareDirectVariationModelPrepareDirectVariationModel liefert 2 (H_MSG_TRUE) zurück, wenn
alle Parameter korrekt sind.
sobel_ampsobel_ampSobelAmpsobel_ampSobelAmpSobelAmp,
edges_imageedges_imageEdgesImageedges_imageEdgesImageEdgesImage,
gray_range_rectgray_range_rectGrayRangeRectgray_range_rectGrayRangeRectGrayRangeRect
compare_variation_modelcompare_variation_modelCompareVariationModelcompare_variation_modelCompareVariationModelCompareVariationModel,
compare_ext_variation_modelcompare_ext_variation_modelCompareExtVariationModelcompare_ext_variation_modelCompareExtVariationModelCompareExtVariationModel,
get_thresh_images_variation_modelget_thresh_images_variation_modelGetThreshImagesVariationModelget_thresh_images_variation_modelGetThreshImagesVariationModelGetThreshImagesVariationModel,
write_variation_modelwrite_variation_modelWriteVariationModelwrite_variation_modelWriteVariationModelWriteVariationModel
prepare_variation_modelprepare_variation_modelPrepareVariationModelprepare_variation_modelPrepareVariationModelPrepareVariationModel
create_variation_modelcreate_variation_modelCreateVariationModelcreate_variation_modelCreateVariationModelCreateVariationModel
Matching