Kontrast-Algorithmus

DfAce
Tag auch,
ich suche schon seit längerer Zeit nach einem Algorithmus, mit dem man dem Kontrast in einem Bild erhöhen kann. Wie macht man dass? (Graustufenbild)

Ich habs schon mit nem Farbhistogramm versucht, wollte aber nicht richtig klappen. Vielleicht könnt ihr mir ja nen paar Anregungen geben.
daHooligan
bin zwar kein grafiker aber du könntest mal verasuchen, dass du einfach die Pixel die heller als ein gewiser Wert sind um 10% (oderwasweissichwieviel) heller machst und alle die dunkler sind als dieser Wert machst du um 10% dunkler...
DfAce
dass hab ich auch schon probiert, allerdings stellt sich die frage, wie man diesen wert findet??
Das arithmethische Mittel ist unpassend, weil der Fall eintreten kann dass nahezu alle farben vorhanden sind, die Schwerpunkte der Farben aber nur auf einer Seite liegen.
egal: jedenfalls kommt dann genau das Gegenteil heraus
daHooligan
hmm... wie wärs mit dem geometrischen mittel (a1+a2+a3+a4+...+an)^(1/n)) Augenzwinkern , k.A. obs geht... oder versuchs malmit nem verhältnis 2:1 oder mit irgendwas mit 2,7182818284^irgendwas Augenzwinkern ...
nur so am Rande: ich hab keine Ahnung von Grafiken, nur ein bissel Ahnung von Mathe und ein kleines bißchen Ahnung von Verhältnissen die in der Natur auftauchen und die für den Menschen harmonisch wirken (2:1 ist da _der_ Tipp, vorallem wenns um "objektive" Schönheit geht)
DfAce
naja das grundproblem bleibt ja immer noch erhalten. deshalb hab ich gedacht es würde irgendeinen algorithmus geben, der die häufigkeit der verschiedenen farben auswertet und dann die werte die dazwischen liegen,
diesen werten anpasst (hab leider auch noch nicht zuviel ahnung von grafikprogrammierung)
--> Farbhistogramm heißt das glaube ich
--> Anzahl der Farben wird in einem Graphen dargestellt (Häufigkeit)

Hab's aber irgendwie nicht hinbekommen.
Also dachte ich dass da irgendjemand gibt der vielleicht mal was drüber gelesen hat?
DfAce
naja das grundproblem bleibt ja immer noch erhalten. deshalb hab ich gedacht es würde irgendeinen algorithmus geben, der die häufigkeit der verschiedenen farben auswertet und dann die werte die dazwischen liegen,
diesen werten anpasst (hab leider auch noch nicht zuviel ahnung von grafikprogrammierung)
--> Farbhistogramm heißt das glaube ich
--> Anzahl der Farben wird in einem Graphen dargestellt (Häufigkeit)

Hab's aber irgendwie nicht hinbekommen.
Also dachte ich dass da irgendjemand gibt der vielleicht mal was drüber gelesen hat?

PS: Das geometrische mittel bildet man aus dem Produkt und dann der n-ten Wurzel
Augenzwinkern und du meintest bestimmt den goldenen Schnitt, aber ich glaube nicht dass das irgendwie weiterhilft,
aber nen versuch wärs wert

//ahhh hab aus versehn zweimal gepostet, kann man das auch löschen??
daHooligan
doh, ich hab mich im Rechenzeichen vertan... ich hab " * " gemeint..

Zitat:

//ahhh hab aus versehn zweimal gepostet, kann man das auch löschen??


glaub schon (rechts oben über dem Post) ansonsten machste halt "edit" und löschst den inhalt oder schreibst rien "sorry doppelpost" oder dulässt es einfach so wies ist.
cyph3x
für alle die's interessiert ( ja ich _weiß_ dass der thread schon ein halbes Jahr alt is ), hier der Lösungsalgorithmus :

Das Verfahren heißt ( lineare ) Skalierung und kommt aus der Künstlichen Intelligenz. Damit kannst du den Kontrast stufenlos verändern.

nehmen wir an, du hast ein 2 x 2 Bild mit 256 Graustufen, z. B. dieses hier :
code:
1:
2:
3:
4:
	17	48

	112	39

Dann suchst du dir den größten ( = b ) und den kleinsten Grauwert ( = a ) und berechnest dir damit die beiden Parameter

c1 >= -a // maximale Abdunklung
c2 <= 255 / ( b - a ) // maximale Kontrasterhöhung

Um jetzt auf dein neues Bild zu kommen benutzt du folgende Formel auf jeden Grauwert :

neuer_Grauwert( Grauwert ) = ( Grauwert + c1 ) * c2

Das neue Bild aus dem Beispiel würde dann so aussehen :
code:
1:
2:
3:
4:
	0	83

	255	59

Du kannst den Kontrast abschwächen / verschieben, indem du an den Parametern c1 und c2 rumspielst ( Grenzen beachten ! ).
DfAce
Danke. Ich werds gleich mal ausprobieren.