Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Photoshop Filterstärke - Filterprogrammierung
dr4g0n76
myCSharp.de - Experte

Avatar #avatar-1768.jpg


Dabei seit:
Beiträge: 2.915
Herkunft: Deutschland

Themenstarter:

Photoshop Filterstärke - Filterprogrammierung

beantworten | zitieren | melden

In Photoshop gibt es ja die Effektdeckung / Effektstärke / Filterstärke.
Keine Ahnung - im Moment - welches der richtige Begriff dafür ist.

Es geht darum, wenn ein Filter auf ein Bild angewendet wurde
und das Originalbild vorhanden ist, wie ist dann die Formel dazu, um den Filter auf das Originalbild abgeschwächt anzuwenden?

Ist das für jedes Pixel im RGB-Farbraum (wenn die Farbe als Vektor betrachtet wird)

A = Original 
B = Filter angewendet

(A - B) / 100, so dass

B'=A + ((A - B) / 100 * Stärke) 



?

Oder wird da eine andere Formel zugrunde gelegt?
Ich denke doch.

100 ist in dem Fall die Unterteilung.



Bisher hab ich aber nichts konkretes dazu gefunden.
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von dr4g0n76 am .
Seit der Erkenntnis, dass der Mensch eine Nachricht ist, erweist sich seine körperliche Existenzform als überflüssig.
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 49.486
Herkunft: Berlin

beantworten | zitieren | melden

Hallo dr4g0n76,

ich könnte mir vorstellen, dass es vom Filter abhängt, wie man dessen Stärke variiern kann.

Eine generelle Vorgehensweise, bei der ich nicht weiß, ob sie bei allen Filtern gleich gut funktioniert, wäre den Filter erst voll anzuwenden und dann das Ergebnis mit dem Ausgangsbild zu verrechnen. Im Grunde so, als wenn man das gefilterte Bild als Ebene über das Ausgangsbild legt und die Deckung der Ebene zwischen 0 und 100% variiert. Bei 100% Deckung sieht man den vollen Filtereffekt und das Ausgangsbild gar nicht mehr. Bei 0% Deckung sieht man das reine Ausgangsbild vollkommen ohne den Effekt. Für Werte dazwischen sind beide Bilder entsprechend gemischt.

Die Berechnung der Mischung sollte - habs nicht probiert - funktionieren mit:

neuerFarbwert = (alterFarbwert * (100 - deckung) + gefilterterFarbwert * deckung) / 100

Ich stelle mir aber vor, dass dies bei Filtern, die den Bildinhalt verschieben oder die Pixelpositionen in anderer Weise verändern, zumindest bei mittlerer Deckung vielleicht zu hässlichen Schattenbildern führt. Bei Filtern, die nur die Farbwerte der Pixel ändern, könnte es aber funktionieren.

herbivore
private Nachricht | Beiträge des Benutzers
MrSparkle
myCSharp.de - Team

Avatar #avatar-2159.gif


Dabei seit:
Beiträge: 5.655
Herkunft: Leipzig

beantworten | zitieren | melden

Hi dr4g0n76,

ich würde herbivore da zustimmen. Bei den meisten Filtern ist es nur eine Überblendung. Bei bestimmten Filtern sind es andere Parameter, die für die "Stärke" des Filters zuständig sind. Beim Weichzeichnen-Filter ist das z.B. der Radius.

Christian
Weeks of programming can save you hours of planning
private Nachricht | Beiträge des Benutzers
dr4g0n76
myCSharp.de - Experte

Avatar #avatar-1768.jpg


Dabei seit:
Beiträge: 2.915
Herkunft: Deutschland

Themenstarter:

beantworten | zitieren | melden

@herbivore

Nein, es geht hierbei nur um Filter, die die Farbwerte verändern.

Ja, das ist die Frage, wie das Photoshop z.B. macht.

Eine Deckung für den Effekt, ist bestimmt nicht das schlechteste für den Anfang.
Ich denke ich nehme Herbivores Vorschlag auf.

Ansonsten ist IMHO klar: Es müsste etwas mit den Parameterwerten bei den Filtern zu tun haben, ansonsten reicht mir erst mal der "Deckungsbeitrag".
Seit der Erkenntnis, dass der Mensch eine Nachricht ist, erweist sich seine körperliche Existenzform als überflüssig.
private Nachricht | Beiträge des Benutzers
Coder007
myCSharp.de - Member



Dabei seit:
Beiträge: 1.214

beantworten | zitieren | melden

Ich wollte grad etwas vorschlagen, was du schon in deinem ersten Beitrag selber als Idee vorgeschlagen hast. Ich denke, wenn es nur darum geht, Farbwerte zu verändern, könnte die Idee durchaus funktionieren.
Herbivors Vorschlag geht eigentlich in eine ähnliche Richtung. Ich weiß nicht, obs signifikate Unterschiede geben würde und was besser funktioniert, müsste man mal ausprobieren.
private Nachricht | Beiträge des Benutzers
MrSparkle
myCSharp.de - Team

Avatar #avatar-2159.gif


Dabei seit:
Beiträge: 5.655
Herkunft: Leipzig

beantworten | zitieren | melden

Hi dr4g0n76,
Zitat von dr4g0n76
Ansonsten ist IMHO klar: Es müsste etwas mit den Parameterwerten bei den Filtern zu tun haben, ansonsten reicht mir erst mal der "Deckungsbeitrag".

Im Photoshop heißt es "Deckkraft" bzw. "Opacity". Meines Erachtens ist die Anwendung eines Filters mit einer bestimmten Deckkraft nichts weiter als eine lineare Interpolation zwischen dem Originalbild und dem veränderten Bild. Also ein einfacher Dreisatz.

Christian
Weeks of programming can save you hours of planning
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 49.486
Herkunft: Berlin

beantworten | zitieren | melden

Hallo dr4g0n76,
Zitat von MrSparkle
... lineare Interpolation ...
so hatte ich es ja oben beschrieben. Allerdings fällt mir bei "linear" gerade auf, dass die Pixelwerte in einem normalen RGB Bild gerade nicht linear den Helligkeitswerten entsprechen, z.B. ist 0+64 ist noch fast schwarz wogegen 255-64 schon ein mittleres Grau ist (bzw. Rot, Grün oder Blau). Mit anderen Worten im unteren Bereich ändert sich die Helligkeit pro Schritt weniger stark als im oberen Bereich. Die ganze Geschichte steht in Gammakorrektur.

Daher sollte man für akkurate Ergebnisse vor der Berechnung evtl. das Gamma aus dem Pixelwerten herausrechnen sollte, dann Interpolieren und anschließend das Gamma wieder anwenden. Oder gleich am Beginn der gesamten Verarbeitung das Gamma raus und erst ganz am Ende wieder rein.

herbivore
private Nachricht | Beiträge des Benutzers