Name
regiongrowingregiongrowingRegiongrowingregiongrowingRegiongrowingRegiongrowing — Segmentieren mit Hilfe von Flächenwachstum.
Herror regiongrowing(const Hobject Image, Hobject* Regions, const Hlong Row, const Hlong Column, double Tolerance, const Hlong MinSize)
Herror T_regiongrowing(const Hobject Image, Hobject* Regions, const Htuple Row, const Htuple Column, const Htuple Tolerance, const Htuple MinSize)
Herror regiongrowing(Hobject Image, Hobject* Regions, const HTuple& Row, const HTuple& Column, const HTuple& Tolerance, const HTuple& MinSize)
HRegionArray HImage::Regiongrowing(const HTuple& Row, const HTuple& Column, const HTuple& Tolerance, const HTuple& MinSize) const
HRegionArray HImageArray::Regiongrowing(const HTuple& Row, const HTuple& Column, const HTuple& Tolerance, const HTuple& MinSize) const
void Regiongrowing(const HObject& Image, HObject* Regions, const HTuple& Row, const HTuple& Column, const HTuple& Tolerance, const HTuple& MinSize)
HRegion HImage::Regiongrowing(Hlong Row, Hlong Column, const HTuple& Tolerance, Hlong MinSize) const
HRegion HImage::Regiongrowing(Hlong Row, Hlong Column, double Tolerance, Hlong MinSize) const
static void HOperatorSet.Regiongrowing(HObject image, out HObject regions, HTuple row, HTuple column, HTuple tolerance, HTuple minSize)
HRegion HImage.Regiongrowing(int row, int column, HTuple tolerance, int minSize)
HRegion HImage.Regiongrowing(int row, int column, double tolerance, int minSize)
regiongrowingregiongrowingRegiongrowingregiongrowingRegiongrowingRegiongrowing liefert Bilder mit „gleicher“
Intensität --- gerastert in Rechtecken der Größe
Row * Column.
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
ToleranceToleranceToleranceToleranceTolerancetolerance, werden die Rasterfelder zu einer Region
verschmolzen.
Sind g_{1} und g_{2} 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 regiongrowingregiongrowingRegiongrowingregiongrowingRegiongrowingRegiongrowing mit
einem Tiefpassfilter der Größe Row * Column 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 Row * Column gesetzt. Es werden nur
Regionen, die mindestens MinSizeMinSizeMinSizeMinSizeMinSizeminSize Punkte umfassen,
ausgegeben.
Regiongrowing ist ein sehr schnelles Verfahren und ist daher für
zeitkritische Anwendungen zu empfehlen.
ColumnColumnColumnColumnColumncolumn und RowRowRowRowRowrow werden automatisch auf ungerade
Werte konvertiert.
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Automatisch parallelisiert auf Tupelebene.
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
≤
Row
Row
Row
Row
Row
row
≤
99 (lin)
Minimale Schrittweite: 2
Empfohlene Schrittweite: 2
Restriktion: Row >= 1 && odd(Row)
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
≤
Column
Column
Column
Column
Column
column
≤
99 (lin)
Minimale Schrittweite: 2
Empfohlene Schrittweite: 2
Restriktion: Column >= 1 && odd(Column)
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: 1.0
≤
Tolerance
Tolerance
Tolerance
Tolerance
Tolerance
tolerance
≤
127.0 (lin)
Minimale Schrittweite: 0.01
Empfohlene Schrittweite: 1.0
Restriktion: 0 <= Tolerance && Tolerance < 127
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
minSize
Minimale Schrittweite: 1
Empfohlene Schrittweite: 5
Restriktion: MinSize >= 1
read_image(Image,'fabrik')
mean_image(Image,Mean,Row,Column)
regiongrowing(Mean,Result,Row,Column,6.0,100)
read_image(&Image,"fabrik");
mean_image(Image,&Mean,Row,Column);
regiongrowing(Mean,&Result,Row,Column,6,100);
read_image(Image,'fabrik')
mean_image(Image,Mean,Row,Column)
regiongrowing(Mean,Result,Row,Column,6.0,100)
#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);
}
read_image(Image,'fabrik')
mean_image(Image,Mean,Row,Column)
regiongrowing(Mean,Result,Row,Column,6.0,100)
read_image(Image,'fabrik')
mean_image(Image,Mean,Row,Column)
regiongrowing(Mean,Result,Row,Column,6.0,100)
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).
regiongrowingregiongrowingRegiongrowingregiongrowingRegiongrowingRegiongrowing 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_systemset_systemSetSystemset_systemSetSystemSetSystem). Gegebenenfalls wird
eine Fehlerbehandlung durchgeführt.
binomial_filterbinomial_filterBinomialFilterbinomial_filterBinomialFilterBinomialFilter,
mean_imagemean_imageMeanImagemean_imageMeanImageMeanImage,
gauss_filtergauss_filterGaussFiltergauss_filterGaussFilterGaussFilter,
smooth_imagesmooth_imageSmoothImagesmooth_imageSmoothImageSmoothImage,
median_imagemedian_imageMedianImagemedian_imageMedianImageMedianImage,
anisotropic_diffusionanisotropic_diffusionAnisotropicDiffusionanisotropic_diffusionAnisotropicDiffusionAnisotropicDiffusion
select_shapeselect_shapeSelectShapeselect_shapeSelectShapeSelectShape,
reduce_domainreduce_domainReduceDomainreduce_domainReduceDomainReduceDomain,
select_grayselect_graySelectGrayselect_graySelectGraySelectGray
regiongrowing_nregiongrowing_nRegiongrowingNregiongrowing_nRegiongrowingNRegiongrowingN,
regiongrowing_meanregiongrowing_meanRegiongrowingMeanregiongrowing_meanRegiongrowingMeanRegiongrowingMean,
label_to_regionlabel_to_regionLabelToRegionlabel_to_regionLabelToRegionLabelToRegion
Foundation