ich einen direkten Faltungsalgorithmus bin mit der Faltung zwischen diesem Bild zu berechnen:Artefakte in Faltung
und diesen Kernel:
ich die Umsetzung in astropy bin mit für die direkte Faltung.
Daraus ergibt sich die folgende Faltung, alle Einstellungen zu verlassen (einschließlich Grenzkosten) auf die Standardwerte, dh astropy.convolution.convolve (Bild, Kernel):
Diese Faltung einige rätselhafte Artefakte hat . Insbesondere gibt es ein "quadratisches" Muster mit einem Versatz von ungefähr 50 Pixeln von der Kante. Es scheint mir, dass dies auf das Ausmaß des Kerns zurückzuführen ist; Obwohl der Kernel 249 x 249 groß ist, sind die meisten Informationen eindeutig in einem Radius von etwa 100 Pixeln enthalten - was bedeutet, dass wir wahrscheinlich Probleme bekommen, wenn der Kernel auf die Kanten angewendet wird.
Was mich auf meine Fragen bringt:
- Ist diese Hypothese richtig -, dass es sich tatsächlich um ein Randproblem?
- Wie würde ich das Problem lösen? Ich weiß nicht, wie man verschiedene Edge-Handling (Zero Padding, Interpolation, Wrapping, ...) rechtfertigen kann. Ich bin sicher, dass verschiedene Fälle unterschiedliche Lösungen erfordern, aber ich bin mir nicht sicher, wie ich mich dafür entscheiden soll ...
- Nur ... versuchen, den Unterschied zwischen der Verwendung eines direkten Algorithmus und einer FFT-Faltung zu verstehen. Wenn der Kernel und das Image gleich groß sind, ist für die FT-Faltung kein Null-Padding erforderlich, es werden keine Kanteneffekte angezeigt. Bei der direkten Methode haben Sie versehentlich eine Kantenbehandlung ... also sind die Ergebnisse sogar gleichwertig? Weil im Prinzip nur ihre Leistung abweichen sollte, oder?