regiongrowing regiongrowing Regiongrowing Regiongrowing regiongrowing (Operator)
Name
regiongrowing regiongrowing Regiongrowing Regiongrowing regiongrowing — Segmentieren mit Hilfe von Flächenwachstum.
Signatur
Herror regiongrowing (const Hobject Image , Hobject* Regions , const Hlong RasterHeight , const Hlong RasterWidth , double Tolerance , const Hlong MinSize )
Herror T_regiongrowing (const Hobject Image , Hobject* Regions , const Htuple RasterHeight , const Htuple RasterWidth , const Htuple Tolerance , const Htuple MinSize )
void Regiongrowing (const HObject& Image , HObject* Regions , const HTuple& RasterHeight , const HTuple& RasterWidth , const HTuple& Tolerance , const HTuple& MinSize )
HRegion HImage ::Regiongrowing (Hlong RasterHeight , Hlong RasterWidth , const HTuple& Tolerance , Hlong MinSize ) const
HRegion HImage ::Regiongrowing (Hlong RasterHeight , Hlong RasterWidth , double Tolerance , Hlong MinSize ) const
static void HOperatorSet .Regiongrowing (HObject image , out HObject regions , HTuple rasterHeight , HTuple rasterWidth , HTuple tolerance , HTuple minSize )
HRegion HImage .Regiongrowing (int rasterHeight , int rasterWidth , HTuple tolerance , int minSize )
HRegion HImage .Regiongrowing (int rasterHeight , int rasterWidth , double tolerance , int minSize )
Beschreibung
regiongrowing regiongrowing Regiongrowing Regiongrowing Regiongrowing regiongrowing liefert Bilder mit „gleicher“
Intensität - gerastert in Rechtecken der Größe
RasterHeight RasterHeight RasterHeight RasterHeight rasterHeight raster_height
RasterWidth RasterWidth RasterWidth RasterWidth rasterWidth raster_width .
Zur Entscheidung, ob benachbarte Rasterfelder zum selben Bild
gehören oder nicht, wird nur die Differenz der Grauwerte ihrer
Zentren herangezogen. Ist die Grauwertdifferenz kleiner oder gleich
Tolerance Tolerance Tolerance Tolerance tolerance tolerance , werden die Rasterfelder zu einer Region
verschmolzen.
Sind
und
zwei zu untersuchende Grauwerte,
dann gehören sie zur gleichen Region, falls:
Bei Pixeln vom Typ cyclic wird folgende Formel verwendet:
Bei Schrittweiten größer als 1 ist ein typisches Vorgehen, die
Eingabeobjekte vor dem Aufruf von regiongrowing regiongrowing Regiongrowing Regiongrowing Regiongrowing regiongrowing mit
einem Tiefpassfilter der Größe RasterHeight RasterHeight RasterHeight RasterHeight rasterHeight raster_height
RasterWidth RasterWidth RasterWidth RasterWidth rasterWidth raster_width zu glätten (damit die ausgewerteten Schwerpunkte der
Rasterfelder auch wirklich repräsentativ für das gesamte Rasterfeld sind).
Ist das Bildmaterial nicht stark verrauscht und die Schrittweite klein, dann
kann die vorherige Glättung in vielen Fällen auch entfallen.
In den Ergebnisbildern werden bei Schrittweiten größer als 1 nicht
nur die untersuchten Punkte gesetzt, sondern es wird um jeden Punkt
ein Rechteck der Größe RasterHeight RasterHeight RasterHeight RasterHeight rasterHeight raster_height
RasterWidth RasterWidth RasterWidth RasterWidth rasterWidth raster_width gesetzt.
Es werden nur Regionen, die mindestens MinSize MinSize MinSize MinSize minSize min_size Punkte umfassen,
ausgegeben.
Regiongrowing ist ein sehr schnelles Verfahren und ist daher für
zeitkritische Anwendungen zu empfehlen.
Achtung
RasterWidth RasterWidth RasterWidth RasterWidth rasterWidth raster_width und RasterHeight RasterHeight RasterHeight RasterHeight rasterHeight raster_height werden automatisch auf
ungerade Werte konvertiert.
Ausführungsinformationen
Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
Automatisch parallelisiert auf Tupelebene.
Parameter
Image Image Image Image image image (input_object) singlechannelimage(-array) → object HImage HObject HImage Hobject (byte / direction / cyclic / int1 / int2 / int4 / real)
Eingabebild.
Regions Regions Regions Regions regions regions (output_object) region-array → object HRegion HObject HRegion Hobject *
Segmentierte Regionen.
RasterHeight RasterHeight RasterHeight RasterHeight rasterHeight raster_height (input_control) extent.y → HTuple int HTuple Htuple (integer) (int / long) (Hlong ) (Hlong )
Vertikaler Abstand zwischen den Testpunkten (Höhe des
Rasters).
Defaultwert: 3
Wertevorschläge: 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21
Typischer Wertebereich: 1
≤
RasterHeight
RasterHeight
RasterHeight
RasterHeight
rasterHeight
raster_height
≤
99 (lin)
Minimale Schrittweite: 2
Empfohlene Schrittweite: 2
Restriktion: RasterHeight >= 1 && odd(RasterHeight)
RasterWidth RasterWidth RasterWidth RasterWidth rasterWidth raster_width (input_control) extent.x → HTuple int HTuple Htuple (integer) (int / long) (Hlong ) (Hlong )
Horizontaler Abstand zwischen den Testpunkten (Breite
des Rasters).
Defaultwert: 3
Wertevorschläge: 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21
Typischer Wertebereich: 1
≤
RasterWidth
RasterWidth
RasterWidth
RasterWidth
rasterWidth
raster_width
≤
99 (lin)
Minimale Schrittweite: 2
Empfohlene Schrittweite: 2
Restriktion: RasterWidth >= 1 && odd(RasterWidth)
Tolerance Tolerance Tolerance Tolerance tolerance tolerance (input_control) number → HTuple Union[int, float] HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Punkte mit Grauwertdifferenz kleiner oder gleich
Tolerance werden zum selben Objekt gezählt.
Defaultwert: 6.0
Wertevorschläge: 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 12.0, 14.0, 18.0, 25.0
Typischer Wertebereich: 0
≤
Tolerance
Tolerance
Tolerance
Tolerance
tolerance
tolerance
(lin)
Minimale Schrittweite: 0.01
Empfohlene Schrittweite: 1.0
MinSize MinSize MinSize MinSize minSize min_size (input_control) integer → HTuple int HTuple Htuple (integer) (int / long) (Hlong ) (Hlong )
Mindestgröße der Ausgaberegionen.
Defaultwert: 100
Wertevorschläge: 1, 5, 10, 20, 50, 100, 200, 500, 1000
Typischer Wertebereich: 1
≤
MinSize
MinSize
MinSize
MinSize
minSize
min_size
Minimale Schrittweite: 1
Empfohlene Schrittweite: 5
Beispiel (HDevelop)
read_image(Image,'fabrik')
mean_image(Image,Mean,RasterHeight,RasterWidth)
regiongrowing(Mean,Result,RasterHeight,RasterWidth,6.0,100)
Beispiel (C)
read_image(&Image,"fabrik");
mean_image(Image,&Mean,RasterHeight,RasterWidth);
regiongrowing(Mean,&Result,RasterHeight,RasterWidth,6,100);
Beispiel (C++)
#include "HIOStream.h"
#if !defined(USE_IOSTREAM_H)
using namespace std;
#endif
#include "HalconCpp.h"
using namespace Halcon;
int main (int argc, char *argv[])
{
if (argc != 2)
{
cout << "Usage : " << argv[0] << " <name of the image>" << endl;
return (-1);
}
HImage image (argv[1]),
mean;
HWindow win;
mean = image.MeanImage (5, 5);
HRegionArray reg = mean.Regiongrowing (5, 5, 6, 100);
reg.Display (win);
win.Click ();
return (0);
}
Beispiel (HDevelop)
read_image(Image,'fabrik')
mean_image(Image,Mean,RasterHeight,RasterWidth)
regiongrowing(Mean,Result,RasterHeight,RasterWidth,6.0,100)
Beispiel (HDevelop)
read_image(Image,'fabrik')
mean_image(Image,Mean,RasterHeight,RasterWidth)
regiongrowing(Mean,Result,RasterHeight,RasterWidth,6.0,100)
Komplexität
Sei N die Anzahl der gefundenen Regionen und M die Anzahl der
untersuchten Punkte in einer solchen Region, dann ist die
Laufzeitkomplexität O(N * log(M) * M).
Ergebnis
regiongrowing regiongrowing Regiongrowing Regiongrowing Regiongrowing regiongrowing liefert den Wert 2 (H_MSG_TRUE ), falls die
Parameter korrekt sind. Für das Verhalten bzgl. der Eingabebilder
und Ausgaberegionen sind die Flags 'no_object_result' "no_object_result" "no_object_result" "no_object_result" "no_object_result" "no_object_result" ,
'empty_region_result' "empty_region_result" "empty_region_result" "empty_region_result" "empty_region_result" "empty_region_result" und 'store_empty_region' "store_empty_region" "store_empty_region" "store_empty_region" "store_empty_region" "store_empty_region"
einstellbar (siehe set_system set_system SetSystem SetSystem SetSystem set_system ). Gegebenenfalls wird
eine Fehlerbehandlung durchgeführt.
Vorgänger
binomial_filter binomial_filter BinomialFilter BinomialFilter BinomialFilter binomial_filter ,
mean_image mean_image MeanImage MeanImage MeanImage mean_image ,
gauss_filter gauss_filter GaussFilter GaussFilter GaussFilter gauss_filter ,
smooth_image smooth_image SmoothImage SmoothImage SmoothImage smooth_image ,
median_image median_image MedianImage MedianImage MedianImage median_image ,
anisotropic_diffusion anisotropic_diffusion AnisotropicDiffusion AnisotropicDiffusion AnisotropicDiffusion anisotropic_diffusion
Nachfolger
select_shape select_shape SelectShape SelectShape SelectShape select_shape ,
reduce_domain reduce_domain ReduceDomain ReduceDomain ReduceDomain reduce_domain ,
select_gray select_gray SelectGray SelectGray SelectGray select_gray
Alternativen
regiongrowing_n regiongrowing_n RegiongrowingN RegiongrowingN RegiongrowingN regiongrowing_n ,
regiongrowing_mean regiongrowing_mean RegiongrowingMean RegiongrowingMean RegiongrowingMean regiongrowing_mean ,
label_to_region label_to_region LabelToRegion LabelToRegion LabelToRegion label_to_region
Modul
Foundation