KlassenKlassenKlassenKlassen | | | | Operatoren

shock_filtershock_filterShockFiltershock_filterShockFilterShockFilter (Operator)

Name

shock_filtershock_filterShockFiltershock_filterShockFilterShockFilter — Anwendung eines Schockfilters auf ein Bild.

Signatur

shock_filter(Image : SharpenedImage : Theta, Iterations, Mode, Sigma : )

Herror shock_filter(const Hobject Image, Hobject* SharpenedImage, double Theta, const Hlong Iterations, const char* Mode, double Sigma)

Herror T_shock_filter(const Hobject Image, Hobject* SharpenedImage, const Htuple Theta, const Htuple Iterations, const Htuple Mode, const Htuple Sigma)

Herror shock_filter(Hobject Image, Hobject* SharpenedImage, const HTuple& Theta, const HTuple& Iterations, const HTuple& Mode, const HTuple& Sigma)

HImage HImage::ShockFilter(const HTuple& Theta, const HTuple& Iterations, const HTuple& Mode, const HTuple& Sigma) const

HImageArray HImageArray::ShockFilter(const HTuple& Theta, const HTuple& Iterations, const HTuple& Mode, const HTuple& Sigma) const

void ShockFilter(const HObject& Image, HObject* SharpenedImage, const HTuple& Theta, const HTuple& Iterations, const HTuple& Mode, const HTuple& Sigma)

HImage HImage::ShockFilter(double Theta, Hlong Iterations, const HString& Mode, double Sigma) const

HImage HImage::ShockFilter(double Theta, Hlong Iterations, const char* Mode, double Sigma) const

void HOperatorSetX.ShockFilter(
[in] IHUntypedObjectX* Image, [out] IHUntypedObjectX*SharpenedImage, [in] VARIANT Theta, [in] VARIANT Iterations, [in] VARIANT Mode, [in] VARIANT Sigma)

IHImageX* HImageX.ShockFilter(
[in] double Theta, [in] Hlong Iterations, [in] BSTR Mode, [in] double Sigma)

static void HOperatorSet.ShockFilter(HObject image, out HObject sharpenedImage, HTuple theta, HTuple iterations, HTuple mode, HTuple sigma)

HImage HImage.ShockFilter(double theta, int iterations, string mode, double sigma)

Beschreibung

Der Operator shock_filtershock_filterShockFiltershock_filterShockFilterShockFilter wendet einen Schockfilter zur Schärfung von Bildkanten auf das Eingabebild ImageImageImageImageImageimage an. Das Prinzip eines Schockfilters beruht darauf, die Grauwerte eines Bildes durch Dilation und Erosion von beiden Seiten auf eine Kante zu zu transportieren und erfüllt somit die Differentialgleichung

auf der zum Zeitpunkt durch die Grauwerte in ImageImageImageImageImageimage definierten Funktion u. Die diskretisierte Gleichung wird in IterationsIterationsIterationsIterationsIterationsiterations Zeitschritten der Länge ThetaThetaThetaThetaThetatheta gelöst, so dass das Ausgabebild SharpenedImageSharpenedImageSharpenedImageSharpenedImageSharpenedImagesharpenedImage die Grauwertfunktion zur Zeit enthält.

Die Entscheidung für Dilation oder Erosion wird über die Vorzeichenfunktion s mit den Werten {-1,0,+1} mit Hilfe eines üblichen Kantendetektors getroffen. Es stehen der Detektor von Canny

mit ModeModeModeModeModemode='canny'"canny""canny""canny""canny""canny" und der Detektor von Marr/Hildreth (der Laplace-Operator)
mit ModeModeModeModeModemode='laplace'"laplace""laplace""laplace""laplace""laplace" zur Verfügung.

Damit die Erkennung der Kanten, insbesondere bei verrauschten Bildern, robuster erfolgt, kann diese auf einer geglätteten Bildmatrix ausgeführt werden. Dazu kann im Parameter SigmaSigmaSigmaSigmaSigmasigma die Standardabweichung eines Gausskernes angegeben werden, mit dem die Bildmatrix gefaltet werden soll.

Parallelisierung

Parameter

ImageImageImageImageImageimage (input_object)  (multichannel-)image(-array) objectHImageHImageHImageHImageXHobject (byte / uint2 / real)

Eingabebild.

SharpenedImageSharpenedImageSharpenedImageSharpenedImageSharpenedImagesharpenedImage (output_object)  image(-array) objectHImageHImageHImageHImageXHobject * (byte / uint2 / real)

Ausgabebild.

ThetaThetaThetaThetaThetatheta (input_control)  real HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Zeitschritt.

Defaultwert: 0.5

Wertevorschläge: 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7

Restriktion: 0 < Theta <= 0.7

IterationsIterationsIterationsIterationsIterationsiterations (input_control)  integer HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong) (Hlong)

Anzahl Iterationen.

Defaultwert: 10

Wertevorschläge: 1, 3, 10, 100

Restriktion: Iterations >= 1

ModeModeModeModeModemode (input_control)  string HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (char*)

Art des Kantendetektors.

Defaultwert: 'canny' "canny" "canny" "canny" "canny" "canny"

Werteliste: 'canny'"canny""canny""canny""canny""canny", 'laplace'"laplace""laplace""laplace""laplace""laplace"

SigmaSigmaSigmaSigmaSigmasigma (input_control)  real HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Glättung des Kantendetektors.

Defaultwert: 1.0

Wertevorschläge: 0.0, 0.5, 1.0, 2.0, 5.0

Restriktion: Theta >= 0

Literatur

F. Guichard, J. Morel; „A Note on Two Classical Shock Filters and Their Asymptotics“; Michael Kerckhove (Ed.): Scale-Space and Morphology in Computer Vision, LNCS 2106, pp. 75-84; Springer, New York; 2001.
G. Aubert, P. Kornprobst; „Mathematical Problems in Image Processing“; Applied Mathematical Sciences 147; Springer, New York; 2002.

Modul

Foundation


KlassenKlassenKlassenKlassen | | | | Operatoren