fuzzy_measure_pairingT_fuzzy_measure_pairingFuzzyMeasurePairingFuzzyMeasurePairingfuzzy_measure_pairing (Operator)

Name

fuzzy_measure_pairingT_fuzzy_measure_pairingFuzzyMeasurePairingFuzzyMeasurePairingfuzzy_measure_pairing — Extraktion geradliniger Kantenpaare senkrecht zu einem Rechteck oder Kreisringsegment.

Signatur

fuzzy_measure_pairing(Image : : MeasureHandle, Sigma, AmpThresh, FuzzyThresh, Transition, Pairing, NumPairs : RowEdgeFirst, ColumnEdgeFirst, AmplitudeFirst, RowEdgeSecond, ColumnEdgeSecond, AmplitudeSecond, RowPairCenter, ColumnPairCenter, FuzzyScore, IntraDistance)

Herror T_fuzzy_measure_pairing(const Hobject Image, const Htuple MeasureHandle, const Htuple Sigma, const Htuple AmpThresh, const Htuple FuzzyThresh, const Htuple Transition, const Htuple Pairing, const Htuple NumPairs, Htuple* RowEdgeFirst, Htuple* ColumnEdgeFirst, Htuple* AmplitudeFirst, Htuple* RowEdgeSecond, Htuple* ColumnEdgeSecond, Htuple* AmplitudeSecond, Htuple* RowPairCenter, Htuple* ColumnPairCenter, Htuple* FuzzyScore, Htuple* IntraDistance)

void FuzzyMeasurePairing(const HObject& Image, const HTuple& MeasureHandle, const HTuple& Sigma, const HTuple& AmpThresh, const HTuple& FuzzyThresh, const HTuple& Transition, const HTuple& Pairing, const HTuple& NumPairs, HTuple* RowEdgeFirst, HTuple* ColumnEdgeFirst, HTuple* AmplitudeFirst, HTuple* RowEdgeSecond, HTuple* ColumnEdgeSecond, HTuple* AmplitudeSecond, HTuple* RowPairCenter, HTuple* ColumnPairCenter, HTuple* FuzzyScore, HTuple* IntraDistance)

void HMeasure::FuzzyMeasurePairing(const HImage& Image, double Sigma, double AmpThresh, double FuzzyThresh, const HString& Transition, const HString& Pairing, Hlong NumPairs, HTuple* RowEdgeFirst, HTuple* ColumnEdgeFirst, HTuple* AmplitudeFirst, HTuple* RowEdgeSecond, HTuple* ColumnEdgeSecond, HTuple* AmplitudeSecond, HTuple* RowPairCenter, HTuple* ColumnPairCenter, HTuple* FuzzyScore, HTuple* IntraDistance) const

void HMeasure::FuzzyMeasurePairing(const HImage& Image, double Sigma, double AmpThresh, double FuzzyThresh, const char* Transition, const char* Pairing, Hlong NumPairs, HTuple* RowEdgeFirst, HTuple* ColumnEdgeFirst, HTuple* AmplitudeFirst, HTuple* RowEdgeSecond, HTuple* ColumnEdgeSecond, HTuple* AmplitudeSecond, HTuple* RowPairCenter, HTuple* ColumnPairCenter, HTuple* FuzzyScore, HTuple* IntraDistance) const

void HMeasure::FuzzyMeasurePairing(const HImage& Image, double Sigma, double AmpThresh, double FuzzyThresh, const wchar_t* Transition, const wchar_t* Pairing, Hlong NumPairs, HTuple* RowEdgeFirst, HTuple* ColumnEdgeFirst, HTuple* AmplitudeFirst, HTuple* RowEdgeSecond, HTuple* ColumnEdgeSecond, HTuple* AmplitudeSecond, HTuple* RowPairCenter, HTuple* ColumnPairCenter, HTuple* FuzzyScore, HTuple* IntraDistance) const   (Nur Windows)

void HImage::FuzzyMeasurePairing(const HMeasure& MeasureHandle, double Sigma, double AmpThresh, double FuzzyThresh, const HString& Transition, const HString& Pairing, Hlong NumPairs, HTuple* RowEdgeFirst, HTuple* ColumnEdgeFirst, HTuple* AmplitudeFirst, HTuple* RowEdgeSecond, HTuple* ColumnEdgeSecond, HTuple* AmplitudeSecond, HTuple* RowPairCenter, HTuple* ColumnPairCenter, HTuple* FuzzyScore, HTuple* IntraDistance) const

void HImage::FuzzyMeasurePairing(const HMeasure& MeasureHandle, double Sigma, double AmpThresh, double FuzzyThresh, const char* Transition, const char* Pairing, Hlong NumPairs, HTuple* RowEdgeFirst, HTuple* ColumnEdgeFirst, HTuple* AmplitudeFirst, HTuple* RowEdgeSecond, HTuple* ColumnEdgeSecond, HTuple* AmplitudeSecond, HTuple* RowPairCenter, HTuple* ColumnPairCenter, HTuple* FuzzyScore, HTuple* IntraDistance) const

void HImage::FuzzyMeasurePairing(const HMeasure& MeasureHandle, double Sigma, double AmpThresh, double FuzzyThresh, const wchar_t* Transition, const wchar_t* Pairing, Hlong NumPairs, HTuple* RowEdgeFirst, HTuple* ColumnEdgeFirst, HTuple* AmplitudeFirst, HTuple* RowEdgeSecond, HTuple* ColumnEdgeSecond, HTuple* AmplitudeSecond, HTuple* RowPairCenter, HTuple* ColumnPairCenter, HTuple* FuzzyScore, HTuple* IntraDistance) const   (Nur Windows)

static void HOperatorSet.FuzzyMeasurePairing(HObject image, HTuple measureHandle, HTuple sigma, HTuple ampThresh, HTuple fuzzyThresh, HTuple transition, HTuple pairing, HTuple numPairs, out HTuple rowEdgeFirst, out HTuple columnEdgeFirst, out HTuple amplitudeFirst, out HTuple rowEdgeSecond, out HTuple columnEdgeSecond, out HTuple amplitudeSecond, out HTuple rowPairCenter, out HTuple columnPairCenter, out HTuple fuzzyScore, out HTuple intraDistance)

void HMeasure.FuzzyMeasurePairing(HImage image, double sigma, double ampThresh, double fuzzyThresh, string transition, string pairing, int numPairs, out HTuple rowEdgeFirst, out HTuple columnEdgeFirst, out HTuple amplitudeFirst, out HTuple rowEdgeSecond, out HTuple columnEdgeSecond, out HTuple amplitudeSecond, out HTuple rowPairCenter, out HTuple columnPairCenter, out HTuple fuzzyScore, out HTuple intraDistance)

void HImage.FuzzyMeasurePairing(HMeasure measureHandle, double sigma, double ampThresh, double fuzzyThresh, string transition, string pairing, int numPairs, out HTuple rowEdgeFirst, out HTuple columnEdgeFirst, out HTuple amplitudeFirst, out HTuple rowEdgeSecond, out HTuple columnEdgeSecond, out HTuple amplitudeSecond, out HTuple rowPairCenter, out HTuple columnPairCenter, out HTuple fuzzyScore, out HTuple intraDistance)

def fuzzy_measure_pairing(image: HObject, measure_handle: HHandle, sigma: float, amp_thresh: float, fuzzy_thresh: float, transition: str, pairing: str, num_pairs: int) -> Tuple[Sequence[float], Sequence[float], Sequence[float], Sequence[float], Sequence[float], Sequence[float], Sequence[float], Sequence[float], Sequence[float], Sequence[float]]

Beschreibung

fuzzy_measure_pairingfuzzy_measure_pairingFuzzyMeasurePairingFuzzyMeasurePairingFuzzyMeasurePairingfuzzy_measure_pairing dient zur Extraktion von geradlinigen Kantenpaaren, die senkrecht zur Hauptachse eines Rechtecks oder zu einem Kreisbogensegment liegen.

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

Der Algorithmus von fuzzy_measure_pairingfuzzy_measure_pairingFuzzyMeasurePairingFuzzyMeasurePairingFuzzyMeasurePairingfuzzy_measure_pairing arbeitet analog zu fuzzy_measure_pairsfuzzy_measure_pairsFuzzyMeasurePairsFuzzyMeasurePairsFuzzyMeasurePairsfuzzy_measure_pairs (siehe dort für Details) mit der Ausnahme, dass es über den Parameter PairingPairingPairingPairingpairingpairing zusätzlich möglich ist, sich überschneidende und ineinanderliegende Kantenpaare zu extrahieren. Derzeit steht nur der Wert 'no_restriction'"no_restriction""no_restriction""no_restriction""no_restriction""no_restriction" zu Verfügung, der alle möglichen Kantenpaare zurückliefert, die sich sowohl gegenseitig überlagern als auch einschließen können.

Es werden nur die NumPairsNumPairsNumPairsNumPairsnumPairsnum_pairs am besten bewerteten Kantenpaare zurückgeliefert, wobei der Wert 0 bedeutet, dass alle gefundenen Kantenkombinationen zurückgeliefert werden.

Die extrahierten Kanten werden als einzelne Punkte, die auf der Hauptachse des Rechtecks oder dem mittleren Bogen des Kreisringsegments liegen, zurückgegeben. Die zugehörigen Kantenamplituden werden in AmplitudeFirstAmplitudeFirstAmplitudeFirstAmplitudeFirstamplitudeFirstamplitude_first und AmplitudeSecondAmplitudeSecondAmplitudeSecondAmplitudeSecondamplitudeSecondamplitude_second, die Fuzzy-Bewertungen in FuzzyScoreFuzzyScoreFuzzyScoreFuzzyScorefuzzyScorefuzzy_score zurückgeliefert. Zusätzlich wird noch der Abstand innerhalb eines Kantenpaares in IntraDistanceIntraDistanceIntraDistanceIntraDistanceintraDistanceintra_distance zurückgeliefert.

Achtung

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

Es ist zu beachten, dass fuzzy_measure_pairingfuzzy_measure_pairingFuzzyMeasurePairingFuzzyMeasurePairingFuzzyMeasurePairingfuzzy_measure_pairing 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.

Ausführungsinformationen

Parameter

ImageImageImageImageimageimage (input_object)  singlechannelimage objectHImageHObjectHImageHobject (byte / uint2 / real)

Eingabebild.

MeasureHandleMeasureHandleMeasureHandleMeasureHandlemeasureHandlemeasure_handle (input_control)  measure HMeasure, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Handle des Messobjekts.

SigmaSigmaSigmaSigmasigmasigma (input_control)  number HTuplefloatHTupleHtuple (real) (double) (double) (double)

Sigma der Gaußglättung.

Defaultwert: 1.0

Wertevorschläge: 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

AmpThreshAmpThreshAmpThreshAmpThreshampThreshamp_thresh (input_control)  number HTuplefloatHTupleHtuple (real) (double) (double) (double)

Minimale Amplitude einer Kante.

Defaultwert: 30.0

Wertevorschläge: 5.0, 10.0, 20.0, 30.0, 40.0, 50.0, 60.0, 70.0, 90.0, 110.0

Typischer Wertebereich: 1 ≤ AmpThresh AmpThresh AmpThresh AmpThresh ampThresh amp_thresh ≤ 255 (lin)

Minimale Schrittweite: 0.5

Empfohlene Schrittweite: 2

FuzzyThreshFuzzyThreshFuzzyThreshFuzzyThreshfuzzyThreshfuzzy_thresh (input_control)  number HTuplefloatHTupleHtuple (real) (double) (double) (double)

Minimale Fuzzy-Bewertung.

Defaultwert: 0.5

Wertevorschläge: 0.1, 0.3, 0.5, 0.7, 0.9

Typischer Wertebereich: 0.0 ≤ FuzzyThresh FuzzyThresh FuzzyThresh FuzzyThresh fuzzyThresh fuzzy_thresh ≤ 1.0 (lin)

Empfohlene Schrittweite: 0.1

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

Auswahl des ersten Grauwertüberganges der Kantenpaare.

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

Werteliste: 'all'"all""all""all""all""all", 'negative'"negative""negative""negative""negative""negative", 'positive'"positive""positive""positive""positive""positive"

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

Beschränkung der Paarbildung.

Defaultwert: 'no_restriction' "no_restriction" "no_restriction" "no_restriction" "no_restriction" "no_restriction"

Werteliste: 'no_restriction'"no_restriction""no_restriction""no_restriction""no_restriction""no_restriction"

NumPairsNumPairsNumPairsNumPairsnumPairsnum_pairs (input_control)  number HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Maximale Anzahl der Kantenpaare.

Defaultwert: 10

Wertevorschläge: 0, 1, 10, 20, 50

Typischer Wertebereich: 0 ≤ NumPairs NumPairs NumPairs NumPairs numPairs num_pairs

Empfohlene Schrittweite: 1

RowEdgeFirstRowEdgeFirstRowEdgeFirstRowEdgeFirstrowEdgeFirstrow_edge_first (output_control)  point.y-array HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

Zeilenkoordinate der ersten Kante.

ColumnEdgeFirstColumnEdgeFirstColumnEdgeFirstColumnEdgeFirstcolumnEdgeFirstcolumn_edge_first (output_control)  point.x-array HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

Spaltenkoordinate der ersten Kante.

AmplitudeFirstAmplitudeFirstAmplitudeFirstAmplitudeFirstamplitudeFirstamplitude_first (output_control)  real-array HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

Kantenamplitude der ersten Kante (mit Vorzeichen).

RowEdgeSecondRowEdgeSecondRowEdgeSecondRowEdgeSecondrowEdgeSecondrow_edge_second (output_control)  point.y-array HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

Zeilenkoordinate der zweiten Kante.

ColumnEdgeSecondColumnEdgeSecondColumnEdgeSecondColumnEdgeSecondcolumnEdgeSecondcolumn_edge_second (output_control)  point.x-array HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

Spaltenkoordinate der zweiten Kante.

AmplitudeSecondAmplitudeSecondAmplitudeSecondAmplitudeSecondamplitudeSecondamplitude_second (output_control)  real-array HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

Kantenamplitude der zweiten Kante (mit Vorzeichen).

RowPairCenterRowPairCenterRowPairCenterRowPairCenterrowPairCenterrow_pair_center (output_control)  point.y-array HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

Zeilenkoordinate des Mittelpunktes des Kantenpaares.

ColumnPairCenterColumnPairCenterColumnPairCenterColumnPairCentercolumnPairCentercolumn_pair_center (output_control)  point.x-array HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

Spaltenkoordinate des Mittelpunktes des Kantenpaares.

FuzzyScoreFuzzyScoreFuzzyScoreFuzzyScorefuzzyScorefuzzy_score (output_control)  real-array HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

Fuzzy-Bewertung des Kantenpaares.

IntraDistanceIntraDistanceIntraDistanceIntraDistanceintraDistanceintra_distance (output_control)  real-array HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

Abstand zwischen Kanten eines Kantenpaars.

Ergebnis

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

Vorgänger

gen_measure_rectangle2gen_measure_rectangle2GenMeasureRectangle2GenMeasureRectangle2GenMeasureRectangle2gen_measure_rectangle2, gen_measure_arcgen_measure_arcGenMeasureArcGenMeasureArcGenMeasureArcgen_measure_arc, set_fuzzy_measureset_fuzzy_measureSetFuzzyMeasureSetFuzzyMeasureSetFuzzyMeasureset_fuzzy_measure

Nachfolger

close_measureclose_measureCloseMeasureCloseMeasureCloseMeasureclose_measure

Alternativen

edges_sub_pixedges_sub_pixEdgesSubPixEdgesSubPixEdgesSubPixedges_sub_pix, fuzzy_measure_pairsfuzzy_measure_pairsFuzzyMeasurePairsFuzzyMeasurePairsFuzzyMeasurePairsfuzzy_measure_pairs, measure_pairsmeasure_pairsMeasurePairsMeasurePairsMeasurePairsmeasure_pairs

Siehe auch

fuzzy_measure_posfuzzy_measure_posFuzzyMeasurePosFuzzyMeasurePosFuzzyMeasurePosfuzzy_measure_pos, measure_posmeasure_posMeasurePosMeasurePosMeasurePosmeasure_pos

Modul

1D Metrology