Name
class_2dim_unsupclass_2dim_unsupClass2dimUnsupclass_2dim_unsupClass2dimUnsupClass2dimUnsup — Segmentieren zweier Bilder mittels Clustering.
class_2dim_unsupclass_2dim_unsupClass2dimUnsupclass_2dim_unsupClass2dimUnsupClass2dimUnsup führt eine Klassifikation mit zwei
einkanaligen Bildern durch. Als erstes wird ein zweidimensionales
Histogramm über die zwei gegebenen Bilder aufgestellt
(histo_2dimhisto_2dimHisto2dimhisto_2dimHisto2dimHisto2dim). In diesem zweidimensionalen Histogramm
wird das erste Maximum gesucht. Es stellt das erste Clusterzentrum
dar. Das Histogramm wird mit den Bildpunkten berechnet, die in
beiden Bildern definiert sind (siehe reduce_domainreduce_domainReduceDomainreduce_domainReduceDomainReduceDomain).
Danach werden im Bild alle Pixel gesucht, die sich höchstens um
ThresholdThresholdThresholdThresholdThresholdthreshold von den Grauwerten der des Clusterzentrums
unterscheiden (Maximumsabstand vom Zentrum). Die gefundenen Pixel
bilden eine Region. Anschließend werden die zu den gefundenen
Pixel gehörenden Punkte im Histogramm gelöscht, damit sie bei der
nächsten Klassenbildung nicht mehr berücksichtigt werden müssen.
In diesem modifizierten Histogramm wird wiederum das Maximum
gesucht; es bildet das neue Clusterzentrum. Die obigen genannten
Schritte werden wiederholt. Insgesamt werden die Schritte
NumClassesNumClassesNumClassesNumClassesNumClassesnumClasses-mal, wiederholt; es ergeben sich also
NumClassesNumClassesNumClassesNumClassesNumClassesnumClasses-Ausgaberegionen. Es werden nur Punkte
ausgegeben, die in beiden Bildern definiert sind.
Die beiden Eingabebilder müssen die gleiche Größe haben.
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Wird ohne Parallelisierung verarbeitet.
Ergebnis der Klassifikation.
Schwellenwert (maximaler Abstand vom Clusterzentrum).
Defaultwert: 15
Wertevorschläge: 0, 2, 5, 8, 12, 17, 20, 30, 50, 70
Anzahl der Klassen (Clusterzentren).
Defaultwert: 5
Wertevorschläge: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 15, 20, 30, 40, 50
#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] << " 'image' " << endl;
return (-1);
}
HImage colimg (argv[1]),
green, blue;
HWindow w;
Hlong nc;
if ((nc = colimg.CountChannels ()) != 3)
{
cout << argv[1] << " is not a rgb-image " << endl;
return (-2);
}
colimg.Display (w);
HImage red = colimg.Decompose3 (&green, &blue);
HRegionArray seg = red.Class2dimUnsup (green, 15, 5);
w.SetDraw ("margin");
w.SetColored (12);
seg.Display (w);
w.Click ();
return (0);
}
read_image(&ColorImage,"patras");
decompose3(ColorImage,&Red,&Green,&Blue);
class_2dim_unsup(Red,Green,&Seg,15,5);
set_colored(WindowHandle,12);
disp_region(Seg,WindowHandle);
#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] << " 'image' " << endl;
return (-1);
}
HImage colimg (argv[1]),
green, blue;
HWindow w;
Hlong nc;
if ((nc = colimg.CountChannels ()) != 3)
{
cout << argv[1] << " is not a rgb-image " << endl;
return (-2);
}
colimg.Display (w);
HImage red = colimg.Decompose3 (&green, &blue);
HRegionArray seg = red.Class2dimUnsup (green, 15, 5);
w.SetDraw ("margin");
w.SetColored (12);
seg.Display (w);
w.Click ();
return (0);
}
#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] << " 'image' " << endl;
return (-1);
}
HImage colimg (argv[1]),
green, blue;
HWindow w;
Hlong nc;
if ((nc = colimg.CountChannels ()) != 3)
{
cout << argv[1] << " is not a rgb-image " << endl;
return (-2);
}
colimg.Display (w);
HImage red = colimg.Decompose3 (&green, &blue);
HRegionArray seg = red.Class2dimUnsup (green, 15, 5);
w.SetDraw ("margin");
w.SetColored (12);
seg.Display (w);
w.Click ();
return (0);
}
#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] << " 'image' " << endl;
return (-1);
}
HImage colimg (argv[1]),
green, blue;
HWindow w;
Hlong nc;
if ((nc = colimg.CountChannels ()) != 3)
{
cout << argv[1] << " is not a rgb-image " << endl;
return (-2);
}
colimg.Display (w);
HImage red = colimg.Decompose3 (&green, &blue);
HRegionArray seg = red.Class2dimUnsup (green, 15, 5);
w.SetDraw ("margin");
w.SetColored (12);
seg.Display (w);
w.Click ();
return (0);
}
#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] << " 'image' " << endl;
return (-1);
}
HImage colimg (argv[1]),
green, blue;
HWindow w;
Hlong nc;
if ((nc = colimg.CountChannels ()) != 3)
{
cout << argv[1] << " is not a rgb-image " << endl;
return (-2);
}
colimg.Display (w);
HImage red = colimg.Decompose3 (&green, &blue);
HRegionArray seg = red.Class2dimUnsup (green, 15, 5);
w.SetDraw ("margin");
w.SetColored (12);
seg.Display (w);
w.Click ();
return (0);
}
class_2dim_unsupclass_2dim_unsupClass2dimUnsupclass_2dim_unsupClass2dimUnsupClass2dimUnsup 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.
decompose2decompose2Decompose2decompose2Decompose2Decompose2,
decompose3decompose3Decompose3decompose3Decompose3Decompose3,
median_imagemedian_imageMedianImagemedian_imageMedianImageMedianImage,
anisotropic_diffusionanisotropic_diffusionAnisotropicDiffusionanisotropic_diffusionAnisotropicDiffusionAnisotropicDiffusion,
reduce_domainreduce_domainReduceDomainreduce_domainReduceDomainReduceDomain
select_shapeselect_shapeSelectShapeselect_shapeSelectShapeSelectShape,
select_grayselect_graySelectGrayselect_graySelectGraySelectGray,
connectionconnectionConnectionconnectionConnectionConnection
thresholdthresholdThresholdthresholdThresholdThreshold,
histo_2dimhisto_2dimHisto2dimhisto_2dimHisto2dimHisto2dim,
class_2dim_supclass_2dim_supClass2dimSupclass_2dim_supClass2dimSupClass2dimSup,
class_ndim_normclass_ndim_normClassNdimNormclass_ndim_normClassNdimNormClassNdimNorm
Foundation