KlassenKlassenKlassenKlassen | | | | Operatoren

bin_thresholdbin_thresholdBinThresholdbin_thresholdBinThresholdBinThreshold (Operator)

Name

bin_thresholdbin_thresholdBinThresholdbin_thresholdBinThresholdBinThreshold — Segmentieren eines Bildes mit automatisch gewählter Schwelle.

Warnung

bin_thresholdbin_thresholdBinThresholdbin_thresholdBinThresholdBinThreshold 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_thresholdBinaryThresholdbinary_thresholdBinaryThresholdBinaryThreshold verwenden.

Signatur

bin_threshold(Image : Region : : )

Herror bin_threshold(const Hobject Image, Hobject* Region)

Herror T_bin_threshold(const Hobject Image, Hobject* Region)

Herror bin_threshold(Hobject Image, Hobject* Region)

HRegion HImage::BinThreshold() const

HRegionArray HImageArray::BinThreshold() const

void BinThreshold(const HObject& Image, HObject* Region)

HRegion HImage::BinThreshold() const

void HOperatorSetX.BinThreshold(
[in] IHUntypedObjectX* Image, [out] IHUntypedObjectX*Region)

IHRegionX* HImageX.BinThreshold()

static void HOperatorSet.BinThreshold(HObject image, out HObject region)

HRegion HImage.BinThreshold()

Beschreibung

bin_thresholdbin_thresholdBinThresholdbin_thresholdBinThresholdBinThreshold 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 Schwellenwertsegmentation dienen. Um die Anzahl der Minima zu reduzieren, wird das Histogramm wie bei auto_thresholdauto_thresholdAutoThresholdauto_thresholdAutoThresholdAutoThreshold 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 Segmentation von dunklen Buchstaben auf hellem Papier geeignet.

Parallelisierung

Parameter

ImageImageImageImageImageimage (input_object)  singlechannelimage(-array) objectHImageHImageHImageHImageXHobject (byte / uint2 / real)

Eingabebild.

RegionRegionRegionRegionRegionregion (output_object)  region(-array) objectHRegionHRegionHRegionHRegionXHobject *

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 (HDevelop)

read_image (Image, 'letters')
bin_threshold (Image, Seg)
connection (Seg, Connected)

Beispiel (C++ (HALCON 5.0-10.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       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


KlassenKlassenKlassenKlassen | | | | Operatoren