KlassenKlassenKlassenKlassen | | | | Operatoren

measure_threshT_measure_threshMeasureThreshmeasure_threshMeasureThreshMeasureThresh (Operator)

Name

measure_threshT_measure_threshMeasureThreshmeasure_threshMeasureThreshMeasureThresh — Extraktion von Punkten mit einem bestimmten Grauwert entlang eines Rechtecks oder einem Kreisring.

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)

Herror measure_thresh(Hobject Image, const HTuple& MeasureHandle, const HTuple& Sigma, const HTuple& Threshold, const HTuple& Select, HTuple* RowThresh, HTuple* ColumnThresh, HTuple* Distance)

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

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

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 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 HOperatorSetX.MeasureThresh(
[in] IHUntypedObjectX* Image, [in] VARIANT MeasureHandle, [in] VARIANT Sigma, [in] VARIANT Threshold, [in] VARIANT Select, [out] VARIANT* RowThresh, [out] VARIANT* ColumnThresh, [out] VARIANT* Distance)

VARIANT HMeasureX.MeasureThresh(
[in] IHImageX* Image, [in] double Sigma, [in] double Threshold, [in] BSTR Select, [out] VARIANT* ColumnThresh, [out] VARIANT* Distance)

VARIANT HImageX.MeasureThresh(
[in] IHMeasureX* MeasureHandle, [in] double Sigma, [in] double Threshold, [in] BSTR Select, [out] VARIANT* ColumnThresh, [out] VARIANT* Distance)

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_threshMeasureThreshmeasure_threshMeasureThreshMeasureThresh bestimmt in einem eindimensionalen Grauwertprofil die Punkte mit dem Grauwert ThresholdThresholdThresholdThresholdThresholdthreshold. Da das Grauwertprofil auf die Hauptachse (respektive den Bogen) des mit MeasureHandleMeasureHandleMeasureHandleMeasureHandleMeasureHandlemeasureHandle übergebenen Messobjekts projiziert wird, entsprechen die im Grauwertprofil ermittelten Punkte bestimmten Bildkoordinaten; diese werden mit RowThreshRowThreshRowThreshRowThreshRowThreshrowThresh und ColumnThreshColumnThreshColumnThreshColumnThreshColumnThreshcolumnThresh zurückgeliefert.

Durchstößt das Grauwertprofil an mehreren Stellen den übergebenen Schwellwert, kann mit dem Parameter SelectSelectSelectSelectSelectselect ausgewählt werden, ob nur der erste ('first'"first""first""first""first""first"), nur der letzte ('last'"last""last""last""last""last"), der erste und der letzte ('first_last'"first_last""first_last""first_last""first_last""first_last") oder alle ('all'"all""all""all""all""all") Punkte zurückgeliefert werden sollen. In den letzten beiden Fällen enthält DistanceDistanceDistanceDistanceDistancedistance 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 ImageImageImageImageImageimage 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_rectangle2GenMeasureRectangle2gen_measure_rectangle2GenMeasureRectangle2GenMeasureRectangle2 b.z.w. gen_measure_arcgen_measure_arcGenMeasureArcgen_measure_arcGenMeasureArcGenMeasureArc. Dort kann auch eine Interpolationsmethode, die für die Subpixel-Abtastung verwendet werden soll, angegeben werden.

Achtung

measure_threshmeasure_threshMeasureThreshmeasure_threshMeasureThreshMeasureThresh liefert nur dann brauchbare Ergebnisse, falls die Annahme, dass die Kanten gerade und senkrecht zur Hauptachse des Rechtecks sind, erfüllt ist. measure_threshmeasure_threshMeasureThreshmeasure_threshMeasureThreshMeasureThresh 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 SigmaSigmaSigmaSigmaSigmasigma nicht größer als ca. 0.5 * Length1 (siehe gen_measure_rectangle2gen_measure_rectangle2GenMeasureRectangle2gen_measure_rectangle2GenMeasureRectangle2GenMeasureRectangle2 für Length1) sein.

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

Parallelisierung

Parameter

ImageImageImageImageImageimage (input_object)  singlechannelimage objectHImageHImageHImageHImageXHobject (byte / uint2 / real)

Eingabebild.

MeasureHandleMeasureHandleMeasureHandleMeasureHandleMeasureHandlemeasureHandle (input_control)  measure_id HMeasure, HTupleHTupleHMeasure, HTupleHMeasureX, VARIANTHtuple (integer) (IntPtr) (Hlong) (Hlong) (Hlong) (Hlong)

Handle des Messobjekts.

SigmaSigmaSigmaSigmaSigmasigma (input_control)  number HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (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 sigma ≤ 100 (lin)

Minimale Schrittweite: 0.01

Empfohlene Schrittweite: 0.1

Restriktion: Sigma >= 0.0

ThresholdThresholdThresholdThresholdThresholdthreshold (input_control)  number HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Schwellwert.

Defaultwert: 128.0

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

Minimale Schrittweite: 0.5

Empfohlene Schrittweite: 1

SelectSelectSelectSelectSelectselect (input_control)  string HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (char*)

Auswahl der Ergebnispunkte.

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

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

RowThreshRowThreshRowThreshRowThreshRowThreshrowThresh (output_control)  point.y-array HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Zeilenkoordinaten der Punkte mit Schwellwert.

ColumnThreshColumnThreshColumnThreshColumnThreshColumnThreshcolumnThresh (output_control)  point.x-array HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Spaltenkoordinaten der Punkte mit Schwellwert.

DistanceDistanceDistanceDistanceDistancedistance (output_control)  real-array HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Abstand zwischen aufeinanderfolgenden Punkten.

Ergebnis

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

Vorgänger

gen_measure_rectangle2gen_measure_rectangle2GenMeasureRectangle2gen_measure_rectangle2GenMeasureRectangle2GenMeasureRectangle2

Nachfolger

close_measureclose_measureCloseMeasureclose_measureCloseMeasureCloseMeasure

Alternativen

measure_posmeasure_posMeasurePosmeasure_posMeasurePosMeasurePos, edges_sub_pixedges_sub_pixEdgesSubPixedges_sub_pixEdgesSubPixEdgesSubPix, measure_pairsmeasure_pairsMeasurePairsmeasure_pairsMeasurePairsMeasurePairs

Modul

1D Metrology


KlassenKlassenKlassenKlassen | | | | Operatoren