Ankündigung

Einklappen
Keine Ankündigung bisher.

Frage zu imageconvolution (Gaußscher Weichzeichner)

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Frage zu imageconvolution (Gaußscher Weichzeichner)

    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
    Privatsphäre war gestern, denn:
    Bundestrojaner 2.0: Die neue Version ist da.


  • #2
    Weichzeichner werden oft so realisiert das einzelne Pixel anhand der umliegenden Pixel verändert werden. Angenommen du hast eine 3x3 Matrix, dann wird der Punkt in der Mitte durch die umliegenden 8 Punkte beeinflusst. Dabei gibt die Matrix an wie stark die umliegenden Punkte den Mittelpunkt beeinflussen sollen.

    Code:
    0.05  0.10  0.05
    0.10  0.40  0.10
    0.05  0.10  0.05
    Hierbei würde der mittlere Punkt mit dem Faktor 0.4 übernommen werden, dabei werden eben aus den äußeren Punkten die Farbwerte dazugerechnet, die Eckpunkte jeweils mit dem Faktor 0.05, die anderen mit 0.10.

    Ansonsten hier mal schauen: Weichzeichnen – Wikipedia

    Kommentar


    • #3
      Ansonsten sollte dir das weiterhelfen (2 Minuten Google): GameDev.net -- An Introduction To Digital Image Processing
      Refining Linux: “Performing Push Backups – Part 1: rdiff-backup

      Kommentar


      • #4
        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
        Privatsphäre war gestern, denn:
        Bundestrojaner 2.0: Die neue Version ist da.

        Kommentar


        • #5
          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.

          Kommentar


          • #6
            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.
            Refining Linux: “Performing Push Backups – Part 1: rdiff-backup

            Kommentar


            • #7
              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
              Privatsphäre war gestern, denn:
              Bundestrojaner 2.0: Die neue Version ist da.

              Kommentar


              • #8
                Naja, doch, das kann schon Sinn machen. Mit einer größeren Matrix kannst Du einen anderen Effekt erzielen, als mit 3x3.
                --

                „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                --

                Kommentar


                • #9
                  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
                  Privatsphäre war gestern, denn:
                  Bundestrojaner 2.0: Die neue Version ist da.

                  Kommentar


                  • #10
                    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...
                    Welche Tipps willst du denn noch haben?
                    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.
                    Refining Linux: “Performing Push Backups – Part 1: rdiff-backup

                    Kommentar


                    • #11
                      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...
                      Privatsphäre war gestern, denn:
                      Bundestrojaner 2.0: Die neue Version ist da.

                      Kommentar


                      • #12
                        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.

                        Kommentar


                        • #13
                          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
                          Privatsphäre war gestern, denn:
                          Bundestrojaner 2.0: Die neue Version ist da.

                          Kommentar


                          • #14
                            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.
                            Refining Linux: “Performing Push Backups – Part 1: rdiff-backup

                            Kommentar


                            • #15
                              In Photoshop kannst du beim Gaussian Blur Filter den Radius in Pixeln angeben. Das wird wohl damit irgendwie was zutun haben.

                              Kommentar

                              Lädt...
                              X