Name
detect_edge_segmentsT_detect_edge_segmentsDetectEdgeSegmentsdetect_edge_segmentsDetectEdgeSegmentsDetectEdgeSegments — Detektion gerader Kantenstücke.
Herror detect_edge_segments(Hobject Image, const HTuple& SobelSize, const HTuple& MinAmplitude, const HTuple& MaxDistance, const HTuple& MinLength, HTuple* BeginRow, HTuple* BeginCol, HTuple* EndRow, HTuple* EndCol)
HTuple HImage::DetectEdgeSegments(const HTuple& SobelSize, const HTuple& MinAmplitude, const HTuple& MaxDistance, const HTuple& MinLength, HTuple* BeginCol, HTuple* EndRow, HTuple* EndCol) const
HTuple HImageArray::DetectEdgeSegments(const HTuple& SobelSize, const HTuple& MinAmplitude, const HTuple& MaxDistance, const HTuple& MinLength, HTuple* BeginCol, HTuple* EndRow, HTuple* EndCol) const
void DetectEdgeSegments(const HObject& Image, const HTuple& SobelSize, const HTuple& MinAmplitude, const HTuple& MaxDistance, const HTuple& MinLength, HTuple* BeginRow, HTuple* BeginCol, HTuple* EndRow, HTuple* EndCol)
void HImage::DetectEdgeSegments(Hlong SobelSize, Hlong MinAmplitude, Hlong MaxDistance, Hlong MinLength, HTuple* BeginRow, HTuple* BeginCol, HTuple* EndRow, HTuple* EndCol) const
void HOperatorSetX.DetectEdgeSegments(
[in] IHUntypedObjectX* Image, [in] VARIANT SobelSize, [in] VARIANT MinAmplitude, [in] VARIANT MaxDistance, [in] VARIANT MinLength, [out] VARIANT* BeginRow, [out] VARIANT* BeginCol, [out] VARIANT* EndRow, [out] VARIANT* EndCol)
VARIANT HImageX.DetectEdgeSegments(
[in] Hlong SobelSize, [in] Hlong MinAmplitude, [in] Hlong MaxDistance, [in] Hlong MinLength, [out] VARIANT* BeginCol, [out] VARIANT* EndRow, [out] VARIANT* EndCol)
static void HOperatorSet.DetectEdgeSegments(HObject image, HTuple sobelSize, HTuple minAmplitude, HTuple maxDistance, HTuple minLength, out HTuple beginRow, out HTuple beginCol, out HTuple endRow, out HTuple endCol)
void HImage.DetectEdgeSegments(int sobelSize, int minAmplitude, int maxDistance, int minLength, out HTuple beginRow, out HTuple beginCol, out HTuple endRow, out HTuple endCol)
detect_edge_segmentsdetect_edge_segmentsDetectEdgeSegmentsdetect_edge_segmentsDetectEdgeSegmentsDetectEdgeSegments detektiert gerade Kantenstücke in einem
Graustufenbild. Die gefundenen Kantensegmente werden als Strecken
Linien) mit einem Anfangs-(BeginRowBeginRowBeginRowBeginRowBeginRowbeginRow,BeginColBeginColBeginColBeginColBeginColbeginCol)
und einem Endpunkt (EndRowEndRowEndRowEndRowEndRowendRow,EndColEndColEndColEndColEndColendCol)
zurückgeliefert. Die Kantendetektion basiert auf dem Sobelfilter
(Variante 'sum_abs', Filtergröße, gemäß SobelSizeSobelSizeSobelSizeSobelSizeSobelSizesobelSize).
Auf dessen Filterantwort bezieht sich auch der Parameter
MinAmplitudeMinAmplitudeMinAmplitudeMinAmplitudeMinAmplitudeminAmplitude: Nur Pixel mit Intensität größer oder
gleich MinAmplitudeMinAmplitudeMinAmplitudeMinAmplitudeMinAmplitudeminAmplitude im gefilterten Eingangsbild werden
als Kanditaten für Kantenpunkte verwendet. Die Rohkanten werden
verdünnt und in gerade Teilstücke zerlegt. Aus technischen
Gründen gehen dabei Kantenpunkte, in denen sich mehrere Kanten
treffen, verloren. Somit liefert detect_edge_segmentsdetect_edge_segmentsDetectEdgeSegmentsdetect_edge_segmentsDetectEdgeSegmentsDetectEdgeSegments im
allgemeinen keine geschlossenen Objektkonturen (bzw. lineare
Approximationen daran). Der Parameter MaxDistanceMaxDistanceMaxDistanceMaxDistanceMaxDistancemaxDistance
steuert die Zerlegung von Kanten in gerade Teilstücke. Er gibt die
maximale Abweichung eines Kantenpunktes von der approximierenden
Geraden an. Aus Laufzeitgründen wird dabei nicht der euklidische
Abstand, sondern die Betragssumme der Koordinatendifferenzen
verwendet. MinLengthMinLengthMinLengthMinLengthMinLengthminLength gibt die gewünschte Mindestlänge
der Ausgabelinien an. Kürzere Linien werden unterdrückt.
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Automatisch parallelisiert auf Tupelebene.
Filtergröße für Sobeloperator.
Defaultwert: 5
Werteliste: 3, 5, 7, 9, 11, 13
Mindestamplitude für Kanten.
Defaultwert: 32
Wertevorschläge: 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 80, 90, 100, 110
Typischer Wertebereich: 1
≤
MinAmplitude
MinAmplitude
MinAmplitude
MinAmplitude
MinAmplitude
minAmplitude
≤
255
Minimale Schrittweite: 1
Empfohlene Schrittweite: 1
Restriktion: MinAmplitude >= 0
Maximale Abweichung der approximierenden
Geraden von der ursprünglichen Kante.
Defaultwert: 3
Wertevorschläge: 2, 3, 4, 5, 6, 7, 8
Typischer Wertebereich: 1
≤
MaxDistance
MaxDistance
MaxDistance
MaxDistance
MaxDistance
maxDistance
≤
30
Minimale Schrittweite: 1
Empfohlene Schrittweite: 1
Restriktion: MaxDistance >= 0
Mindestlänge der Ausgabelinien.
Defaultwert: 10
Wertevorschläge: 3, 5, 7, 9, 11, 13, 16, 20
Typischer Wertebereich: 1
≤
MinLength
MinLength
MinLength
MinLength
MinLength
minLength
≤
500
Minimale Schrittweite: 1
Empfohlene Schrittweite: 1
Restriktion: MinLength >= 0
Zeilenkoordinaten der Anfangspunkte der Ausgabelinien.
Spaltenkoordinaten der Anfgangspunkte der
Ausgabelinien.
Zeilenkoordinaten der Endpunkte der Ausgabelinien.
Spaltenkoordinaten der Endpunkte der Ausgabelinien.
Htuple SobelSize,MinAmplitude,MaxDistance,MinLength;
Htuple RowBegin,ColBegin,RowEnd,ColEnd;
create_tuple(&SobelSize,1);
set_i(SobelSize,5,0);
create_tuple(&MinAmplitude,1);
set_i(MinAmplitude,32,0);
create_tuple(&MaxDistance,1);
set_i(MaxDistance,3,0);
create_tuple(&MinLength,1);
set_i(MinLength,10,0);
T_detect_edge_segments(Image,SobelSize,MinAmplitude,MaxDistance,MinLength,
&RowBegin,&ColBegin,&RowEnd,&ColEnd);
Sind die Parameterwerte korrekt, dann liefert
detect_edge_segmentsdetect_edge_segmentsDetectEdgeSegmentsdetect_edge_segmentsDetectEdgeSegmentsDetectEdgeSegments den Wert 2 (H_MSG_TRUE). Das Verhalten bei leerer
Eingabe (keine Eingabebilder vorhanden) lässt sich mittels
set_system('no_object_result',<Result>)set_system("no_object_result",<Result>)SetSystem("no_object_result",<Result>)set_system("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>) festlegen.
Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
sigma_imagesigma_imageSigmaImagesigma_imageSigmaImageSigmaImage,
median_imagemedian_imageMedianImagemedian_imageMedianImageMedianImage
select_linesselect_linesSelectLinesselect_linesSelectLinesSelectLines,
partition_linespartition_linesPartitionLinespartition_linesPartitionLinesPartitionLines,
select_lines_longestselect_lines_longestSelectLinesLongestselect_lines_longestSelectLinesLongestSelectLinesLongest,
line_positionline_positionLinePositionline_positionLinePositionLinePosition,
line_orientationline_orientationLineOrientationline_orientationLineOrientationLineOrientation
sobel_ampsobel_ampSobelAmpsobel_ampSobelAmpSobelAmp,
thresholdthresholdThresholdthresholdThresholdThreshold,
skeletonskeletonSkeletonskeletonSkeletonSkeleton
Foundation