F_VN_MedianFilter

F_VN_MedianFilter 1:

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

F_VN_MedianFilter 2: Inputs

Name

Type

Description

ipSrcImage

ITcVnImage

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

HRESULT indicating the result of previous operations (If SUCCEEDED(hrPrev) equals false, no operation is executed.)

F_VN_MedianFilter 3: Return value

HRESULT

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.

F_VN_MedianFilter 4:

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

F_VN_MedianFilter 5:

F_VN_MedianFilter 6:

F_VN_MedianFilter 7:

F_VN_MedianFilter 8:

F_VN_MedianFilter 9:

F_VN_MedianFilter 10:

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