Name
char_thresholdchar_thresholdCharThresholdchar_thresholdCharThresholdCharThreshold — Segmentieren mit Schwellen für Texte.
Herror char_threshold(const Hobject Image, const Hobject HistoRegion, Hobject* Characters, double Sigma, double Percent, Hlong* Threshold)
Herror T_char_threshold(const Hobject Image, const Hobject HistoRegion, Hobject* Characters, const Htuple Sigma, const Htuple Percent, Htuple* Threshold)
Herror char_threshold(Hobject Image, Hobject HistoRegion, Hobject* Characters, const HTuple& Sigma, const HTuple& Percent, Hlong* Threshold)
Herror char_threshold(Hobject Image, Hobject HistoRegion, Hobject* Characters, const HTuple& Sigma, const HTuple& Percent, HTuple* Threshold)
HRegion HImage::CharThreshold(const HRegion& HistoRegion, const HTuple& Sigma, const HTuple& Percent, Hlong* Threshold) const
HRegionArray HImageArray::CharThreshold(const HRegion& HistoRegion, const HTuple& Sigma, const HTuple& Percent, HTuple* Threshold) const
void CharThreshold(const HObject& Image, const HObject& HistoRegion, HObject* Characters, const HTuple& Sigma, const HTuple& Percent, HTuple* Threshold)
HRegion HImage::CharThreshold(const HRegion& HistoRegion, double Sigma, const HTuple& Percent, HTuple* Threshold) const
HRegion HImage::CharThreshold(const HRegion& HistoRegion, double Sigma, double Percent, Hlong* Threshold) const
static void HOperatorSet.CharThreshold(HObject image, HObject histoRegion, out HObject characters, HTuple sigma, HTuple percent, out HTuple threshold)
HRegion HImage.CharThreshold(HRegion histoRegion, double sigma, HTuple percent, out HTuple threshold)
HRegion HImage.CharThreshold(HRegion histoRegion, double sigma, double percent, out int threshold)
char_thresholdchar_thresholdCharThresholdchar_thresholdCharThresholdCharThreshold ist darauf spezialisiert, in einkanaligen Bildern
dunkle Schriftzeichen von hellem Hintergrund zu segmentieren. Die
Vorgehensweise ist dabei wie folgt: Zuerst wird das Histogramm der Grauwerte
des Bildes ImageImageImageImageImageimage für die Punkte der Region HistoRegionHistoRegionHistoRegionHistoRegionHistoRegionhistoRegion
ermittelt und zur Rauschunterdrückung mit einer Gaußmaske (Parameter
SigmaSigmaSigmaSigmaSigmasigma) geglättet. In diesem Histogramm kennzeichnet das Maximum
den Hintergrund (weißes Papier), während die Schriftzeichen ein kleines
lokales Maximum bei niedrigen Grauwerten verursachen. Im Gegensatz zum
Operator binary_thresholdbinary_thresholdBinaryThresholdbinary_thresholdBinaryThresholdBinaryThreshold wird nun nicht nach dem Minimum zwischen den
beiden Maxima gesucht; der Schwellenwert wird stattdessen in Relation zum
Maximum des Histogramms, also zum Hintergrund, nach folgender Bedingung
bestimmt:
Histogramm[Schwellenwert] * 100.0 < Histogramm[Maximum] * (100.0 - PercentPercentPercentPercentPercentpercent)
Falls z.B. PercentPercentPercentPercentPercentpercent = 95 gewählt wird, sucht der Operator den
Grauwert, dessen Häufigkeit höchstens 5 Prozent der maximalen Häufigkeit
beträgt. Da char_thresholdchar_thresholdCharThresholdchar_thresholdCharThresholdCharThreshold annimmt, dass die Schriftzeichen
dunkler sind als der Hintergrund, wird der Schwellenwert links vom
Maximum gesucht.
Im Vergleich zu binary_thresholdbinary_thresholdBinaryThresholdbinary_thresholdBinaryThresholdBinaryThreshold sollte char_thresholdchar_thresholdCharThresholdchar_thresholdCharThresholdCharThreshold dann
eingesetzt werden, wenn kein deutliches Minimum zwischen den beiden zu den
Schriftzeichen bzw. zum Hintergrund gehörenden Maxima besteht oder die
Schriftzeichen gar kein lokales Maximum verursachen. Dies tritt z.B. bei
ungleichmäßiger Beleuchtung auf, oder wenn das Bild nur wenige
Schriftzeichen enthält.
- 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.
Region, in der das Histogramm berechnet wird.
Dunkle Bereiche des Bildes (Buchstaben).
Sigma für Glättung des Histogramms.
Defaultwert: 2.0
Wertevorschläge: 0.0, 0.5, 1.0, 2.0, 3.0, 4.0, 5.0
Typischer Wertebereich: 0.0
≤
Sigma
Sigma
Sigma
Sigma
Sigma
sigma
≤
50.0 (lin)
Minimale Schrittweite: 0.01
Empfohlene Schrittweite: 0.2
Prozentwert für Grauwertunterschied.
Defaultwert: 95
Wertevorschläge: 90, 92, 95, 96, 97, 98, 99, 99.5, 100
Typischer Wertebereich: 0.0
≤
Percent
Percent
Percent
Percent
Percent
percent
≤
100.0 (lin)
Minimale Schrittweite: 0.1
Empfohlene Schrittweite: 0.5
Verwendeter Schwellenwert.
read_image (Image, 'letters')
char_threshold (Image, Image, Seg, 0.0, 5.0, Threshold)
connection (Seg, Connected)
read_image(&Image,"letters");
char_threshold(Image,Image,&Seg,0.0,5.0,&Threshold);
connection(Seg,&Connected);
set_colored(WindowHandle,12);
set_shape(WindowHandle,"rectangle1");
disp_region(Connected,WindowHandle);
read_image (Image, 'letters')
char_threshold (Image, Image, Seg, 0.0, 5.0, Threshold)
connection (Seg, Connected)
#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]);
HWindow w;
HTuple threshold;
w.SetDraw("margin");
w.SetShape("rectangle1");
w.SetColored(12);
image.Display(w);
HRegionArray reg = image.CharThreshold(image,0,5,&threshold);
HRegionArray con = reg.Connection();
cout << "Display image after CharThreshold segmentation " << endl;
con.Display(w);
w.Click();
return 0;
}
read_image (Image, 'letters')
char_threshold (Image, Image, Seg, 0.0, 5.0, Threshold)
connection (Seg, Connected)
read_image (Image, 'letters')
char_threshold (Image, Image, Seg, 0.0, 5.0, Threshold)
connection (Seg, Connected)
anisotropic_diffusionanisotropic_diffusionAnisotropicDiffusionanisotropic_diffusionAnisotropicDiffusionAnisotropicDiffusion,
median_imagemedian_imageMedianImagemedian_imageMedianImageMedianImage,
illuminateilluminateIlluminateilluminateIlluminateIlluminate
connectionconnectionConnectionconnectionConnectionConnection,
select_shapeselect_shapeSelectShapeselect_shapeSelectShapeSelectShape,
select_grayselect_graySelectGrayselect_graySelectGraySelectGray
binary_thresholdbinary_thresholdBinaryThresholdbinary_thresholdBinaryThresholdBinaryThreshold,
auto_thresholdauto_thresholdAutoThresholdauto_thresholdAutoThresholdAutoThreshold,
gray_histogray_histoGrayHistogray_histoGrayHistoGrayHisto,
smooth_funct_1d_gausssmooth_funct_1d_gaussSmoothFunct1dGausssmooth_funct_1d_gaussSmoothFunct1dGaussSmoothFunct1dGauss,
thresholdthresholdThresholdthresholdThresholdThreshold
Foundation