KlassenKlassenKlassenKlassen | | | | Operatoren

prepare_direct_variation_modelprepare_direct_variation_modelPrepareDirectVariationModelprepare_direct_variation_modelPrepareDirectVariationModelPrepareDirectVariationModel (Operator)

Name

prepare_direct_variation_modelprepare_direct_variation_modelPrepareDirectVariationModelprepare_direct_variation_modelPrepareDirectVariationModelPrepareDirectVariationModel — Vorbereitung eines Variationsmodells zum Vergleich.

Signatur

prepare_direct_variation_model(RefImage, VarImage : : ModelID, AbsThreshold, VarThreshold : )

Herror prepare_direct_variation_model(const Hobject RefImage, const Hobject VarImage, const Hlong ModelID, double AbsThreshold, double VarThreshold)

Herror T_prepare_direct_variation_model(const Hobject RefImage, const Hobject VarImage, const Htuple ModelID, const Htuple AbsThreshold, const Htuple VarThreshold)

Herror prepare_direct_variation_model(Hobject RefImage, 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 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

void HOperatorSetX.PrepareDirectVariationModel(
[in] IHUntypedObjectX* RefImage, [in] IHUntypedObjectX* VarImage, [in] VARIANT ModelID, [in] VARIANT AbsThreshold, [in] VARIANT VarThreshold)

void HVariationModelX.PrepareDirectVariationModel(
[in] IHImageX* RefImage, [in] IHImageX* VarImage, [in] VARIANT AbsThreshold, [in] VARIANT VarThreshold)

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)

Beschreibung

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, , , und (bzw. , , und ). Dann werden die beiden Schwellwertbilder wie folgt berechnet:

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:
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.

Parallelisierung

Dieser Operator modifiziert den Zustand des folgenden Eingabeparameters:

Der Wert dieses Parameters darf nicht über mehrere Threads verwendet werden.

Parameter

RefImageRefImageRefImageRefImageRefImagerefImage (input_object)  singlechannelimage objectHImageHImageHImageHImageXHobject (byte / int2 / uint2)

Referenzbild des Objektes.

VarImageVarImageVarImageVarImageVarImagevarImage (input_object)  singlechannelimage objectHImageHImageHImageHImageXHobject (byte / int2 / uint2)

Variationsbild des Objekts.

ModelIDModelIDModelIDModelIDModelIDmodelID (input_control, Zustand wird modifiziert)  variation_model HVariationModel, HTupleHTupleHVariationModel, HTupleHVariationModelX, VARIANTHtuple (integer) (IntPtr) (Hlong) (Hlong) (Hlong) (Hlong)

ID des Variationsmodells.

AbsThresholdAbsThresholdAbsThresholdAbsThresholdAbsThresholdabsThreshold (input_control)  number(-array) HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

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

VarThresholdVarThresholdVarThresholdVarThresholdVarThresholdvarThreshold (input_control)  number(-array) HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

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

Beispiel (HDevelop)

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)

Ergebnis

prepare_direct_variation_modelprepare_direct_variation_modelPrepareDirectVariationModelprepare_direct_variation_modelPrepareDirectVariationModelPrepareDirectVariationModel liefert 2 (H_MSG_TRUE) zurück, wenn alle Parameter korrekt sind.

Vorgänger

sobel_ampsobel_ampSobelAmpsobel_ampSobelAmpSobelAmp, edges_imageedges_imageEdgesImageedges_imageEdgesImageEdgesImage, gray_range_rectgray_range_rectGrayRangeRectgray_range_rectGrayRangeRectGrayRangeRect

Nachfolger

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

Alternativen

prepare_variation_modelprepare_variation_modelPrepareVariationModelprepare_variation_modelPrepareVariationModelPrepareVariationModel

Siehe auch

create_variation_modelcreate_variation_modelCreateVariationModelcreate_variation_modelCreateVariationModelCreateVariationModel

Modul

Matching


KlassenKlassenKlassenKlassen | | | | Operatoren