Hello World,
hab mal wieder ein Problem bei den image-Funktionen, und zwar beim Gaußschen Weichzeichner, also in der Funktion imageconvolution. Ich würde nun gerne ein Bild sehr stark verschwommen ausgeben, habe aber nirgends etwas gefunden, dass den 2. Parameter, also die 3 mal 3 - Matrix erklährt. Könnte mir da vielleicht jemand helfen?
Danke im Vorraus,
lg
Lollix
Ankündigung
Einklappen
Keine Ankündigung bisher.
Frage zu imageconvolution (Gaußscher Weichzeichner)
Einklappen
Neue Werbung 2019
Einklappen
X
-
Frage zu imageconvolution (Gaußscher Weichzeichner)
Stichworte: -
-
In Photoshop kannst du beim Gaussian Blur Filter den Radius in Pixeln angeben. Das wird wohl damit irgendwie was zutun haben.
Einen Kommentar schreiben:
-
Hmm. Wenn ich mir das so ansehe, würde eine größere Matrix wirklich sinnvoll sein. Ich vermute, dass der Weichzeichner der Bildbearbeitungsprogramme pro eingestelltem Level auch die Matrix vergrößern. Das müsstest du dann aber selbst implementieren, wie Flo schon sagte.
Einen Kommentar schreiben:
-
So, ich hab jetzt nochmal mit der Matrix ein bisschen "rumexperimentiert", aber ich sehe nurn darin keinen Sinn mehr für meinen "Anwendungszweck" bei einem starken Weichzeichner
Einen Kommentar schreiben:
-
Schau dir doch mal die Kommentare im PHP Manual an. Dort wurde die Funktion auch "per Hand" implementiert. Diese könntest du für dich ja entsprechend auf eine 5x5 Matrix oder ähnliches erweitern. Das macht auf jeden Fall Sinn.
Einen Kommentar schreiben:
-
Vielleicht gibts ja andere Alternativen oder welche, die sich damit mehr auseinander gesetzt haben, weil wenn nicht müsste ich diese Funktion wirklich selber schreiben, weil bei mir funktioniert wirklich kaum was, denn entweder ist es noch weniger verschwommen oder die Qualität lässt immer mehr nach...
Einen Kommentar schreiben:
-
Keine Ahnung, jedenfalls ein Abkömmling der C-Familie, wahrscheinlich C++, aber wohl nicht C#. So genau habe ich mir das jetzt aber nicht angeguckt. Das ist aber auch relativ egal, weil du die Implementierung in PHP ja schon mit imageconvolution() hast, das musst du ja nicht nachprogrammieren. Es geht nur um die Theorie der Matrix in diesem Falle.
Vielleich hat ja noch jemand eine andere Idee oder noch jemand Tipps für mich...
An sich müsste eine 3x3-Matrix reichen. Wenn du das mittlere Pixel auf 0 setzt und die äußeren auf höhere Werte, sollte man mit ein wenig Spielen sogar eine recht einheitliche Farbfläche bekommen. Das sollte eigentlich genügen. Du kannst ja nicht nur Werte zwischen -1 und 1 setzten, sondern beliebig hohe Werte.
Für Kantenerkennung etc. sind höhere Matrizen sinnvoll, aber für einen einfachen Weichzeichner sollte eine 3x3-Matrix genügen.
Einen Kommentar schreiben:
-
ja, deswegen ja, aber leider funktionierts ja nicht
Nach ein paar Tests hab ich auch nichts mit dem Verändern der Werte in den verschiedenen Matrizen gefunden
Einen Kommentar schreiben:
-
Naja, doch, das kann schon Sinn machen. Mit einer größeren Matrix kannst Du einen anderen Effekt erzielen, als mit 3x3.
Einen Kommentar schreiben:
-
HI Leute,
ja, 5*5 Matrix macht schon ein bisschen Sinn finde ich, nur dann sinds ja keine Nachbarpixel sondern einfach die übernächsten Pixel, aber das geht ja leider nicht, also naja
Das mit den Werten muss ich nochmal testen, aber ich habe schon einiges ausprobiert und nichts herausgefunden, mal schauen...
@Manko10: Deinen ersten Beitrag fande ich interessant, allerdings wüsste ich gerne, welche Programmiersprache es ist (PHP auf jeden Fall nicht, vlt c#?)
Vielleich hat ja noch jemand eine andere Idee oder noch jemand Tipps für mich...
lg
Lollix
Einen Kommentar schreiben:
-
Nö, was willst du mit einer 7x7-Matrix? Ein Pixel hat nur 8 Nachbarpixel. Du musst einfach die Modifikationswerte ändern, also z.B. die Farbwirkung des mittleren Pixels herunterschrauben und die der umliegenden rauf.
Außerdem lassen sich Filter im Notfall auch immer noch addieren.
Einen Kommentar schreiben:
-
Ich kenn mich jetzt damit nicht so genau aus. Ich hör grad erst ne Vorlesung zur Numerik Aber spiel doch mal ein bisschen mit den Parametern herum, vlt. lässt sich daraus was machen.
Einen Kommentar schreiben:
-
HI,
danke erstmal für deine Antwort, bei der Wikipedia-Seite hatte ich auch bereits geschaut. Wenn ich jetzt das Bild stärker verschwommen machen würde, müsste man dann doch dann theoretisch eine 5*5 oder 7*7 Matrix machen, oder? PHP lässt aber nur eine 3*3 Matrix zu. Wie könnte man sonst das Bild stärker verschwommen darstellen?
lg
Lollix
Einen Kommentar schreiben:
-
Ansonsten sollte dir das weiterhelfen (2 Minuten Google): GameDev.net -- An Introduction To Digital Image Processing
Einen Kommentar schreiben:
Einen Kommentar schreiben: