liquid
2003-09-13, 14:17:07
Hi Leute,
Problem:
Ich hab hier ein Datenarray das ich mit einer convolution matrix (kernel) preprocessen will. Das Array stellt ne ganz normale Bitmap dar. Jetzt tritt das Problem auf, dass an den Ecken des Arrays der Filterkernel auf Bereichen ausserhalb des Arrays liegt. Wie sollte sich ein "guter Filter" in diesen Fällen verhalten?
Ich habe das bisher so gemacht, dass ich die äußeren Daten (pixels) einfach mal nicht beachtet habe (bei 3x3 kernels) und bei 5x5 kernels noch ein "Pixelrahmen". Aber da hat man natürlich ein ungutes Gefühl, da einige Bereiche ja überhaupt net gefiltert werden.
Was meint ihr dazu? Wie sollte man es richtig machen? Den kernel einfach nur für die Daten auswerten, die momentan unter ihm liegen? Also wenn ich an einer Ecke des Arrays ein 3x3 kernel drauflege und nur 4 Elemente unterm Kernel liegen, dann nur die Berechnung mit diesen Werten durchführen?
cya
liquid
Problem:
Ich hab hier ein Datenarray das ich mit einer convolution matrix (kernel) preprocessen will. Das Array stellt ne ganz normale Bitmap dar. Jetzt tritt das Problem auf, dass an den Ecken des Arrays der Filterkernel auf Bereichen ausserhalb des Arrays liegt. Wie sollte sich ein "guter Filter" in diesen Fällen verhalten?
Ich habe das bisher so gemacht, dass ich die äußeren Daten (pixels) einfach mal nicht beachtet habe (bei 3x3 kernels) und bei 5x5 kernels noch ein "Pixelrahmen". Aber da hat man natürlich ein ungutes Gefühl, da einige Bereiche ja überhaupt net gefiltert werden.
Was meint ihr dazu? Wie sollte man es richtig machen? Den kernel einfach nur für die Daten auswerten, die momentan unter ihm liegen? Also wenn ich an einer Ecke des Arrays ein 3x3 kernel drauflege und nur 4 Elemente unterm Kernel liegen, dann nur die Berechnung mit diesen Werten durchführen?
cya
liquid