gen_measure_rectangle2T_gen_measure_rectangle2GenMeasureRectangle2GenMeasureRectangle2gen_measure_rectangle2 (Operator)

Name

gen_measure_rectangle2T_gen_measure_rectangle2GenMeasureRectangle2GenMeasureRectangle2gen_measure_rectangle2 — Vorbereitung der Extraktion geradliniger Kanten senkrecht zu einem Rechteck.

Signatur

gen_measure_rectangle2( : : Row, Column, Phi, Length1, Length2, Width, Height, Interpolation : MeasureHandle)

Herror T_gen_measure_rectangle2(const Htuple Row, const Htuple Column, const Htuple Phi, const Htuple Length1, const Htuple Length2, const Htuple Width, const Htuple Height, const Htuple Interpolation, Htuple* MeasureHandle)

void GenMeasureRectangle2(const HTuple& Row, const HTuple& Column, const HTuple& Phi, const HTuple& Length1, const HTuple& Length2, const HTuple& Width, const HTuple& Height, const HTuple& Interpolation, HTuple* MeasureHandle)

void HMeasure::HMeasure(const HTuple& Row, const HTuple& Column, const HTuple& Phi, const HTuple& Length1, const HTuple& Length2, Hlong Width, Hlong Height, const HString& Interpolation)

void HMeasure::HMeasure(double Row, double Column, double Phi, double Length1, double Length2, Hlong Width, Hlong Height, const HString& Interpolation)

void HMeasure::HMeasure(double Row, double Column, double Phi, double Length1, double Length2, Hlong Width, Hlong Height, const char* Interpolation)

void HMeasure::HMeasure(double Row, double Column, double Phi, double Length1, double Length2, Hlong Width, Hlong Height, const wchar_t* Interpolation)   (Nur Windows)

void HMeasure::GenMeasureRectangle2(const HTuple& Row, const HTuple& Column, const HTuple& Phi, const HTuple& Length1, const HTuple& Length2, Hlong Width, Hlong Height, const HString& Interpolation)

void HMeasure::GenMeasureRectangle2(double Row, double Column, double Phi, double Length1, double Length2, Hlong Width, Hlong Height, const HString& Interpolation)

void HMeasure::GenMeasureRectangle2(double Row, double Column, double Phi, double Length1, double Length2, Hlong Width, Hlong Height, const char* Interpolation)

void HMeasure::GenMeasureRectangle2(double Row, double Column, double Phi, double Length1, double Length2, Hlong Width, Hlong Height, const wchar_t* Interpolation)   (Nur Windows)

static void HOperatorSet.GenMeasureRectangle2(HTuple row, HTuple column, HTuple phi, HTuple length1, HTuple length2, HTuple width, HTuple height, HTuple interpolation, out HTuple measureHandle)

public HMeasure(HTuple row, HTuple column, HTuple phi, HTuple length1, HTuple length2, int width, int height, string interpolation)

public HMeasure(double row, double column, double phi, double length1, double length2, int width, int height, string interpolation)

void HMeasure.GenMeasureRectangle2(HTuple row, HTuple column, HTuple phi, HTuple length1, HTuple length2, int width, int height, string interpolation)

void HMeasure.GenMeasureRectangle2(double row, double column, double phi, double length1, double length2, int width, int height, string interpolation)

def gen_measure_rectangle2(row: Union[int, float], column: Union[int, float], phi: Union[int, float], length_1: Union[int, float], length_2: Union[int, float], width: int, height: int, interpolation: str) -> HHandle

Beschreibung

gen_measure_rectangle2gen_measure_rectangle2GenMeasureRectangle2GenMeasureRectangle2GenMeasureRectangle2gen_measure_rectangle2 bereitet die Extraktion geradliniger Kanten, die senkrecht zur Hauptachse eines Rechtecks liegen, vor. Der Mittelpunkt des Rechtecks wird in den Parametern RowRowRowRowrowrow und ColumnColumnColumnColumncolumncolumn übergeben, die Richtung der Hauptachse in PhiPhiPhiPhiphiphi und die Längen der beiden Achsen, d.h. die halben Durchmesser des Rechtecks, in Length1Length1Length1Length1length1length_1 und Length2Length2Length2Length2length2length_2.

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

Der Algorithmus zur Kantenextraktion ist bei measure_posmeasure_posMeasurePosMeasurePosMeasurePosmeasure_pos beschrieben. Wie dort beschrieben, können verschiedene Arten der Interpolation zur Berechnung des Grauwertprofils verwendet werden. Mit InterpolationInterpolationInterpolationInterpolationinterpolationinterpolation = 'nearest_neighbor'"nearest_neighbor""nearest_neighbor""nearest_neighbor""nearest_neighbor""nearest_neighbor" werden die Grauwerte bei der Messung durch den Grauwert des nächstgelegenen Pixels, d.h. durch konstante Interpolation, bestimmt. Für InterpolationInterpolationInterpolationInterpolationinterpolationinterpolation = 'bilinear'"bilinear""bilinear""bilinear""bilinear""bilinear" wird bilineare Interpolation verwendet und für InterpolationInterpolationInterpolationInterpolationinterpolationinterpolation = 'bicubic'"bicubic""bicubic""bicubic""bicubic""bicubic" bikubische Interpolation.

Um die eigentlichen Messungen möglichst schnell ausführen zu können, werden alle Berechnungen, die für mehrere Messungen verwendet werden können, schon im Operator gen_measure_rectangle2gen_measure_rectangle2GenMeasureRectangle2GenMeasureRectangle2GenMeasureRectangle2gen_measure_rectangle2 ausgeführt. Hierzu wird eine optimierte Datenstruktur, ein sogenanntes Messobjekt, aufgebaut, das in MeasureHandleMeasureHandleMeasureHandleMeasureHandlemeasureHandlemeasure_handle zurückgegeben wird. Die später bei der Messung verwendete Bildgröße muss in den Parametern WidthWidthWidthWidthwidthwidth und HeightHeightHeightHeightheightheight angegeben werden.

Der Systemparameter 'int_zooming'"int_zooming""int_zooming""int_zooming""int_zooming""int_zooming" (siehe set_systemset_systemSetSystemSetSystemSetSystemset_system) beeinflusst die Genauigkeit und Geschwindigkeit der Berechnung des Messobjekts. Falls 'int_zooming'"int_zooming""int_zooming""int_zooming""int_zooming""int_zooming" auf 'true'"true""true""true""true""true" gesetzt wird, werden die internen Berechnungen in Festkommaarithmetik durchgeführt, was zu wesentlich kürzeren Laufzeiten führt. Allerdings ist hier die geometrische Genauigkeit etwas geringer. Falls 'int_zooming'"int_zooming""int_zooming""int_zooming""int_zooming""int_zooming" auf 'false'"false""false""false""false""false" gesetzt wird, werden die internen Berechnungen in Gleitkommaarithmetik durchgeführt, was zur bestmöglichen geometrischen Genauigkeit führt, die Laufzeit allerdings signifikant erhöht.

Achtung

Es ist zu beachten, dass bei Verwendung von bilinearer oder bikubischer Interpolation nicht nur das Messrechteck ins Bild passen muss, sondern auch ein Rand um das Messrechteck. Die Breite des Randes (in alle vier Richtungen) muss mindestens ein Pixel für bilineare Interpolation und mindestens zwei Pixel für bikubische Interpolation sein. Für Projektionslinien, die diese Bedingung nicht erfüllen, wird kein Grauwert berechnet. Somit kann an diesen Stellen auch keine Kante extrahiert werden.

Es ist außerdem zu beachten, dass die Mittelpunktskoordinaten des Rechtecks intern gerundet werden, so dass der Mittelpunkt auf dem Pixelraster liegt. Dadurch kann Konsistenz sichergestellt werden.

Ausführungsinformationen

Dieser Operator liefert ein Handle zurück. Es ist zu beachten, dass der Zustand einer Instanz dieses Handletyps durch bestimmte Operatoren geändert werden kann, obwohl das Handle als Eingabeparameter in diesen Operatoren verwendet wird.

Parameter

RowRowRowRowrowrow (input_control)  rectangle2.center.y HTupleUnion[int, float]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Zeilenkoordinate des Mittelpunktes des Rechtecks.

Defaultwert: 300.0

Wertevorschläge: 10.0, 20.0, 50.0, 100.0, 200.0, 300.0, 400.0, 500.0

Typischer Wertebereich: 0.0 ≤ Row Row Row Row row row ≤ 511.0 (lin)

Minimale Schrittweite: 1.0

Empfohlene Schrittweite: 10.0

ColumnColumnColumnColumncolumncolumn (input_control)  rectangle2.center.x HTupleUnion[int, float]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Spaltenkoordinate des Mittelpunktes des Rechtecks.

Defaultwert: 200.0

Wertevorschläge: 10.0, 20.0, 50.0, 100.0, 200.0, 300.0, 400.0, 500.0

Typischer Wertebereich: 0.0 ≤ Column Column Column Column column column ≤ 511.0 (lin)

Minimale Schrittweite: 1.0

Empfohlene Schrittweite: 10.0

PhiPhiPhiPhiphiphi (input_control)  rectangle2.angle.rad HTupleUnion[int, float]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Winkel der Längsachse des Rechtecks zur Horizontalen (Bogenmaß).

Defaultwert: 0.0

Wertevorschläge: -1.178097, -0.785398, -0.392699, 0.0, 0.392699, 0.785398, 1.178097

Typischer Wertebereich: -1.178097 ≤ Phi Phi Phi Phi phi phi ≤ 1.178097 (lin)

Minimale Schrittweite: 0.001

Empfohlene Schrittweite: 0.1

Restriktion: - pi < Phi && Phi <= pi

Length1Length1Length1Length1length1length_1 (input_control)  rectangle2.hwidth HTupleUnion[int, float]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Halbe Breite des Rechtecks.

Defaultwert: 100.0

Wertevorschläge: 3.0, 5.0, 10.0, 15.0, 20.0, 50.0, 100.0, 200.0, 300.0, 500.0

Typischer Wertebereich: 1.0 ≤ Length1 Length1 Length1 Length1 length1 length_1 ≤ 511.0 (lin)

Minimale Schrittweite: 1.0

Empfohlene Schrittweite: 10.0

Restriktion: Length1 >= 1.0

Length2Length2Length2Length2length2length_2 (input_control)  rectangle2.hheight HTupleUnion[int, float]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Halbe Höhe des Rechtecks.

Defaultwert: 20.0

Wertevorschläge: 1.0, 2.0, 3.0, 5.0, 10.0, 15.0, 20.0, 50.0, 100.0, 200.0

Typischer Wertebereich: 0.0 ≤ Length2 Length2 Length2 Length2 length2 length_2 ≤ 511.0 (lin)

Minimale Schrittweite: 1.0

Empfohlene Schrittweite: 10.0

Restriktion: Length2 >= 0.0

WidthWidthWidthWidthwidthwidth (input_control)  extent.x HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Breite des später zu verarbeitenden Bildes.

Defaultwert: 512

Wertevorschläge: 128, 160, 192, 256, 320, 384, 512, 640, 768

Typischer Wertebereich: 0 ≤ Width Width Width Width width width ≤ 1024 (lin)

Minimale Schrittweite: 1

Empfohlene Schrittweite: 16

HeightHeightHeightHeightheightheight (input_control)  extent.y HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Höhe des später zu verarbeitenden Bildes.

Defaultwert: 512

Wertevorschläge: 120, 128, 144, 240, 256, 288, 480, 512, 576

Typischer Wertebereich: 0 ≤ Height Height Height Height height height ≤ 1024 (lin)

Minimale Schrittweite: 1

Empfohlene Schrittweite: 16

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

Art der zu verwendenden Interpolation.

Defaultwert: 'nearest_neighbor' "nearest_neighbor" "nearest_neighbor" "nearest_neighbor" "nearest_neighbor" "nearest_neighbor"

Werteliste: 'bicubic'"bicubic""bicubic""bicubic""bicubic""bicubic", 'bilinear'"bilinear""bilinear""bilinear""bilinear""bilinear", 'nearest_neighbor'"nearest_neighbor""nearest_neighbor""nearest_neighbor""nearest_neighbor""nearest_neighbor"

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

Handle des Messobjekts.

Ergebnis

Sind die Parameterwerte korrekt, dann liefert gen_measure_rectangle2gen_measure_rectangle2GenMeasureRectangle2GenMeasureRectangle2GenMeasureRectangle2gen_measure_rectangle2 den Wert TRUE. Andernfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

draw_rectangle2draw_rectangle2DrawRectangle2DrawRectangle2DrawRectangle2draw_rectangle2

Nachfolger

measure_posmeasure_posMeasurePosMeasurePosMeasurePosmeasure_pos, measure_pairsmeasure_pairsMeasurePairsMeasurePairsMeasurePairsmeasure_pairs, fuzzy_measure_posfuzzy_measure_posFuzzyMeasurePosFuzzyMeasurePosFuzzyMeasurePosfuzzy_measure_pos, fuzzy_measure_pairsfuzzy_measure_pairsFuzzyMeasurePairsFuzzyMeasurePairsFuzzyMeasurePairsfuzzy_measure_pairs, fuzzy_measure_pairingfuzzy_measure_pairingFuzzyMeasurePairingFuzzyMeasurePairingFuzzyMeasurePairingfuzzy_measure_pairing, measure_threshmeasure_threshMeasureThreshMeasureThreshMeasureThreshmeasure_thresh

Alternativen

edges_sub_pixedges_sub_pixEdgesSubPixEdgesSubPixEdgesSubPixedges_sub_pix

Siehe auch

gen_measure_arcgen_measure_arcGenMeasureArcGenMeasureArcGenMeasureArcgen_measure_arc

Modul

1D Metrology