bin_thresholdbin_thresholdBinThresholdBinThresholdbin_threshold (Operator)
Name
bin_thresholdbin_thresholdBinThresholdBinThresholdbin_threshold — Segmentieren eines Bildes mit automatisch gewählter Schwelle.
Warnung
bin_thresholdbin_thresholdBinThresholdBinThresholdBinThresholdbin_threshold ist veraltet und wird nur aus Gründen
der Rückwärtskompatibilität zur Verfügung gestellt. Neue Applikationen
sollten stattdessen den Operator binary_thresholdbinary_thresholdBinaryThresholdBinaryThresholdBinaryThresholdbinary_threshold verwenden.
Signatur
Herror bin_threshold(const Hobject Image, Hobject* Region)
Herror T_bin_threshold(const Hobject Image, Hobject* Region)
def bin_threshold(image: HObject) -> HObject
Beschreibung
bin_thresholdbin_thresholdBinThresholdBinThresholdBinThresholdbin_threshold segmentiert ein einkanaliges Bild mittels
eines automatisch bestimmten Schwellenwertes. Als erstes wird dabei
das relative Histogramm über den Grauwerten ermittelt. Dann werden
im Histogramm relevante Minima gesucht, die als Schwellen für die
Schwellenwertsegmentierung dienen.
Um die Anzahl der Minima zu reduzieren, wird
das Histogramm wie bei auto_thresholdauto_thresholdAutoThresholdAutoThresholdAutoThresholdauto_threshold mit einer
Gaußmaske geglättet. Die Maske wird dabei so lange vergrößert,
bis nur noch ein Minimum vorhanden ist. Ausgewählt werden die
Grauwerte von Null bis zu diesem Minimum oder für real Bilder den kleinsten
Wert zu dem minimalen Wert. Das Verfahren ist z.B. für die Segmentierung von
dunklen Buchstaben auf hellem Papier geeignet.
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.
- Automatisch parallelisiert auf interner Datenebene.
Parameter
ImageImageImageImageimageimage (input_object) singlechannelimage(-array) → objectHImageHObjectHImageHobject (byte / uint2 / real)
Eingabebild.
RegionRegionRegionRegionregionregion (output_object) region(-array) → objectHRegionHObjectHRegionHobject *
Dunkle Bereiche des Bildes.
Beispiel (HDevelop)
read_image (Image, 'letters')
bin_threshold (Image, Seg)
connection (Seg, Connected)
Beispiel (C)
read_image(&Image,"letters");
bin_threshold(Image,&Seg);
connection(Seg,&Connected);
set_shape(WindowHandle,"rectangle1");
set_colored(WindowHandle,6);
disp_region(Connected,WindowHandle);
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] << " 'image' " << endl;
return -1;
}
HImage image(argv[1]);
HImage med;
HWindow w;
w.SetDraw("margin");
w.SetShape("rectangle1");
w.SetColored(12);
image.Display(w);
HRegionArray reg = image.BinThreshold();
HRegionArray con = reg.Connection();
cout << "Display image after BinThreshold segmentation " << endl;
con.Display(w);
w.Click();
return 0;
}
Beispiel (HDevelop)
read_image (Image, 'letters')
bin_threshold (Image, Seg)
connection (Seg, Connected)
Beispiel (HDevelop)
read_image (Image, 'letters')
bin_threshold (Image, Seg)
connection (Seg, Connected)
Modul
Foundation