points_lepetitT_points_lepetitPointsLepetitPointsLepetitpoints_lepetit (Operator)

Name

points_lepetitT_points_lepetitPointsLepetitPointsLepetitpoints_lepetit — Suche nach signifikanten Punkten mittels des Lepetit-Operators.

Signatur

points_lepetit(Image : : Radius, CheckNeighbor, MinCheckNeighborDiff, MinScore, Subpix : Row, Column)

Herror T_points_lepetit(const Hobject Image, const Htuple Radius, const Htuple CheckNeighbor, const Htuple MinCheckNeighborDiff, const Htuple MinScore, const Htuple Subpix, Htuple* Row, Htuple* Column)

void PointsLepetit(const HObject& Image, const HTuple& Radius, const HTuple& CheckNeighbor, const HTuple& MinCheckNeighborDiff, const HTuple& MinScore, const HTuple& Subpix, HTuple* Row, HTuple* Column)

void HImage::PointsLepetit(Hlong Radius, Hlong CheckNeighbor, Hlong MinCheckNeighborDiff, Hlong MinScore, const HString& Subpix, HTuple* Row, HTuple* Column) const

void HImage::PointsLepetit(Hlong Radius, Hlong CheckNeighbor, Hlong MinCheckNeighborDiff, Hlong MinScore, const char* Subpix, HTuple* Row, HTuple* Column) const

void HImage::PointsLepetit(Hlong Radius, Hlong CheckNeighbor, Hlong MinCheckNeighborDiff, Hlong MinScore, const wchar_t* Subpix, HTuple* Row, HTuple* Column) const   (Nur Windows)

static void HOperatorSet.PointsLepetit(HObject image, HTuple radius, HTuple checkNeighbor, HTuple minCheckNeighborDiff, HTuple minScore, HTuple subpix, out HTuple row, out HTuple column)

void HImage.PointsLepetit(int radius, int checkNeighbor, int minCheckNeighborDiff, int minScore, string subpix, out HTuple row, out HTuple column)

def points_lepetit(image: HObject, radius: int, check_neighbor: int, min_check_neighbor_diff: int, min_score: int, subpix: str) -> Tuple[Sequence[Union[int, float]], Sequence[Union[int, float]]]

Beschreibung

points_lepetitpoints_lepetitPointsLepetitPointsLepetitPointsLepetitpoints_lepetit extrahiert signifikante Punkte wie z.B. Ecken aus dem Bild ImageImageImageImageimageimage. Dazu wird ImageImageImageImageimageimage zunächst mit einem 3x3 Medianfilter geglättet. Anschließend werden alle Grauwerte auf einem Kreis mit dem Radius RadiusRadiusRadiusRadiusradiusradius um einen Interestpunktkandidaten (m) betrachtet. Es werden die absoluten Differenzen zweier auf dem Kreis diagonal gegenüberliegenden Grauwerte (m1, m2) zu dem des zentralen Pixels m gebildet. Mindestens eine dieser Differenzen muss dabei größer als MinCheckNeighborDiffMinCheckNeighborDiffMinCheckNeighborDiffMinCheckNeighborDiffminCheckNeighborDiffmin_check_neighbor_diff sein. Alle sich gegenüber liegenden Kreispunkte müssen diese Bedingung erfüllen. Um die Detektion von Punkten entlang von leicht gekrümmten Kanten (Aliasing) zu verhindern, ist es möglich, zusätzliche Differenzen von CheckNeighborCheckNeighborCheckNeighborCheckNeighborcheckNeighborcheck_neighbor Kreisnachbarpixeln von m1 und m2 zum Zentrum zu bilden, die ebenfalls obiges Kriterium erfüllen. Durch Bildung aller Grauwertdifferenzen der Kreispunkte zum Zentrum wird ein mittlerer Grauwertunterschied berechnet. Dieser Wert muss größer MinScoreMinScoreMinScoreMinScoreminScoremin_score sein und ermöglicht eine Restriktion auf Punkte hohen Kontrasts. Mit Hilfe der Berechnung aller mittleren Grauwertunterschiede in der Achternachbarschaft des Interestpunktes ist es möglich eine quadratische Gleichung anzupassen. Durch Ermittlung des Maximums dieser Funktion kann die Position des Interestpunktes auf Subpixelgenauigkeit verfeinert werden. Durch das Setzen des Parameters SubpixSubpixSubpixSubpixsubpixsubpix auf 'interpolation' (Default) oder 'none' kann dieses Verhalten an- bzw. ausgeschaltet werden. Die so ermittelten Punkte werden in RowRowRowRowrowrow und ColumnColumnColumnColumncolumncolumn übergeben. Der Operator points_lepetitpoints_lepetitPointsLepetitPointsLepetitPointsLepetitpoints_lepetit kann für eine besonders schnelle Extraktion signifikanter Punkte verwendet werden. Jedoch sind die extrahierten Punkte weniger Robust, als solche, die z.B. mit Hilfe von points_harrispoints_harrisPointsHarrisPointsHarrisPointsHarrispoints_harris gefunden werden.

Achtung

Beachten Sie, dass Filteroperatoren eventuell unerwartete Resultate ausgeben, wenn ein Bild mit einer reduzierten Domäne als Input übergeben wird. Weitere Informationen können im Kapitel Filter gefunden werden.

Ausführungsinformationen

Parameter

ImageImageImageImageimageimage (input_object)  singlechannelimage objectHImageHObjectHImageHobject (byte / uint2)

Eingabebild.

RadiusRadiusRadiusRadiusradiusradius (input_control)  integer HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Der Radius des Kreises.

Defaultwert: 3

Wertevorschläge: 3, 5, 6, 7, 8, 9, 10, 15

CheckNeighborCheckNeighborCheckNeighborCheckNeighborcheckNeighborcheck_neighbor (input_control)  integer HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Die Anzahl von untersuchten Nachbarpixeln auf dem Kreis.

Defaultwert: 1

Wertevorschläge: 1, 2, 3, 5

MinCheckNeighborDiffMinCheckNeighborDiffMinCheckNeighborDiffMinCheckNeighborDiffminCheckNeighborDiffmin_check_neighbor_diff (input_control)  integer HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Schwellenwert der Grauwertdifferenz zu jedem einzelnen Kreispunkt.

Defaultwert: 15

Wertevorschläge: 10, 15, 20, 25, 30, 35, 40, 45, 60, 80

MinScoreMinScoreMinScoreMinScoreminScoremin_score (input_control)  integer HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Schwellenwert der Grauwertdifferenz zu allen Kreispunkten.

Defaultwert: 30

Wertevorschläge: 5, 10, 15, 20, 25, 30

SubpixSubpixSubpixSubpixsubpixsubpix (input_control)  string HTuplestrHTupleHtuple (string) (string) (HString) (char*)

Subpixelgenaue Punktkoordinaten.

Defaultwert: 'interpolation' "interpolation" "interpolation" "interpolation" "interpolation" "interpolation"

Werteliste: 'interpolation'"interpolation""interpolation""interpolation""interpolation""interpolation", 'none'"none""none""none""none""none"

RowRowRowRowrowrow (output_control)  point.y-array HTupleSequence[Union[int, float]]HTupleHtuple (integer / real) (int / long / double) (Hlong / double) (Hlong / double)

Zeilenkoordinaten der detektierten Punkte.

ColumnColumnColumnColumncolumncolumn (output_control)  point.x-array HTupleSequence[Union[int, float]]HTupleHtuple (integer / real) (int / long / double) (Hlong / double) (Hlong / double)

Spaltenkoordinaten der detektierten Punkte.

Vorgänger

gauss_filtergauss_filterGaussFilterGaussFilterGaussFiltergauss_filter

Alternativen

points_foerstnerpoints_foerstnerPointsFoerstnerPointsFoerstnerPointsFoerstnerpoints_foerstner, points_harrispoints_harrisPointsHarrisPointsHarrisPointsHarrispoints_harris, points_harris_binomialpoints_harris_binomialPointsHarrisBinomialPointsHarrisBinomialPointsHarrisBinomialpoints_harris_binomial, points_sojkapoints_sojkaPointsSojkaPointsSojkaPointsSojkapoints_sojka

Modul

Foundation