nichtlineare Funktion soll monoton steigend sein

13/06/2014 - 09:57 von astroelectronic | Report spam
Hallo,

es geht um ein Problem der Bildverarbeitung. Gegeben ist ein Graustufen-Bild bei dem die Helligkeit der Pixel im Bereich 0 (schwarz) bis 1 (weiss) liegt. Nun soll für jedes Pixel die Helligkeit durch eine nichtlineare Funktion y=f(x) beeinflusst werden. Die Funktion sieht so aus:
y = (1-a-b-c)x + ax^2 + bx^3 + cx^4
Diese Funktion bildet das Intervall [0..1] nichtlinear auf das Intervall [0..1] ab. Insbesondere gilt f(0) = 0 und f(1) = 1.
Die Koeffizienten a,b,c bestimmen den Grad der Nichtlinearitàt. Für den Wertebereich der Koeffizienten gelten zunàchst keine Einschrànkungen.
Diese Koeffizienten werden iterativ bestimmt, d.h. es werden bestimmte Koeffizienten angenommen und damit eine Bewertung des Bildes durchgeführt, und dann werden die Koeffizienten solange variiert bis das Minimum der Bewertungsfunktion gefunden ist. So weit so gut.

Nun soll aber zusàtzlich noch die Bedingung erfüllt sein, dass die Funktion im Intervall [0..1] monoton steigend ist. Das heisst es muss gelten:
y' = 1-a-b-c +2ax +3bx^2 +4cx^3 >= 0

Für x=0 ergibt sich die Bedingung a+b+c <= 1
Für x=1 ergibt sich die Bedingung a+2b+3c >= -1
Aber diese Bedingungen helfen nicht wirklich weiter, weil sie nichts über das Verhalten der Funktion bei anderem x aussagen.

Meine Frage: Wie kann ich die Koeffizienten a,b,c dahingehend überprüfen ob die Bedingung für monoton steigend erfüllt ist, ohne das für alle x in Intervall [0..1] ausrechnen zu müssen?

Ich bedanke mich für alle weiterführenden Hinweise!
Michael
 

Lesen sie die antworten

#1 Christian Gollwitzer
13/06/2014 - 20:15 | Warnen spam
Hallo Michael,

Am 13.06.14 09:57, schrieb :
es geht um ein Problem der Bildverarbeitung. Gegeben ist ein
Graustufen-Bild bei dem die Helligkeit der Pixel im Bereich 0
(schwarz) bis 1 (weiss) liegt. Nun soll für jedes Pixel die
Helligkeit durch eine nichtlineare Funktion y=f(x) beeinflusst
werden. Die Funktion sieht so aus:

y = (1-a-b-c)x + ax^2 + bx^3 + cx^4

Diese Funktion bildet das Intervall [0..1] nichtlinear auf das
Intervall [0..1] ab. Insbesondere gilt f(0) = 0 und f(1) = 1. Die
Koeffizienten a,b,c bestimmen den Grad der Nichtlinearitàt. Für den
Wertebereich der Koeffizienten gelten zunàchst keine
Einschrànkungen. Diese Koeffizienten werden iterativ bestimmt, d.h.
es werden bestimmte Koeffizienten angenommen und damit eine Bewertung
des Bildes durchgeführt, und dann werden die Koeffizienten solange
variiert bis das Minimum der Bewertungsfunktion gefunden ist. So weit
so gut.

Nun soll aber zusàtzlich noch die Bedingung erfüllt sein, dass die
Funktion im Intervall [0..1] monoton steigend ist.



Dazu müssen die Nullstellen der Ableitung außerhalb von 0,1 liegen. Du
könntest das Polynom durch die Nullstellen ansetzen und einmal integrieren.

Ich hab keinen Bock das durchzurechnen, aber muss es wirklich der
Polynomansatz sein? Am Einfachsten umgehst Du das Problem mit einer
Funktion, die von sich aus streng monoton steigend ist. Mit zwei
Parametern gilt z.B.

f(x, alpha, beta)=(exp(alpha*x**beta)-1)/(exp(alpha)-1)

ist streng monoton steigend und geht durch 0 und 1 durch. Beta muss
dabei >0 sein, alpha beliebig. (für alpha=0 geht y->x, das muss man als
Spezialfall rausfiltern).

Vielleicht ist die jetzt etwas zu eingeschrànkt für Deine Zwecke, aber
möglicherweise làsst sich auf àhnliche Art und Weise das Problem
umgehen; z.B. exp(f(x))>0, einmal integrieren und normieren ergibt für
beliebiges f(x) eine streng monoton steigende Funktion.

Christian

Ähnliche fragen