measure_threshT_measure_threshMeasureThreshMeasureThresh (Operator)

Name

measure_threshT_measure_threshMeasureThreshMeasureThresh — Extraktion von Punkten mit einem bestimmten Grauwert entlang eines Rechtecks oder einem Kreisringsegment.

Signatur

measure_thresh(Image : : MeasureHandle, Sigma, Threshold, Select : RowThresh, ColumnThresh, Distance)

Herror T_measure_thresh(const Hobject Image, const Htuple MeasureHandle, const Htuple Sigma, const Htuple Threshold, const Htuple Select, Htuple* RowThresh, Htuple* ColumnThresh, Htuple* Distance)

void MeasureThresh(const HObject& Image, const HTuple& MeasureHandle, const HTuple& Sigma, const HTuple& Threshold, const HTuple& Select, HTuple* RowThresh, HTuple* ColumnThresh, HTuple* Distance)

void HMeasure::MeasureThresh(const HImage& Image, double Sigma, double Threshold, const HString& Select, HTuple* RowThresh, HTuple* ColumnThresh, HTuple* Distance) const

void HMeasure::MeasureThresh(const HImage& Image, double Sigma, double Threshold, const char* Select, HTuple* RowThresh, HTuple* ColumnThresh, HTuple* Distance) const

void HMeasure::MeasureThresh(const HImage& Image, double Sigma, double Threshold, const wchar_t* Select, HTuple* RowThresh, HTuple* ColumnThresh, HTuple* Distance) const   (Nur Windows)

void HImage::MeasureThresh(const HMeasure& MeasureHandle, double Sigma, double Threshold, const HString& Select, HTuple* RowThresh, HTuple* ColumnThresh, HTuple* Distance) const

void HImage::MeasureThresh(const HMeasure& MeasureHandle, double Sigma, double Threshold, const char* Select, HTuple* RowThresh, HTuple* ColumnThresh, HTuple* Distance) const

void HImage::MeasureThresh(const HMeasure& MeasureHandle, double Sigma, double Threshold, const wchar_t* Select, HTuple* RowThresh, HTuple* ColumnThresh, HTuple* Distance) const   (Nur Windows)

static void HOperatorSet.MeasureThresh(HObject image, HTuple measureHandle, HTuple sigma, HTuple threshold, HTuple select, out HTuple rowThresh, out HTuple columnThresh, out HTuple distance)

void HMeasure.MeasureThresh(HImage image, double sigma, double threshold, string select, out HTuple rowThresh, out HTuple columnThresh, out HTuple distance)

void HImage.MeasureThresh(HMeasure measureHandle, double sigma, double threshold, string select, out HTuple rowThresh, out HTuple columnThresh, out HTuple distance)

Beschreibung

measure_threshmeasure_threshMeasureThreshMeasureThreshMeasureThresh bestimmt in einem eindimensionalen Grauwertprofil die Punkte mit dem Grauwert ThresholdThresholdThresholdThresholdthreshold. Da das Grauwertprofil auf die Hauptachse (respektive den Bogen) des mit MeasureHandleMeasureHandleMeasureHandleMeasureHandlemeasureHandle übergebenen Messobjekts projiziert wird, entsprechen die im Grauwertprofil ermittelten Punkte bestimmten Bildkoordinaten; diese werden mit RowThreshRowThreshRowThreshRowThreshrowThresh und ColumnThreshColumnThreshColumnThreshColumnThreshcolumnThresh zurückgeliefert.

Das Konzept der 1D-Vermessung ist bei der Einleitung zu Kapitel 1D-Vermessung beschrieben.

Durchstößt das Grauwertprofil an mehreren Stellen den übergebenen Schwellwert, kann mit dem Parameter SelectSelectSelectSelectselect ausgewählt werden, ob nur der erste ('first'"first""first""first""first"), nur der letzte ('last'"last""last""last""last"), der erste und der letzte ('first_last'"first_last""first_last""first_last""first_last") oder alle ('all'"all""all""all""all") Punkte zurückgeliefert werden sollen. In den letzten beiden Fällen enthält DistanceDistanceDistanceDistancedistance die Abstände zwischen benachbarten Punkten.

Das zugrundegelegte Grauwertprofil wird durch Mittelung der Grauwerte entlang all der Liniensegmente gebildet, die wie folgt durch das Measure-Rechteck definiert werden:

  1. Die Liniensegmente stehen senkrecht zur Hauptachse des Rechtecks,

  2. sie haben einen ganzzahligen Abstand zum Rechteckmittelpunkt,

  3. sie werden durch das Rechteck begrenzt.

Für jedes Liniensegment werden die Grauwerte aller Punkte, die einen ganzzahligen Abstand zur Hauptachse des Rechtecks besitzen, gemittelt. Durch Verschiebung und Drehung des Measure-Rechtecks gegenüber den Bildkoordinaten wird das Eingabebild ImageImageImageImageimage im Allgemeinen an Subpixel-Positionen abgetastet.

Da für die Bildabtastung einige Berechnungen erforderlich sind, die in verschiedenen Operatoren Verwendung finden können und darüber hinaus mit einem gewissen Rechenaufwand verbunden sind, erfolgen sie losgelöst von den übrigen Berechnungen mit Hilfe des Operators gen_measure_rectangle2gen_measure_rectangle2GenMeasureRectangle2GenMeasureRectangle2GenMeasureRectangle2 b.z.w. gen_measure_arcgen_measure_arcGenMeasureArcGenMeasureArcGenMeasureArc. Dort kann auch eine Interpolationsmethode, die für die Subpixel-Abtastung verwendet werden soll, angegeben werden.

Achtung

measure_threshmeasure_threshMeasureThreshMeasureThreshMeasureThresh liefert nur dann brauchbare Ergebnisse, falls die Annahme, dass die Kanten gerade und senkrecht zur Hauptachse des Rechtecks sind, erfüllt ist. measure_threshmeasure_threshMeasureThreshMeasureThreshMeasureThresh sollte daher z.B. nicht dazu verwendet werden, Kanten von gekrümmten Objekten zu extrahieren. Weiterhin sollte der Benutzer darauf achten, dass das Rechteck möglichst senkrecht zu den Bildkanten liegt. Außerdem darf SigmaSigmaSigmaSigmasigma nicht größer als ca. 0.5 * Length1 (siehe gen_measure_rectangle2gen_measure_rectangle2GenMeasureRectangle2GenMeasureRectangle2GenMeasureRectangle2 für Length1) sein.

Es ist zu beachten, dass measure_threshmeasure_threshMeasureThreshMeasureThreshMeasureThresh den Definitionsbereich von ImageImageImageImageimage aus Geschwindigkeitsgründen ignoriert. Falls bestimmte Bildbereiche von der Messung ausgeschlossen werden sollen, sollte ein neues Messobjekt mit entsprechend angepassten Parametern erzeugt werden.

Ausführungsinformationen

Parameter

ImageImageImageImageimage (input_object)  singlechannelimage objectHImageHImageHobject (byte / uint2 / real)

Eingabebild.

MeasureHandleMeasureHandleMeasureHandleMeasureHandlemeasureHandle (input_control)  measure HMeasure, HTupleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Handle des Messobjekts.

SigmaSigmaSigmaSigmasigma (input_control)  number HTupleHTupleHtuple (real) (double) (double) (double)

Sigma der Gaußglättung.

Defaultwert: 1.0

Wertevorschläge: 0.0, 0.4, 0.6, 0.8, 1.0, 1.5, 2.0, 3.0, 4.0, 5.0, 7.0, 10.0

Typischer Wertebereich: 0.4 ≤ Sigma Sigma Sigma Sigma sigma ≤ 100 (lin)

Minimale Schrittweite: 0.01

Empfohlene Schrittweite: 0.1

Restriktion: Sigma >= 0.0

ThresholdThresholdThresholdThresholdthreshold (input_control)  number HTupleHTupleHtuple (real) (double) (double) (double)

Schwellwert.

Defaultwert: 128.0

Typischer Wertebereich: 0 ≤ Threshold Threshold Threshold Threshold threshold ≤ 255 (lin)

Minimale Schrittweite: 0.5

Empfohlene Schrittweite: 1

SelectSelectSelectSelectselect (input_control)  string HTupleHTupleHtuple (string) (string) (HString) (char*)

Auswahl der Ergebnispunkte.

Defaultwert: 'all' "all" "all" "all" "all"

Werteliste: 'all'"all""all""all""all", 'first'"first""first""first""first", 'first_last'"first_last""first_last""first_last""first_last", 'last'"last""last""last""last"

RowThreshRowThreshRowThreshRowThreshrowThresh (output_control)  point.y-array HTupleHTupleHtuple (real) (double) (double) (double)

Zeilenkoordinaten der Punkte mit Schwellwert.

ColumnThreshColumnThreshColumnThreshColumnThreshcolumnThresh (output_control)  point.x-array HTupleHTupleHtuple (real) (double) (double) (double)

Spaltenkoordinaten der Punkte mit Schwellwert.

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

Abstand zwischen aufeinanderfolgenden Punkten.

Ergebnis

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

Vorgänger

gen_measure_rectangle2gen_measure_rectangle2GenMeasureRectangle2GenMeasureRectangle2GenMeasureRectangle2

Nachfolger

close_measureclose_measureCloseMeasureCloseMeasureCloseMeasure

Alternativen

measure_posmeasure_posMeasurePosMeasurePosMeasurePos, edges_sub_pixedges_sub_pixEdgesSubPixEdgesSubPixEdgesSubPix, measure_pairsmeasure_pairsMeasurePairsMeasurePairsMeasurePairs

Modul

1D Metrology