F_VN_MedianFilter
Apply a Median filter to an image.
Syntax
Definition:
FUNCTION F_VN_MedianFilter : HRESULT
VAR_INPUT
ipSrcImage : ITcVnImage;
ipDestImage : Reference To ITcVnImage;
nFilterSize : UDINT;
hrPrev : HRESULT;
END_VAR
Inputs
Name |
Type |
Description |
---|---|---|
ipSrcImage |
Source image (for nFilterSize 3 or 5: USINT, UINT, REAL. For bigger filters, only USINT is supported. | |
ipDestImage |
Reference To ITcVnImage |
Destination image (An appropriate destination image will be created if required.) |
nFilterSize |
UDINT |
Size (width and height) of the filter (3, 5, 7, ...) |
hrPrev |
HRESULT indicating the result of previous operations (If SUCCEEDED(hrPrev) equals false, no operation is executed.) |
Weiterführende Informationen
Die Funktion F_VN_MedianFilter
wendet einen Median-Filter auf das Eingangsbild an.
Algorithmus
Der Median-Filter ist ein Rangordnungsfilter, der häufig zur Rauschunterdrückung eingesetzt wird. Dabei werden alle von der Filtermatrix erfassten Pixelwerte der Größe nach sortiert und anschließend der aktuelle Wert durch den Wert an mittlerer Position der sortierten Liste ersetzt. Der Vorteil gegenüber einem Filter mit gewichtetem Mittelwert (z. B. einem Gauß-Filter) besteht darin, dass starke Ausreißer einzelner Pixel (wie z. B. die 155 im nachfolgenden Beispielbild) komplett ignoriert werden und somit das Ergebnis nicht negativ beeinflussen.
Die Größe der Filtermatrix wird über nFilterSize
angeben, wobei nur ungerade Ganzzahlen >=
3 akzeptiert werden.
Parameter
Eingangsbild
Das Eingangsbild ipSrcImage
kann beliebig viele Kanäle haben. Bei einer Filter-Größe nFilterSize
von 3
oder 5
sind als Element-Typen USINT
; UINT
und REAL
erlaubt. Für größere Filter wird nur der Element-Typ USINT
unterstützt.
Ergebnisbild
Das Ergebnisbild ipDestImage
gibt das gefilterte Bild zurück.
Filter-Größe
Die Filter-Größe nFilterSize
legt die Höhe und Breite des Filterbereichs fest. Sie muss ungerade und >= 3
sein.
Anwendung
Die Anwendung eines Median-Filters mit der Größe 7×7
sieht z. B. so aus:
hr := F_VN_MedianFilter(
ipSrcImage := ipImageIn,
ipDestImage := ipImageRes,
nFilterSize := 7,
hrPrev := hr
);
Das unbearbeitete Originalbild (1. Zeile) weist im Detail bereits feine Strukturen auf den Oberflächen der Zahnräder auf. Um die Filterwirkungen zu verdeutlichen wurden zusätzliche Störungen durch ein Gauss- (2. Zeile) und ein Salz- und Pfeffer-Rauschen (3. Zeile) zu dem Originalbild hinzugefügt.
Originalbilder | Ergebnisbilder |
Beispiele
Required License
TC3 Vision Base
System Requirements
Development environment | Target platform | PLC libraries to include |
---|---|---|
TwinCAT V3.1.4024.54 or later | PC or CX (x64) with PL50, e.g. Intel 4-core Atom CPU | Tc3_Vision |