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_pairingFuzzyMeasurePairingFuzzyMeasurePairingfuzzy_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_pairingFuzzyMeasurePairingFuzzyMeasurePairingfuzzy_measure_pairing
arbeitet analog zu fuzzy_measure_pairsfuzzy_measure_pairsFuzzyMeasurePairsFuzzyMeasurePairsfuzzy_measure_pairs (siehe dort
für Details) mit der Ausnahme, dass es über den Parameter PairingPairingPairingpairingpairing
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" 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 NumPairsNumPairsNumPairsnumPairsnum_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 AmplitudeFirstAmplitudeFirstAmplitudeFirstamplitudeFirstamplitude_first und
AmplitudeSecondAmplitudeSecondAmplitudeSecondamplitudeSecondamplitude_second, die Fuzzy-Bewertungen in FuzzyScoreFuzzyScoreFuzzyScorefuzzyScorefuzzy_score
zurückgeliefert. Zusätzlich wird noch
der Abstand innerhalb eines Kantenpaares in IntraDistanceIntraDistanceIntraDistanceintraDistanceintra_distance
zurückgeliefert.
Achtung
fuzzy_measure_pairingfuzzy_measure_pairingFuzzyMeasurePairingFuzzyMeasurePairingfuzzy_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_pairingFuzzyMeasurePairingFuzzyMeasurePairingfuzzy_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
SigmaSigmaSigmasigmasigma nicht größer als ca. 0.5 * Length1
(siehe gen_measure_rectangle2gen_measure_rectangle2GenMeasureRectangle2GenMeasureRectangle2gen_measure_rectangle2 für Length1) sein.
Es ist zu beachten, dass fuzzy_measure_pairingfuzzy_measure_pairingFuzzyMeasurePairingFuzzyMeasurePairingfuzzy_measure_pairing 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
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Wird ohne Parallelisierung verarbeitet.
Parameter
ImageImageImageimageimage (input_object) singlechannelimage → objectHImageHObjectHObjectHobject (byte / uint2 / real)
Eingabebild.
MeasureHandleMeasureHandleMeasureHandlemeasureHandlemeasure_handle (input_control) measure → HMeasure, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)
Handle des Messobjekts.
SigmaSigmaSigmasigmasigma (input_control) number → HTuplefloatHTupleHtuple (real) (double) (double) (double)
Sigma der Gaußglättung.
Default:
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
Wertebereich:
0.4
≤
Sigma
Sigma
Sigma
sigma
sigma
≤
100 (lin)
Minimale Schrittweite:
0.01
Empfohlene Schrittweite:
0.1
AmpThreshAmpThreshAmpThreshampThreshamp_thresh (input_control) number → HTuplefloatHTupleHtuple (real) (double) (double) (double)
Minimale Amplitude einer Kante.
Default:
30.0
Wertevorschläge:
5.0, 10.0, 20.0, 30.0, 40.0, 50.0, 60.0, 70.0, 90.0, 110.0
Wertebereich:
1
≤
AmpThresh
AmpThresh
AmpThresh
ampThresh
amp_thresh
≤
255 (lin)
Minimale Schrittweite:
0.5
Empfohlene Schrittweite:
2
FuzzyThreshFuzzyThreshFuzzyThreshfuzzyThreshfuzzy_thresh (input_control) number → HTuplefloatHTupleHtuple (real) (double) (double) (double)
Minimale Fuzzy-Bewertung.
Default:
0.5
Wertevorschläge:
0.1, 0.3, 0.5, 0.7, 0.9
Wertebereich:
0.0
≤
FuzzyThresh
FuzzyThresh
FuzzyThresh
fuzzyThresh
fuzzy_thresh
≤
1.0 (lin)
Empfohlene Schrittweite:
0.1
TransitionTransitionTransitiontransitiontransition (input_control) string → HTuplestrHTupleHtuple (string) (string) (HString) (char*)
Auswahl des ersten Grauwertüberganges der Kantenpaare.
Default:
'all'
"all"
"all"
"all"
"all"
Werteliste:
'all'"all""all""all""all", 'negative'"negative""negative""negative""negative", 'positive'"positive""positive""positive""positive"
PairingPairingPairingpairingpairing (input_control) string → HTuplestrHTupleHtuple (string) (string) (HString) (char*)
Beschränkung der Paarbildung.
Default:
'no_restriction'
"no_restriction"
"no_restriction"
"no_restriction"
"no_restriction"
Werteliste:
'no_restriction'"no_restriction""no_restriction""no_restriction""no_restriction"
NumPairsNumPairsNumPairsnumPairsnum_pairs (input_control) number → HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Maximale Anzahl der Kantenpaare.
Default:
10
Wertevorschläge:
0, 1, 10, 20, 50
Wertebereich:
0
≤
NumPairs
NumPairs
NumPairs
numPairs
num_pairs
Empfohlene Schrittweite:
1
RowEdgeFirstRowEdgeFirstRowEdgeFirstrowEdgeFirstrow_edge_first (output_control) point.y-array → HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)
Zeilenkoordinate der ersten Kante.
ColumnEdgeFirstColumnEdgeFirstColumnEdgeFirstcolumnEdgeFirstcolumn_edge_first (output_control) point.x-array → HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)
Spaltenkoordinate der ersten Kante.
AmplitudeFirstAmplitudeFirstAmplitudeFirstamplitudeFirstamplitude_first (output_control) real-array → HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)
Kantenamplitude der ersten Kante (mit Vorzeichen).
RowEdgeSecondRowEdgeSecondRowEdgeSecondrowEdgeSecondrow_edge_second (output_control) point.y-array → HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)
Zeilenkoordinate der zweiten Kante.
ColumnEdgeSecondColumnEdgeSecondColumnEdgeSecondcolumnEdgeSecondcolumn_edge_second (output_control) point.x-array → HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)
Spaltenkoordinate der zweiten Kante.
AmplitudeSecondAmplitudeSecondAmplitudeSecondamplitudeSecondamplitude_second (output_control) real-array → HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)
Kantenamplitude der zweiten Kante (mit Vorzeichen).
RowPairCenterRowPairCenterRowPairCenterrowPairCenterrow_pair_center (output_control) point.y-array → HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)
Zeilenkoordinate des Mittelpunktes des Kantenpaares.
ColumnPairCenterColumnPairCenterColumnPairCentercolumnPairCentercolumn_pair_center (output_control) point.x-array → HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)
Spaltenkoordinate des Mittelpunktes des Kantenpaares.
FuzzyScoreFuzzyScoreFuzzyScorefuzzyScorefuzzy_score (output_control) real-array → HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)
Fuzzy-Bewertung des Kantenpaares.
IntraDistanceIntraDistanceIntraDistanceintraDistanceintra_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_pairingFuzzyMeasurePairingFuzzyMeasurePairingfuzzy_measure_pairing den Wert 2 (
H_MSG_TRUE)
. Andernfalls wird eine
Fehlerbehandlung durchgeführt.
Vorgänger
gen_measure_rectangle2gen_measure_rectangle2GenMeasureRectangle2GenMeasureRectangle2gen_measure_rectangle2,
gen_measure_arcgen_measure_arcGenMeasureArcGenMeasureArcgen_measure_arc,
set_fuzzy_measureset_fuzzy_measureSetFuzzyMeasureSetFuzzyMeasureset_fuzzy_measure
Nachfolger
close_measureclose_measureCloseMeasureCloseMeasureclose_measure
Alternativen
edges_sub_pixedges_sub_pixEdgesSubPixEdgesSubPixedges_sub_pix,
fuzzy_measure_pairsfuzzy_measure_pairsFuzzyMeasurePairsFuzzyMeasurePairsfuzzy_measure_pairs,
measure_pairsmeasure_pairsMeasurePairsMeasurePairsmeasure_pairs
Siehe auch
fuzzy_measure_posfuzzy_measure_posFuzzyMeasurePosFuzzyMeasurePosfuzzy_measure_pos,
measure_posmeasure_posMeasurePosMeasurePosmeasure_pos
Modul
1D Metrology