F_VN_CheckColorRange
Check if the pixel values of an image lie in a given range. The destination image has the same size as the source image but only one channel with a pixel element size of 8 bit. Its elements are set to 255 if the corresponding pixels of the source image are in the checked range and set to 0 otherwise.
Syntax
Definition:
FUNCTION F_VN_CheckColorRange : HRESULT
VAR_INPUT
ipSrcImage : ITcVnImage;
ipDestImage : Reference To ITcVnImage;
END_VAR
VAR_IN_OUT
aLowerBounds : TcVnVector4_LREAL;
aUpperBounds : TcVnVector4_LREAL;
END_VAR
VAR_INPUT
hrPrev : HRESULT;
END_VAR
Inputs
Name | Type | Description |
|---|---|---|
ipSrcImage | Source image | |
ipDestImage | Reference To ITcVnImage | Destination image (An appropriate destination image will be created if required.) |
hrPrev | HRESULT indicating the result of previous operations (If SUCCEEDED(hrPrev) equals false, no operation is executed.) |
In/Outputs
Name | Type | Description |
|---|---|---|
aLowerBounds | Channel-wise lower bounds (Unused channels are ignored.) | |
aUpperBounds | Channel-wise upper bounds (Unused channels are ignored.) |
Weiterführende Informationen
Die Funktion F_VN_CheckColorRange segmentiert das Eingangsbild hinsichtlich eines bestimmten Wertebereichs. Somit ist es egal welcher Farbraum verwendet wird, da die Segmentierung rein numerisch erfolgt.
- Bildpixel, die innerhalb des Bereichs liegen, bekommen den Maximalwert 255 (weiß).
- Bildpixel, die außerhalb des Farbspektrums liegen, bekommen den Wert
0(schwarz).
Parameter
Eingangsbild
Das Eingangsbild ipSrcImage kann jedes beliebige Format haben.
Ergebnisbild
Das Ergebnisbild ipDestImage gibt das segmentierte 1-kanalige 8-Bit Binärbild zurück.
Wertebereich
Der zu segmentierende Wertebereich wird durch die die untere Grenze aLowerBounds und obere Grenze aUpperBounds festlegen.
Bei zyklischen Wertebereichen wie dem Hue-Kanal im HSV-Raum kann der untere Grenzwert den oberen übersteigen, um Farbbereiche über den Nulldurchgang hinweg zu segmentieren. Ein Bereich von der unteren Grenze [250, ...] bis zur oberen Grenze [5, ...] entspricht dabei der Kombination von einem Funktionsaufruf mit [250, …] - [MAX, …] und [0, …] – [5, …]. Dadurch ist eine direkte Selektion von Farbtönen, die im Übergang des Wertebereichs liegen wie z.B. der Rot-Bereich (+-20° um 0°) im Hue-Kanal, mit einem Funktionsaufruf möglich.
![]() | Grenzvektoren initialisieren Achten Sie immer darauf, die Grenzvektoren mit mindestens so vielen Elementen zu initialisieren, wie das Eingangsbild Kanäle hat. Wenn Sie beispielsweise ein 4-kanaliges Bild (z. B. mit Alpha-Kanal) segmentieren und die Farbvektoren nur mit drei Elementen initialisieren, sind die vierten Elemente der Vektoren 0 und das Ergebnisbild wird schwarz. |
Anwendung
Für robuste Farbsegmentierungen ist grundsätzlich empfehlenswert, in einem anderen Farbraum als dem additiven RGB-Raum zu arbeiten. Zum Beispiel ist im HSV-Raum der Farbton (H) von Helligkeit (V) und Sättigung (S) getrennt, wodurch die Farbunterscheidung damit typischerweise weniger empfindlich auf Beleuchtungsschwankungen reagiert.
Die Segmentierung eines HSV-Bilds (HSV_FULL) für ein rotes Farbspektrum sieht z. B. so aus:
VAR
aLower : TcVnVector4_LREAL := [250, 150, 100];
aUpper : TcVnVector4_LREAL := [5, 255, 255];
END_VAR
hr := F_VN_CheckColorRange(
ipSrcImage := ipImageIn,
ipDestImage := ipImageRes,
aLowerBounds := aLower,
aUpperBounds := aUpper,
hrPrev := hr);Beispiele
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 min. PL50, e.g. Intel 4-core Atom CPU | Tc3_Vision |
Return value