Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Empfundene Helligkeiten zweiter Grafiken - Ansatz? (https://www.delphipraxis.net/151025-empfundene-helligkeiten-zweiter-grafiken-ansatz.html)

blackfin 3. Mai 2010 17:40


Empfundene Helligkeiten zweiter Grafiken - Ansatz?
 
Hallo Delphi-Experten,

kennt jemand von euch einige Ansätze oder Routinen, um die "subjektive" Helligkeit eines Bildes irgendwie zu errechnen?
Ich weiss, errechnen ist hier der falsche Ausdruck denke ich, aber ich suche nach einer Möglichkeit, mehrere Bilder von
der empfundenen Helligkeit her unterscheidbar zu machen bzw. zu ordnen.

Beispiel:

Ich habe eine 8x8 Pixel-Grafik, davon sind die 4 Pixel in den Ecken weiss, der Rest ist schwarz.
Eine zweite Grafik, auch 8x8 Pixel, hat 4 Pixel in der Mitte weiss, den Rest schwarz.
Errechne ich den Durchschnitt der Helligkeit, ist der ja bei beiden gleich, aber das zweite Bild ist subjektiv heller, da ja die
Pixel in der Mitte zusammenliegen und einen weissen Punkt ergeben.

So meine Frage: Welchen Ansatz gibt es, diese empfundene Helligkeit in eine Formel abzubilden?

Vielleicht ists auch ganz trivial, aber ich komme irgendwie nicht drauf :(
Irgendwie denke ich dabei daran, für jeden Pixel die benachbarten Pixel mit auszuwerten...aber wie genau...

grüssle,

Fin

scrat1979 3. Mai 2010 19:13

Re: Empfundene Helligkeiten zweiter Grafiken - Ansatz?
 
Zitat:

Zitat von blackfin

[...]

Ich habe eine 8x8 Pixel-Grafik, davon sind die 4 Pixel in den Ecken weiss, der Rest ist schwarz.
Eine zweite Grafik, auch 8x8 Pixel, hat 4 Pixel in der Mitte weiss, den Rest schwarz.
Errechne ich den Durchschnitt der Helligkeit, ist der ja bei beiden gleich, aber das zweite Bild ist subjektiv heller, da ja die
Pixel in der Mitte zusammenliegen und einen weissen Punkt ergeben.

Fin

Ist der Durchschnitt wirklich der gleiche?!?

8x8 Pixel = 64 Pixel, Schwarz = 0, Weiß = 255

Bild 1: 4 Schwarze Pixel, 60 Weiße = (0x4 + 60x255) / 64 = 240
Bild 2: 4 Weisse Pixel, 60 Schwarze = (255x4 + 60x0) / 64 = 16

Der Unterschied müsste eigentlich signifikant sein!?!


SCRaT

himitsu 3. Mai 2010 19:29

Re: Empfundene Helligkeiten zweiter Grafiken - Ansatz?
 
@scrat1979: Beide Bilder haben "4 Weisse Pixel und 60 Schwarze"

Hmmm, dann könntest du noch den Helligkeiten z.B. eine höhere Relevanz/Wertigkeit verpassen, je mehr sie in der Mitte liegen?

Ansonsten wird es scher.
Denn nach welcher "Vorschrifft" will man die einzelnen Punkte behandeln?
Man könnte in diesem Fall zwar das Bild erstmal in gleichfarbige/gleichhelle Flächen zerlegen und diese nach Größe gewichtet betrachten, aber dann fiehle ja ein 50/50 Schwarz/Weiß-Raster wohl durch.

[add]
@Valle: passiert bei mir och öfters ... böse RedBox

Valle 3. Mai 2010 19:37

Re: Empfundene Helligkeiten zweiter Grafiken - Ansatz?
 
Zitat:

Zitat von scrat1979
[...] Bild 1: 4 Schwarze Pixel [...]

Lies mal seinen Text nochmal genauer durch. Er sagt dass bei dem einen die vier weißen Pixel am Rand und beim anderen die vier weißen in der Mitte sind. Gibt gleiche Anzahl weißer und schwarzer Pixel auf jedem Bild. :-)

Edit:// Schande auf mein Haupt auf den Roten Kasten! Habe himitsus Beitrag nicht gesehen.

Liebe Grüße,
Valle

blackfin 3. Mai 2010 19:52

Re: Empfundene Helligkeiten zweiter Grafiken - Ansatz?
 
Zitat:

Denn nach welcher "Vorschrifft" will man die einzelnen Punkte behandeln?
Genau das ist es, was ich suchen würde :-D

Ich weiss nämlich nicht genau, wie unser Helligkeitsempfinden funktioniert, ich sehe es nur selbst, dass es heller wirkt...
Wenn ich nach Algortihmen oder Ansatzpunkten google, kommen da aber nur immer irgendwelche Astronomie-Seiten bei raus :mrgreen:

Einfach die Punkte nach der Mitte her zu gewichten geht leider auch nicht, da es auch sein kann, dass nur eine Seite komplett weiss ist, aber trotzdem hell wirkt..

Ach, was solls, ich lass das einfach bleiben :D
Hätt ja sein können, dass es darauf eine relativ einfache, erklärbare Erklärung (was für ein Wortkontrukt..) gibt.

Danke trotzdem für die Antworten :cheers:

Medium 3. Mai 2010 19:53

Re: Empfundene Helligkeiten zweiter Grafiken - Ansatz?
 
Ein Problem hier ist der Kontext. Auf weissem Grund dürfte Bild 1 dunkler wirken, auf schwarzem Bild 2.

Eine andere Frage ist der Abstand des Betrachters, und ab wann die Wahrnehmung der einzelnen Flächen schwindet. Mit genügendem Abstand erscheinen beide wieder gleich. Bei größeren Bildern, die nicht gerade an dieser Schwelle kratzen ist der Unterschied ebenfalls kaum mehr relevant. Es macht auf meinem Bildschirm z.B. keinen Unterschied, ob ich eine 200x200px Box oben rechts, oder zentriert hab. Ich fühle mich gleich stark "bestrahlt".

Somit ist die eigentliche Frage eher: Was tun, wenn man sich in Flächengrößen bewegt, die beim angenommenen Abstand zwischen abgegrenzten Flächen und einem Dithering-Muster verschwimmen. Und um ganz ehrlich zu sein: Ich sehe zunächst einmal keinen Grund dort eine Anpassung vorzunehmen, da sie sich auch jeglicher Definierbarkeit entziehen dürfte. Das Verschwimmen von klarem Muster zu diffus ist z.B. von Mensch zu Mensch sehr verschieden.

Faktisch müssen die von dir genannten Beispiele als gleich hell gewertet werden, zumal sie tatsächlich, physikalisch gesehen, auch wirklich den selben Lichtstrom emmitieren (wenn nicht das darstellende Medium Helligkeitsschwankungen mit bringt). Klar könnte man her gehen und Randpixel mit einem Malus beaufschlagen, bzw. eine Abnahmefunktion zum Rand hin nehmen, aber was ist dann wenn ich nicht mitten auf das Bild schau? Wenn ich Bild 1 auf schwarzem Grund so anschauen, dass der weisse Kasten auf meiner Sichtachse liegt, ist es von Bild 2 nicht mehr zu unterschieden. Am Bild und an der Lage seiner Punkte hat sich allerdings 0,nix geändert.

blackfin 3. Mai 2010 20:14

Re: Empfundene Helligkeiten zweiter Grafiken - Ansatz?
 
Tja....was soll ich sagen...Medium hat mich jetzt wirklich richtig "gepwnt" :D

Du hast recht, nach deiner Erklärung ist es gar nicht möglich, da Subjektivität eben subjektiv bleibt, auch (und gerade wenn) man das Ding dreht und wendet :)

scrat1979 3. Mai 2010 20:30

Re: Empfundene Helligkeiten zweiter Grafiken - Ansatz?
 
Zitat:

Zitat von Valle
Zitat:

Zitat von scrat1979
[...] Bild 1: 4 Schwarze Pixel [...]

Lies mal seinen Text nochmal genauer durch. Er sagt dass bei dem einen die vier weißen Pixel am Rand und beim anderen die vier weißen in der Mitte sind. Gibt gleiche Anzahl weißer und schwarzer Pixel auf jedem Bild. :-)

Edit:// Schande auf mein Haupt auf den Roten Kasten! Habe himitsus Beitrag nicht gesehen.

Liebe Grüße,
Valle

Scheiss Nachtschichten :) Naja, es scheint ja trotzdem keine triviale Lösung zu geben :cheers:

dmdjt 3. Mai 2010 23:36

Re: Empfundene Helligkeiten zweiter Grafiken - Ansatz?
 
Bei kleinen Bildern (10x10 oder so) könnte es funktionieren, immer wieder einen Gaußfilter drüber laufen zu lassen, bis das Bild weiß wird (weiße Randpixel). Die Häufigkeit des Filterns könnte, wenn ich mich nicht täusche, zumindest mal eine Art Richtwert sein.
Je näher sich zwei schwarze Pixel sind, desto "stabiler" sollten sie doch sein.


Das könnte man sicher umformen und beschleunigen:
Pixel bekommen einen höheren Wert zugewiesen, je näher andere Pixel sind und je weiter sie vom Rand entfernt sind. Die Summe aller dieser Werte der Pixel müsste doch irgendwie verwendbar sein, oder?!?

Vielleicht probier ich das heut noch aus..

Corpsman 4. Mai 2010 06:45

Re: Empfundene Helligkeiten zweiter Grafiken - Ansatz?
 
Ich halte einen Ansatz mittels FFT eigentlich für Sinnvoller.

Wandle dein Bild in Graustufen um. Und mach dann mal Fourierspektren.

eine N-Fache Gaußfilterung, klingt für mich eher Suspekt.

Die gewichtete Mittlung der Pixel Helligkeiten ist da schon eher einleuchtend

Medium 4. Mai 2010 13:22

Re: Empfundene Helligkeiten zweiter Grafiken - Ansatz?
 
Gauß-Filterung entspricht einem Tiefpass, und was will man nachher mit dem Frequenzspektrum genau anfangen? Wenn man "Flächigkeit" ermitteln will, ist ein Gauß schon kein schlechter Ansatz. Alternativ ginge auch eine geeignete Kombi aus Erosion/Dilation um "Makroflächen" zu bekommen, und dann könnte man den Spaß mit dem Watershed Algo segmentieren, und die einzelnen Flächen auf Größe, Form und Helligkeit untersuchen. Wir bewegen uns dann aber schon tief in der Bildverarbeitung bzw. Computer-Vision, und der Aufwand geht weiiit über gewichtete Mittelwerte hinaus ;)

blackfin 4. Mai 2010 13:32

Re: Empfundene Helligkeiten zweiter Grafiken - Ansatz?
 
Da hab ich ja was losgetreten... :gruebel:

Gauss, Tiefpassfilter, Watershed...was kommt noch? Parallax mapping und Bloom-Shader drüberlaufen lassen? :D

Ach, ich red Blödsinn...aber konnte nicht wiederstehen :roll:
Nix für ungut :cheers:

Edit:

Ich will euch aber mal verraten, für was ich das eigentlich gebraucht hätte, vielleicht driftet das ja dann in einen andere Richtung:
Ich will eigentlich nur die Ascii-Zeichen einer Schriftart, gerendet auf eine Textur, der Helligkeit nach sortieren..und zwar nicht nach der absoluten, sondern
der empfundenen...naja, war wohl nix :D

Mithrandir 4. Mai 2010 13:48

Re: Empfundene Helligkeiten zweiter Grafiken - Ansatz?
 
Darf ich fragen, wozu man das brauch? :gruebel:

blackfin 4. Mai 2010 14:34

Re: Empfundene Helligkeiten zweiter Grafiken - Ansatz?
 
Ja, darfst du gerne :mrgreen:

Ich bin ein Spielkind, ich wollte mir nur mal einen "Render-to-Ascii"-Shader zusammenbauen :)
Das Sinnvolle daran bleibt natürlich dahingestellt... :lol:

Medium 4. Mai 2010 14:45

Re: Empfundene Helligkeiten zweiter Grafiken - Ansatz?
 
Da wäre doch eine einfach Überdeckungsanalyse viel besser! Das Eingangsbild in die Font-Blöcke zerlegen, binärisieren, und dann pixelweise nachschauen, welches Zeichen die darin übrig gebliebene Struktur am ehesten nachbildet. Vorder-/Hintergrundfarbe ermitteln, und go :)

blackfin 4. Mai 2010 14:51

Re: Empfundene Helligkeiten zweiter Grafiken - Ansatz?
 
Was meinst du denn in dem Fall mit "binärisieren" ? :)

negaH 4. Mai 2010 15:18

Re: Empfundene Helligkeiten zweiter Grafiken - Ansatz?
 
Zitat:

kennt jemand von euch einige Ansätze oder Routinen, um die "subjektive" Helligkeit eines Bildes irgendwie zu errechnen?
Analysiere doch mal deine Aufgabenstellung !

zB. "Subjektiv empfundene Helligkeit"

Das heist du bist dir schon mal im Klaren darüber das jeder Mensch komplexe Bilder anders in der Helligkeit, und mit Sicherheit auch Farbe, wahrnimmt. Das Subjekt Mensch stellt also bei deiner gesuchten Formel eine Veränderliche=Variable dar. Damit deine Formel also korrekt funktioniert musst du den Betrachter der Bilder, also das Subjekt, als Variable in deiner Formel eingeben.

Wenn du nun keine Formel findest und auch nicht die nötigen Variablenwerte für ein Subjekt zur Hand hast heist dies für dich "selber messen". Ergo: du benötigst als erstes ein Meßverfaren mit dem du objektiv das Helligkeitsempfinden eines Subjektes=Menschens ausmessen kannst.

Gibt es ein Meßverfahren das den subjektiven Helligkeitseindruck eines Mesnchens objektiv messen kann ?

Ich denke nicht. Also auch keine Formel dafür und damit ist dein Vorhaben fast aussichtslos. Das Einzige was du machen könntest wäre empirisch das objetive Helligkeitsempfinden per Experimente zu ermitteln. Zb. eine hinreichend große Menge von statistisch gleichverteilt ausgewählten Menschen, sprich eine gute Stichprobe aller Menschen, wirst du benötigen für dieses Experiment. Diese bewerten dann eine möglichst große und wieder gut statistisch gleichverteilte Menge aller Bilder die bewertet werden sollen.

Nun, ich kann mich dunkel daran erinnern das es solche wissenschaftlichen Untersuchungen mal gab. In dem Bericht, an den ich mich erinnere, ging es um die Bestimmung der subjektiven Helligkeit einfarbig gefüllter geometrischer Figuren. Also zb. gelber Kreis in Relation zu Rechteck. Was ich aus dem Bericht heraus hörte war der Fakt das der Mensch kein einfaches Helligkeitsemfinden besitzen soll sondern das er Form und Farbe in Relation setzt und daraus dann eine "Wichtigkeit" für sich "errechnet" die die empfundene Helligkeit ernorm beeinflusste, in etwa so wie Helligkeit=Relevanz=Wichtigkeit der Bildinformation für den jeweiligen Menschen. Interessant war dabei nun das die Reihenfolge verschiedener vorherig gesehener Bilder den subjektiven Eindruck zum aktuellen Bild mit beeinflussen soll.

Tja, viel Spaß bei deiner Aufgabe ;)

Gruß Hagen

blackfin 4. Mai 2010 15:22

Re: Empfundene Helligkeiten zweiter Grafiken - Ansatz?
 
Och negaH, jetzt stell du mich doch nicht auch noch bloß :lol:

Ich habs doch schon eingesehen, dass der Ansatz der falsche war :)

negaH 4. Mai 2010 15:24

Re: Empfundene Helligkeiten zweiter Grafiken - Ansatz?
 
Wieso stelle ich dich bloß ? Das ist sicherlich nicht meine Absicht.
Bei den vorherigen Postings vermisste ich eben eine andere, analytische Sichtweis auf deine Fragestellung, das ist alles.

Zitat:

Ich habs doch schon eingesehen, dass der Ansatz der falsche war
Nö, ich denke eben nicht das dein "Ansatz" insich falsch sein kann. Denn du stellst ja eine vernünftige Frage. Meines erachtens hast du eben nicht tiefgründig genug über deine eigene Frage nachgedacht, das ist alles. Dh. aber eben nicht das es nicht sinnvoll oder vernünftig wäre sich mit dieser Frage intensiv auseinander zu setzen. Und da denke ich sind in meinem Posting mal erst Grundideen enthalten wie man es machen könnte. Das damit entstehende Problem der "Variabilisierung" der subjektiven Eindrücke önnte man nämlich mit Neuronalen Netzwerken erledigen. Dh. man trainiert ein NN mit den Antworten der Subjekte und erhält dann quasi ein Neuronales Netzwerk das so antwortet wie ein Durchschnittsmensch. Das NN beantwortet dann auch die Frage bei bisher ungesehenen Bildern mit hoher Wahrscheinlichkeit so als wäre dieses Bild vorher ebenfalls trainiert worden.

Ansich eine Aufgabe mit der sich ein Wissenschaftler sein ganzes Leben befassen kann. Und eine Fragestellung die sehr wohl von hohem Wert für viele Bereiche unseres Lebens sein wird.

Gruß Hagen

blackfin 4. Mai 2010 15:28

Re: Empfundene Helligkeiten zweiter Grafiken - Ansatz?
 
Recht hast du! Das hat wirklich gefehlt.
Und es sagt mir noch deutlicher, dass ich wohl nicht richtig nachgedacht hatte.
Eigentlich hatte ich ja nur gehofft, dass vielleicht jemand kommt und sagt:
"Nö, geht so eigentlich nicht, subjektiv bleibt subjektiv, aber in der Praxis macht man das normalerweise so..."

Mithrandir 4. Mai 2010 15:29

Re: Empfundene Helligkeiten zweiter Grafiken - Ansatz?
 
Wenn Hagen postet, tut er das im Regefall nie, um jemanden bloßzustellen. Er zeigt uns nur jedesmal wieder, wie wenig analytisches Denken wir zulassen. Und dafür lieben wir (ich) ihn einfach. :kiss: :mrgreen:

TurboMartin 4. Mai 2010 15:29

Re: Empfundene Helligkeiten zweiter Grafiken - Ansatz?
 
Zitat:

Zitat von blackfin
Och negaH, jetzt stell du mich doch nicht auch noch bloß :lol:

Ich habs doch schon eingesehen, dass der Ansatz der falsche war :)

Du könntest, wenn es deine Meinung ist, in der Mitte sei es heller, einfach ne Gauß'sche Glockenkurfe drüberlegen und als Faktor verwenden :mrgreen:

blackfin 4. Mai 2010 15:32

Re: Empfundene Helligkeiten zweiter Grafiken - Ansatz?
 
Zitat:

Wenn Hagen postet, tut er das im Regefall nie, um jemanden bloßzustellen
Das war auch eigentlich eher scherzhaft gemeint... :oops:

Zitat:

Gauß'sche Glockenkurve
Ok, jetzt muss ich googlen....

jfheins 4. Mai 2010 15:48

Re: Empfundene Helligkeiten zweiter Grafiken - Ansatz?
 
Du könntest auch zu jedem Pixel eine Helligkeitsschwelle definieren und dann erstmal alle Pixel zählen, die über dieser sind. Und dann jeden dieser hellen Pixel durchgehen und immer die vier Nachbarn angucken. Für jeden hellen Nachbarn gibt's nochmal +0,1 aufs Endergebnis.
Damit kannst du helle Flächen heller machen als mit der nur-zähln-Methode ;)

Bei deinem Eingangsbeispiel ergäbe sich also für das Bild mit den weißen Pixeln in der Ecke ein Wert von 4, für das mit den weißen Pixeln in der Mitte aber ein Wert von 5,2 und damit leicht heller ;)

negaH 4. Mai 2010 16:04

Re: Empfundene Helligkeiten zweiter Grafiken - Ansatz?
 
Zitat:

Gauß'sche Glockenkurve
Und wo möchte man dann den Mittelpunkt der Kurve im Bild setzen ?

Gruß Hagen

blackfin 4. Mai 2010 16:05

Re: Empfundene Helligkeiten zweiter Grafiken - Ansatz?
 
@jfheins:

Danke, das werd ich heute Abend oder morgen gleich mal ausprobieren :)
Ich hoffe nur, meine Grafikkarte macht das mit, die ist nämlich schon ziemlich stinkig auf mich :mrgreen:

negaH 4. Mai 2010 16:07

Re: Empfundene Helligkeiten zweiter Grafiken - Ansatz?
 
Zitat:

Du könntest auch zu jedem Pixel eine Helligkeitsschwelle definieren und dann erstmal alle Pixel zählen...
Bei diesem Vorschlag habe ich das Bauchgefühl das man damit nicht mehr die Helligkeit eines Bildes einschätzt sondern zu stark den Inhalt des Bildes, sprich Form statt Farbe/Helligkeit.

Gruß Hagen

blackfin 4. Mai 2010 16:09

Re: Empfundene Helligkeiten zweiter Grafiken - Ansatz?
 
Zitat:

Bei diesem Vorschlag habe ich das Bauchgefühl das man damit nicht mehr die Helligkeit eines Bildes einschätzt sondern zu stark den Inhalt des Bildes, sprich Form statt Farbe/Helligkeit.
Das stimmt, allerdings ist das für das Experiment, einen "Render-to-Ascii"-Shader zu bauen, doch durchaus geeinget?
Die Farbe an sich ist auch eigentlich für das Vorhaben egal, die wird eh vom Original-Pixel her genommen. Eine Form-Annäherung zu haben, ist eigentlich ja noch besser als alleine die Helligkeit zu interpretieren. (Zumindest für mein Vorhaben)

negaH 4. Mai 2010 16:13

Re: Empfundene Helligkeiten zweiter Grafiken - Ansatz?
 
Zitat:

Das stimmt, allerdings ist das für das Experiment, einen "Render-to-Ascii"-Shader zu bauen, doch durchaus geeinget?
Ja, was du möchtest ist ja in diesem Fall einen Bild-Konvertierer satt eine Bild-Bewertung nach "subjektiver Helligkeit".

In deinem Fall interssiert nicht der subjektive Gesamt-helligkeits-eindruck sondern die lokal gültige Helligkeit um bestimmen zu können welches ASCII für eine Pixelgruppe zu konvertieren ist. Die subjektive Gesamthelligkeit würde ich als prozentualen Parameter durch den Anwender vorgeben lassen und dann damit das Bild im Gesamten vor der Konvertierung in der Helligkeit umrechnen.
Eventuell würde ich sogar noch eine Bildkontourverstärkung mit einbauen vor der egentlichen Konvertierung. Dh. du verändest die Kontraste innerhalb des Bildes um bei der ASCII Konvertierung eines sehr gleichmäßigen Bildes noch aussagekräftige ASCII Bilder zu bekommen.

Gruß Hagen

blackfin 4. Mai 2010 16:19

Re: Empfundene Helligkeiten zweiter Grafiken - Ansatz?
 
Sehr gute Idee, danke Hagen! Auch das werde ich dann mal ausprobieren.

Wie bereits gesagt, ich hatte bei meinem ersten Denk-Ansatz wohl den Wurm drin und dachte, ich müsse erstmal die ASCII-Zeichen der Helligkeit her sortieren (so wie man sie empfindet), um dann für einen gerenderten Quad das am nähersten an die Helligkeit herankommende Zeichen zu finden.

negaH 4. Mai 2010 16:24

Re: Empfundene Helligkeiten zweiter Grafiken - Ansatz?
 
Zitat:

Wie bereits gesagt, ich hatte bei meinem ersten Denk-Ansatz wohl den Wurm drin und dachte, ich müsse erstmal die ASCII-Zeichen der Helligkeit her sortieren
Nein. Dieses Problem ist ein Mapping-Problem. Dh. wenn du das Mapping von Pixelgruppe zu ASCII Zeichen als Operation betrachtest so sollte ja gelten -> Helligkeit Pixelgruppe im Bild == Helligkeit ASCII Pixel. Somit dürfte ein Mapping wie Anzahl helle Pixel in Pixelgruppe Bild == Anzahl heller Pixel in ASCII Zeichen schon ausreichend sein.
Das Mapping sollte also im Ergebnis den Helligkeitseindruck im Bild nicht verändern zum Helligkeitseindruck der ASCII Zeichen. Mit bischen Clevernis kannst du also auf den zwei Seiten deiner Formel die Variable Helligkeit raus streichen.

Gruß Hagen

negaH 4. Mai 2010 16:27

Re: Empfundene Helligkeiten zweiter Grafiken - Ansatz?
 
Als Erstes würde ich aber einfach folgendes probieren:

Zeichne einen beliebigen ASCII Text über die Bitmap. Dabei benutzt du einen Zeichenmodus der die ASCII Zeichen als Schrift aus der Bitmap ausstanzt. Also helle Pixel im ASCII Zeichen erhalten das originale Bild und dunkle Pixel im ASCII Zeichen setzen den Pixel im Bild auf Schwarz.

Gruß Hagen

blackfin 4. Mai 2010 16:31

Re: Empfundene Helligkeiten zweiter Grafiken - Ansatz?
 
Das habe ich bereits.
Was mir daran missfällt ist aber die Tatsache, dass das Resultat eben eher eine Maske ist als eine Annäherung der Zeichen an das Original.
z.B. wird ja so eine harte Kante im Bild nicht durch das am nähersten an diese Form kommende zeichen repräsentiert.

jfheins 4. Mai 2010 16:36

Re: Empfundene Helligkeiten zweiter Grafiken - Ansatz?
 
Ich hätte dafür noch nen Ansatz: Naheme eine Pixelgruppe, die du konvertieren willst, und konvertiere sei erstmal zu Schwarzweiß (wg. Kontur) und vergleiche sie dann mit jedem Buchstaben, den du zur Verfügung hast. Bei jedem Unterschied wird ein Zähler erhöht, je höher der Zähler desto ungeeigneter ist der Buchstabe ;)
Wenn du dann noch die Farbe mit reintun willst, vielleicht noch mit der Durchschnittsfarbe einfärben.

blackfin 4. Mai 2010 16:39

Re: Empfundene Helligkeiten zweiter Grafiken - Ansatz?
 
Uhh....bei dem Ansatz wird die Grafikkarte aber ganz schön kochen :)

Medium 4. Mai 2010 20:18

Re: Empfundene Helligkeiten zweiter Grafiken - Ansatz?
 
Was jfheins schrieb war auch mein Gedanke von unten auf Seite 1, wobei "binärisieren" total Hochgestochendeutsch für "schwarz-weiss machen" ist :drunken:

Im Grunde läufts darauf hinaus aus jedem Bildkästchen ein s/w Bild zu machen, und zu schauen welcher Buchstabe dem jetzt ähnlich schaut. Dann Farben wählen, und weiter. (GPUs können viel ab, gib ihr richtig :D )

blackfin 5. Mai 2010 00:02

Re: Empfundene Helligkeiten zweiter Grafiken - Ansatz?
 
Liste der Anhänge anzeigen (Anzahl: 3)
Sooo...ich bin am basteln :D

Da der Versuch mit den Götter-Algorithmen von jfheins, Medium und Hagen zwar geklappt hat, aber man wirklich nichts erkennen konnte :mrgreen:, habe ich noch ein
paar Sachen dazugemacht und nun werden die Ascii-Zeichen je nach Helligkeit (absoluter! hahahaha...) anhand des Depth Buffer verzerrt und ab einer gewissen
Schwelle von fill- zu linerender übergegangen. Ausserdem wird der Kontrakt extrem erhöht.

Jetzt sieht das ganze schon eher nach Matrix-Style aus! :-D Ok, die Sinnhaftigkeit ist immer noch nicht da..... :oops: Aber was solls, ich hab was gelernt.

Anbei drei Screenshots. Einmal der Original-Render, dann mit Stufe 1 (nur Tiefen/Helligkeits-Verzerrung) und dann mit depth <-> line.

P.S.
Ich sehe gerade, die Reihenfolge der Attachments ist hier ja umgekehrt..also ist das letzte Bild das erste..der letzte malt zuerst, oder so...

Medium 5. Mai 2010 02:46

Re: Empfundene Helligkeiten zweiter Grafiken - Ansatz?
 
Ahhhhhhh! Du willst das ganze wirklich als Textur, und nicht als Post-Processing! Sag das doch ;) (Ich hab angenommen du willst ca. dort hin, was im Moment in der Demoscene in Mode ist: Aufwendige Demos mit realtime ASCII-finish.)

Mhmhmh, dann ist das Nachbilden der Kanten/Strukturen ja völlig zweitrangig, und absolute Helligkeit erscheint mir hier auch als am sinnvollsten. Ich grübel nur grad nach, wie du besser an das "Anschmiegen" an die Models kommen könntest. Ich bin grad gedanklich bei UV-Maps, und die Texcoords als lookup in kleine Buchstabentexturen - nur bereitet mir Kopfzerbrechen, dass du im Pixelshader kaum dazu kommen wirst ganze mehrpixelige zusammenhängende Buchstaben rauszuwerfen. Zudem wäre das Erstellen der UV-Maps kein großer Spaß...

Irgendwie müssen Welt-Koordinaten her, und zwar so, dass dennoch die Projektion erhalten bleibt. Uffa, ich glaub das ist erstmal nichts für halb vier :D.

(Der Billig-Ansatz wären ja Buchstaben-Alphamaps, aber da warst du ja glaub ich schon.)

Andere Billig-Idee: Deine Texturen sind bisher ja relativ einfach, bzw. haben recht enge Farbigkeit. Wie wäre es diese mit Buchstabentexturen in der Durchschnittlichen Farbe der Basistextur zu ersetzen? So lange du keine aufwendigeren mehrfarbigen Texturen hast, könnte das sogar einigermaßen gehen. (Texturdurchschnitte lassen sich übrigens rasend flott berechnen: Mipmaps bis 1px Größe erzeugen lassen, und tataaa, der Pixel hat die Durchschnittsfarbe ohne dass man was dafür getan hätte.)

Schönes Problem :) (endlich mal wieder)

blackfin 5. Mai 2010 09:16

Re: Empfundene Helligkeiten zweiter Grafiken - Ansatz?
 
Zitat:

Ahhhhhhh! Du willst das ganze wirklich als Textur, und nicht als Post-Processing!
:D Zuerst wollte ich das ganze ja auch als Post-Processing, aber da ich nun auch nocht den Tiefenpuffer brauche, hat sich das erledigt :)

Zitat:

....was im Moment in der Demoscene in Mode ist
Das ist derzeit in? Wusste ich gar nicht :) Mit der Szene hatte ich auch noch nicht so viel zu tun. Aber toll, ich bin trendy!....*hust* :mrgreen:

Zitat:

Irgendwie müssen Welt-Koordinaten her, und zwar so, dass dennoch die Projektion erhalten bleibt. Uffa, ich glaub das ist erstmal nichts für halb vier
Und für mich auch nix für 10:00 :D
Die Welt-Koordinaten habe ich ja aber im Shader.


Zitat:

Wie wäre es diese mit Buchstabentexturen in der Durchschnittlichen Farbe der Basistextur zu ersetzen?
Mhmm...das geht nicht so einfach, da es keine einzelne Textur ist, sondern 5 Texturen, die auf das Terrain gesplattet werden.
Das würde dann wohl ein ziemliches "Kuddelmuddel" ergeben (ok, aber sicher noch schöner als mein crap *g*)
Dass die Farben so blass sind, liegt an der Lichtumgebung, es kann aber auch durchaus dunkel sein und mit sehr kräftigen Farben..mhm...

Ich werd deinen Ansatz aber mal aufgreifen und weiterbasteln! Ich bin diesbezüglich eh für alles offen.
Und da das ganze eh nur für den Spass am Basteln ist... :)


Vielen Dank für die Idee :cheers:


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:09 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz