F_VN_Threshold
Apply a fixed threshold or a dynamic threshold according to Otsu.
Can use available TwinCAT Job Tasks for executing parallel code regions.
Can return partial results when canceled by Watchdog.
Syntax
Definition:
FUNCTION F_VN_Threshold : HRESULT
VAR_INPUT
ipSrcImage : ITcVnImage;
ipDestImage : Reference To ITcVnImage;
fThreshold : LREAL;
fMaxValue : LREAL;
eThresholdType : ETcVnThresholdType;
hrPrev : HRESULT;
END_VAR
Inputs
Name |
Type |
Description |
---|---|---|
ipSrcImage |
Source image (For Otsu and Triangle threshold types, only 1 channel of TCVN_ET_USINT is supported) | |
ipDestImage |
Reference To ITcVnImage |
Destination image (An appropriate destination image will be created if required.) |
fThreshold |
LREAL |
Fixed threshold (unused if dynamic thresholding is selected) |
fMaxValue |
LREAL |
Maximum pixel value |
eThresholdType |
Threshold type to be applied | |
hrPrev |
HRESULT indicating the result of previous operations (If SUCCEEDED(hrPrev) equals false, no operation is executed.) |
Weiterführende Informationen
Die Funktion F_VN_Threshold
segmentiert das Eingangsbild hinsichtlich eines Schwellwerts. Abhängig von diesem Schwellwert und dem verwendeten Algorithmus wird jedem Pixel des binären Ergebnisbilds der Wert 0
und ein vorgegebener Zielwert zugewiesen.
Algorithmus
Ein Threshold verwandelt ein monochromes Bild in ein binäres Bild und lässt so Segmente entstehen. Eine gute Segmentierung ist die Voraussetzung für viele Folgemethoden wie z. B. die Kontursuche. TwinCAT Vision bietet verschiedene Arten von Schwellwerten, die für unterschiedliche Anwendungen geeignet sind.
Fester Schwellwert
Ein fester Schwellwert erzeugt einfach ein binäres Bild, indem Pixel mit einem Wert größer als fThreshold auf weiß (255) und andere auf schwarz (0) gesetzt werden. fThreshold ist ein Parameter der entsprechenden Funktionen. Um einen guten Wert herauszufinden, werden Sie sich höchstwahrscheinlich durch verschiedene Versuche annähern.
Dynamischer Schwellwert
Eine dynamische Schwelle nach Otsu funktioniert perfekt für bimodale Bilder. Das Histogramm eines bimodalen Bildes hat zwei Hauptpeaks und ein guter Schwellwert liegt höchstwahrscheinlich genau in der Mitte. Falls Sie ein verrauschtes Bild haben, können Sie einen Gauß-Filter verwenden, um es in eine bimodale Richtung zu verschieben.
Adaptiver Schwellwert
Ein adaptiver Schwellwert verwendet variable Schwellwerte im gesamten Bild. Siehe F_VN_AdaptiveThresholdExp .
Parameter
Eingangsbild
Das Eingangsbild ipSrcImage
darf einen oder drei Kanäle besitzen.
Ergebnisbild
Das Ergebnisbild ipDestImage
gibt das segmentierte Binärbild zurück.
Schwellwert
Der Schwellwert fThreshold
definiert die Segmentierungsbedingung. Er muss je nach Beschaffenheit des Eingangsbilds angepasst werden.
Zielwert
Der Zielwert fMaxValue
definiert, welchen Wert die Pixel bekommen sollen, die das Schwellwert-Kriterium erfüllen. Wenn das Ergebnisbild nur aus schwarzen und weißen Pixeln bestehen soll, muss hier der Maximal-Wert des Element-Typs des Eingangsbilds eingestellt werden. Dies entspricht (2^d)-1
, wobei d
die Bittiefe des Element-Typs darstellt; z. B. (2^8)-1=255
bei 8-Bit-Bildern.
Schwellwert-Typ
Der Schwellwert-Typ eThresholdType
definiert, nach welchem Algorithmus der Schwellwert fThreshold
auf das Eingangsbild angewandt wird. Alle Werte des Enums ETcVnThresholdType werden unterstützt.
Anwendung
Die binäre Segmentierung eines 8-Bit Grauwertbilds in der Mitte des Wertespektrums sieht z. B. so aus:
hr := F_VN_Threshold(
ipSrcImage := ipImageIn,
ipDestImage := ipImageRes,
fThreshold := 128, // half value range: (2^8)/2=128
fMaxValue := 255, // max value of 8-bit image: (2^8)-1=255
eThresholdType := TCVN_TT_BINARY,
hrPrev := hr
);
Verwandte Funktionen
- F_VN_DoubleThreshold für binäre Segmentierung anhand von Doppelschwellwerten mittels morphologischer Rekonstruktion
- F_VN_Threshold für binäre Segmentierung anhand eines Schwellwerts
- F_VN_AdaptiveThreshold für binäre, adaptive Segmentierung
- F_VN_CheckColorRange für binäre Segmentierung anhand eines Farbspektrums
- F_VN_ReferenceColorSimilarity für binäre Segmentierung anhand eines Farbmodells
Required License
TC3 Vision Base
System Requirements
Development environment | Target platform | PLC libraries to include |
---|---|---|
TwinCAT V3.1.4024.59 or later | PC or CX (x64) with PL50, e.g. Intel 4-core Atom CPU | Tc3_Vision |