find_local_deformable_modelT_find_local_deformable_modelFindLocalDeformableModelFindLocalDeformableModel (Operator)

Name

find_local_deformable_modelT_find_local_deformable_modelFindLocalDeformableModelFindLocalDeformableModel — Suche nach den besten Matches eines lokal deformierbaren Modells in einem Bild.

Signatur

find_local_deformable_model(Image : ImageRectified, VectorField, DeformedContours : ModelID, AngleStart, AngleExtent, ScaleRMin, ScaleRMax, ScaleCMin, ScaleCMax, MinScore, NumMatches, MaxOverlap, NumLevels, Greediness, ResultType, GenParamName, GenParamValue : Score, Row, Column)

Herror T_find_local_deformable_model(const Hobject Image, Hobject* ImageRectified, Hobject* VectorField, Hobject* DeformedContours, const Htuple ModelID, const Htuple AngleStart, const Htuple AngleExtent, const Htuple ScaleRMin, const Htuple ScaleRMax, const Htuple ScaleCMin, const Htuple ScaleCMax, const Htuple MinScore, const Htuple NumMatches, const Htuple MaxOverlap, const Htuple NumLevels, const Htuple Greediness, const Htuple ResultType, const Htuple GenParamName, const Htuple GenParamValue, Htuple* Score, Htuple* Row, Htuple* Column)

void FindLocalDeformableModel(const HObject& Image, HObject* ImageRectified, HObject* VectorField, HObject* DeformedContours, const HTuple& ModelID, const HTuple& AngleStart, const HTuple& AngleExtent, const HTuple& ScaleRMin, const HTuple& ScaleRMax, const HTuple& ScaleCMin, const HTuple& ScaleCMax, const HTuple& MinScore, const HTuple& NumMatches, const HTuple& MaxOverlap, const HTuple& NumLevels, const HTuple& Greediness, const HTuple& ResultType, const HTuple& GenParamName, const HTuple& GenParamValue, HTuple* Score, HTuple* Row, HTuple* Column)

HImage HDeformableModel::FindLocalDeformableModel(const HImage& Image, HImage* VectorField, HXLDCont* DeformedContours, double AngleStart, double AngleExtent, double ScaleRMin, double ScaleRMax, double ScaleCMin, double ScaleCMax, double MinScore, Hlong NumMatches, double MaxOverlap, Hlong NumLevels, double Greediness, const HTuple& ResultType, const HTuple& GenParamName, const HTuple& GenParamValue, HTuple* Score, HTuple* Row, HTuple* Column) const

HImage HImage::FindLocalDeformableModel(HImage* VectorField, HXLDCont* DeformedContours, const HDeformableModel& ModelID, double AngleStart, double AngleExtent, double ScaleRMin, double ScaleRMax, double ScaleCMin, double ScaleCMax, double MinScore, Hlong NumMatches, double MaxOverlap, Hlong NumLevels, double Greediness, const HTuple& ResultType, const HTuple& GenParamName, const HTuple& GenParamValue, HTuple* Score, HTuple* Row, HTuple* Column) const

static void HOperatorSet.FindLocalDeformableModel(HObject image, out HObject imageRectified, out HObject vectorField, out HObject deformedContours, HTuple modelID, HTuple angleStart, HTuple angleExtent, HTuple scaleRMin, HTuple scaleRMax, HTuple scaleCMin, HTuple scaleCMax, HTuple minScore, HTuple numMatches, HTuple maxOverlap, HTuple numLevels, HTuple greediness, HTuple resultType, HTuple genParamName, HTuple genParamValue, out HTuple score, out HTuple row, out HTuple column)

HImage HDeformableModel.FindLocalDeformableModel(HImage image, out HImage vectorField, out HXLDCont deformedContours, double angleStart, double angleExtent, double scaleRMin, double scaleRMax, double scaleCMin, double scaleCMax, double minScore, int numMatches, double maxOverlap, int numLevels, double greediness, HTuple resultType, HTuple genParamName, HTuple genParamValue, out HTuple score, out HTuple row, out HTuple column)

HImage HImage.FindLocalDeformableModel(out HImage vectorField, out HXLDCont deformedContours, HDeformableModel modelID, double angleStart, double angleExtent, double scaleRMin, double scaleRMax, double scaleCMin, double scaleCMax, double minScore, int numMatches, double maxOverlap, int numLevels, double greediness, HTuple resultType, HTuple genParamName, HTuple genParamValue, out HTuple score, out HTuple row, out HTuple column)

Beschreibung

Der Operator find_local_deformable_modelfind_local_deformable_modelFindLocalDeformableModelFindLocalDeformableModelFindLocalDeformableModel sucht die besten NumMatchesNumMatchesNumMatchesNumMatchesnumMatches Instanzen eines lokal deformierbaren Modells ModelIDModelIDModelIDModelIDmodelID in dem Suchbild ImageImageImageImageimage. Die Modelle müssen vorher durch create_local_deformable_modelcreate_local_deformable_modelCreateLocalDeformableModelCreateLocalDeformableModelCreateLocalDeformableModel oder read_deformable_modelread_deformable_modelReadDeformableModelReadDeformableModelReadDeformableModel erzeugt worden sein.

Im Normalfall wird das Modell innerhalb des Definitionsbereiches des Eingabebildes nur an den Stellen gesucht, an denen das Modell vollständig in das Bild passt. Das bedeutet, dass das Modell nicht gefunden werden kann, wenn es aus dem Bild herausragt, selbst wenn es eine Bewertung größer als MinScoreMinScoreMinScoreMinScoreminScore erreichen würde. Außerdem kann es sein, dass das Modell, wenn es in einer der Pyramidenebenen den Bildrand berührt, ebenfalls nicht gefunden wird, auch wenn es im ursprünglichen Bild vollständig enthalten ist. Als Daumenregel gilt hier, dass das Modell dann nicht gefunden werden könnte, wenn seine Distanz zum Bildrand unter fällt. Dieses Verhalten kann mit set_system('border_shape_models','true')set_system("border_shape_models","true")SetSystem("border_shape_models","true")SetSystem("border_shape_models","true")SetSystem("border_shape_models","true") umgestellt werden, so dass auch Modelle gefunden werden, die aus dem Bild herausragen, falls sie eine Bewertung größer als MinScoreMinScoreMinScoreMinScoreminScore erreichen. Dabei werden Punkte außerhalb des Bildes als verdeckt angesehen, d.h. sie verringern die Bewertung. Es ist zu beachten, dass dieser Modus die Laufzeit der Suche erhöht. Es ist weiter zu beachten, dass in seltenen Fällen, die typischerweise nur in künstlichen Bildern auftreten, auch dann kein Modell gefunden wird, wenn das Modell in einer Pyramidenebene die reduzierte Bilddomäne berührt. In diesem Fall kann es helfen, die Region der Domäne um , z.B., mit dilation_circledilation_circleDilationCircleDilationCircleDilationCircle zu vergrößern.

Der Operator find_local_deformable_modelfind_local_deformable_modelFindLocalDeformableModelFindLocalDeformableModelFindLocalDeformableModel gibt die Zeilen RowRowRowRowrow und Spalten ColumnColumnColumnColumncolumn der Koordinaten einer gefundenen Instanz zurück. Zusätzlich kann ein rektifizierter Teil des Bildes, das entsprechende Vektorfeld und die Konturen der gefundenen deformierten Modellinstanz in ImageRectifiedImageRectifiedImageRectifiedImageRectifiedimageRectified, VectorFieldVectorFieldVectorFieldVectorFieldvectorField und DeformedContoursDeformedContoursDeformedContoursDeformedContoursdeformedContours zurückgegeben werden. Die Voreinstellung ist, dass diese ikonischen Objekte nicht zurückgegeben werden. In dem Fall das sie gebraucht werden muss der Parameter ResultTypeResultTypeResultTypeResultTyperesultType auf 'image_rectified', 'vector_field' und 'deformed_contours' gesetzt werden. Die Größe von ImageRectifiedImageRectifiedImageRectifiedImageRectifiedimageRectified und VectorFieldVectorFieldVectorFieldVectorFieldvectorField ist das kleinste achsenparallele Rechteck der ROI des Bildes, das verwendet wurde um das lokal deformierbare Model mit create_local_deformable_modelcreate_local_deformable_modelCreateLocalDeformableModelCreateLocalDeformableModelCreateLocalDeformableModel zu erzeugen. Die Größe des rektifizierten Bildes und des Vektorfeldes kann in alle Richtungen durch setzen von GenParamNameGenParamNameGenParamNameGenParamNamegenParamName auf 'expand_border' und des entsprechenden GenParamValueGenParamValueGenParamValueGenParamValuegenParamValue (die Anzahl Pixel) vergrößert werden. Optional kann auch eine spezifische Richtung durch 'expand_border_top', 'expand_border_bottom', 'expand_border_left' und 'expand_border_right' gesetzt werden. Es ist zu beachten, dass das VectorFieldVectorFieldVectorFieldVectorFieldvectorField vom semantischen Typ 'vector_field_absolute' ist und damit in absoluten Koordinaten angegeben ist, und convert_map_typeconvert_map_typeConvertMapTypeConvertMapTypeConvertMapType übergeben werden kann.

Die Glattheit der geschätzten Deformation kann durch setzen von GenParamNameGenParamNameGenParamNameGenParamNamegenParamName auf 'deformation_smoothness' angegeben werden. Der Wert für 'deformation_smoothness' kann als Größe eines Glättungsfilters der auf das Deformationsfeld angewendet wird, verstanden werden. Ein sehr kleiner Wert erwartet eine starke Deformation, ein sehr großer Wert ein rigides Objekt. Der minimale Wert für 'deformation_smoothness' ist 3, ein typischer Wert ist 11. Für Fälle in denen nur sehr kleine globale Deformationen erwartet werden, sollte der Wert weiter erhöht werden.

Zusätzlich wird in ScoreScoreScoreScorescore die Bewertung der gefundenen Instanzen zurückgegeben. Die Bewertung ist eine Zahl zwischen 0 und 1 und ist ein ungefähres Maß dafür, welcher Anteil des Modells im Bild zu sehen ist.

Für eine weitere Erklärung des deformierbaren Modells und seiner Parameter sei auf die Beschreibung in find_planar_uncalib_deformable_modelfind_planar_uncalib_deformable_modelFindPlanarUncalibDeformableModelFindPlanarUncalibDeformableModelFindPlanarUncalibDeformableModel verwiesen.

Ausführungsinformationen

Parameter

ImageImageImageImageimage (input_object)  (multichannel-)image objectHImageHImageHobject (byte / uint2)

Eingabebild, in dem das Modell gefunden werden soll.

ImageRectifiedImageRectifiedImageRectifiedImageRectifiedimageRectified (output_object)  (multichannel-)image(-array) objectHImageHImageHobject * (byte / uint2)

Rektifizierter Bildausschnitt.

VectorFieldVectorFieldVectorFieldVectorFieldvectorField (output_object)  singlechannelimage(-array) objectHImageHImageHobject * (vector_field)

Vektorfeld des gefundenen Modells.

DeformedContoursDeformedContoursDeformedContoursDeformedContoursdeformedContours (output_object)  xld_cont-array objectHXLDContHXLDContHobject *

Die deformierten Konturen des gefundenen Modells.

ModelIDModelIDModelIDModelIDmodelID (input_control)  deformable_model HDeformableModel, HTupleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Handle des Modells.

AngleStartAngleStartAngleStartAngleStartangleStart (input_control)  angle.rad HTupleHTupleHtuple (real) (double) (double) (double)

Kleinste auftretende Rotation des Modells.

Defaultwert: -0.39

Wertevorschläge: -3.14, -1.57, -0.79, -0.39, -0.20, 0.0

AngleExtentAngleExtentAngleExtentAngleExtentangleExtent (input_control)  angle.rad HTupleHTupleHtuple (real) (double) (double) (double)

Ausdehnung des Winkelbereichs.

Defaultwert: 0.79

Wertevorschläge: 6.29, 3.14, 1.57, 0.79, 0.39, 0.0

Restriktion: AngleExtent >= 0

ScaleRMinScaleRMinScaleRMinScaleRMinscaleRMin (input_control)  number HTupleHTupleHtuple (real) (double) (double) (double)

Kleinste auftretende Skalierung des Modells in Zeilenrichtung.

Defaultwert: 1.0

Wertevorschläge: 0.5, 0.6, 0.7, 0.8, 0.9, 1.0

Restriktion: ScaleRMin > 0

ScaleRMaxScaleRMaxScaleRMaxScaleRMaxscaleRMax (input_control)  number HTupleHTupleHtuple (real) (double) (double) (double)

Größte auftretende Skalierung des Modells in Zeilenrichtung.

Defaultwert: 1.0

Wertevorschläge: 1.0, 1.1, 1.2, 1.3, 1.4, 1.5

Restriktion: ScaleRMax >= ScaleRMin

ScaleCMinScaleCMinScaleCMinScaleCMinscaleCMin (input_control)  number HTupleHTupleHtuple (real) (double) (double) (double)

Kleinste auftretende Skalierung des Modells in Spaltenrichtung.

Defaultwert: 1.0

Wertevorschläge: 0.5, 0.6, 0.7, 0.8, 0.9, 1.0

Restriktion: ScaleCMin > 0

ScaleCMaxScaleCMaxScaleCMaxScaleCMaxscaleCMax (input_control)  number HTupleHTupleHtuple (real) (double) (double) (double)

Größte auftretende Skalierung des Modells in Spaltenrichtung.

Defaultwert: 1.0

Wertevorschläge: 1.0, 1.1, 1.2, 1.3, 1.4, 1.5

Restriktion: ScaleCMax >= ScaleCMin

MinScoreMinScoreMinScoreMinScoreminScore (input_control)  real HTupleHTupleHtuple (real) (double) (double) (double)

Minimale Bewertung der zu findenden Instanzen des Modells.

Defaultwert: 0.5

Wertevorschläge: 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0

Typischer Wertebereich: 0 ≤ MinScore MinScore MinScore MinScore minScore ≤ 1

Minimale Schrittweite: 0.01

Empfohlene Schrittweite: 0.05

NumMatchesNumMatchesNumMatchesNumMatchesnumMatches (input_control)  integer HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Anzahl der zu findenden Instanzen des Modells (oder 0 für alle Treffer).

Defaultwert: 1

Wertevorschläge: 0, 1, 2, 3, 4, 5, 10, 20

MaxOverlapMaxOverlapMaxOverlapMaxOverlapmaxOverlap (input_control)  real HTupleHTupleHtuple (real) (double) (double) (double)

Maximale Überlappung der zu findenden Instanzen des Modells.

Defaultwert: 1.0

Wertevorschläge: 0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0

Typischer Wertebereich: 0 ≤ MaxOverlap MaxOverlap MaxOverlap MaxOverlap maxOverlap ≤ 1

Minimale Schrittweite: 0.01

Empfohlene Schrittweite: 0.05

NumLevelsNumLevelsNumLevelsNumLevelsnumLevels (input_control)  integer HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Anzahl der verwendeten Pyramidenebenen.

Defaultwert: 0

Werteliste: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10

GreedinessGreedinessGreedinessGreedinessgreediness (input_control)  real HTupleHTupleHtuple (real) (double) (double) (double)

„Gierigkeit“ der Suchheuristik (0: sicher aber langsam; 1: schnell aber Matches können „übersehen“ werden).

Defaultwert: 0.9

Wertevorschläge: 0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0

Typischer Wertebereich: 0 ≤ Greediness Greediness Greediness Greediness greediness ≤ 1

Minimale Schrittweite: 0.01

Empfohlene Schrittweite: 0.05

ResultTypeResultTypeResultTypeResultTyperesultType (input_control)  string-array HTupleHTupleHtuple (string) (string) (HString) (char*)

Die zu berechnenden ikonischen Ergebnisse.

Defaultwert: []

Werteliste: [], 'deformed_contours'"deformed_contours""deformed_contours""deformed_contours""deformed_contours", 'image_rectified'"image_rectified""image_rectified""image_rectified""image_rectified", 'vector_field'"vector_field""vector_field""vector_field""vector_field"

GenParamNameGenParamNameGenParamNameGenParamNamegenParamName (input_control)  string-array HTupleHTupleHtuple (string) (string) (HString) (char*)

Namen der generischen Parameter.

Defaultwert: []

Werteliste: [], 'angle_step'"angle_step""angle_step""angle_step""angle_step", 'deformation_smoothness'"deformation_smoothness""deformation_smoothness""deformation_smoothness""deformation_smoothness", 'expand_border'"expand_border""expand_border""expand_border""expand_border", 'expand_border_bottom'"expand_border_bottom""expand_border_bottom""expand_border_bottom""expand_border_bottom", 'expand_border_left'"expand_border_left""expand_border_left""expand_border_left""expand_border_left", 'expand_border_right'"expand_border_right""expand_border_right""expand_border_right""expand_border_right", 'expand_border_top'"expand_border_top""expand_border_top""expand_border_top""expand_border_top", 'scale_c_step'"scale_c_step""scale_c_step""scale_c_step""scale_c_step", 'scale_r_step'"scale_r_step""scale_r_step""scale_r_step""scale_r_step", 'subpixel'"subpixel""subpixel""subpixel""subpixel"

GenParamValueGenParamValueGenParamValueGenParamValuegenParamValue (input_control)  integer-array HTupleHTupleHtuple (integer / real / string) (int / long / double / string) (Hlong / double / HString) (Hlong / double / char*)

Werte der generischen Parameter.

Defaultwert: []

Werteliste: [], 'least_squares'"least_squares""least_squares""least_squares""least_squares", 'least_squares_high'"least_squares_high""least_squares_high""least_squares_high""least_squares_high", 'least_squares_very_high'"least_squares_very_high""least_squares_very_high""least_squares_very_high""least_squares_very_high", 'none'"none""none""none""none"

ScoreScoreScoreScorescore (output_control)  real-array HTupleHTupleHtuple (real) (double) (double) (double)

Bewertung der gefundenen Instanzen des Modells.

RowRowRowRowrow (output_control)  real-array HTupleHTupleHtuple (real) (double) (double) (double)

Zeilenkoordinate des gefundenen Modells.

ColumnColumnColumnColumncolumn (output_control)  real-array HTupleHTupleHtuple (real) (double) (double) (double)

Spaltenkoordinate des gefundenen Modells.

Ergebnis

Sind die Parameterwerte korrekt, dann liefert find_local_deformable_modelfind_local_deformable_modelFindLocalDeformableModelFindLocalDeformableModelFindLocalDeformableModel den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

create_local_deformable_modelcreate_local_deformable_modelCreateLocalDeformableModelCreateLocalDeformableModelCreateLocalDeformableModel, create_local_deformable_model_xldcreate_local_deformable_model_xldCreateLocalDeformableModelXldCreateLocalDeformableModelXldCreateLocalDeformableModelXld, read_deformable_modelread_deformable_modelReadDeformableModelReadDeformableModelReadDeformableModel

Modul

Matching