Ich verwende einen bikubischen Interpolationsalgorithmus, um eine Höhenkarte hochzurechnen, und ich bemerke einige Artefakte um die Pixelgrenzen herum. Diese Artefakte scheinen jedoch nicht zu erscheinen, wenn ich eine einfache kubische Interpolation (Spline) verwende.Bicubische Interpolationsartefakte (Bild hochskaliert)
Könnte es sein, dass die bikubische Interpolation nicht garantiert, dass die zweite Ableitung im Gegensatz zum kubischen Spline stetig ist? Wenn ja, gibt es bekannte Algorithmen, die eine kontinuierliche zweite Ableitung haben? Gibt es sonst eine Möglichkeit, mit diesen Artefakten umzugehen?
Linearinterpolation (die Pixel Grenzen zeigt):
bikubische Interpolation (Artefakte an Pixeln Grenzen sichtbar):
Cubic Interpolation (keine merklichen Artefakte):
I versuchte mehrere bikubische Formeln, die mir die gleichen Ergebnisse gaben. Hier sind einige Beispiele:
Edit: ich einige Recherchen gemacht und festgestellt, dass B-Spline eine kontinuierliche C2 (auch von Bharat vorgeschlagen). Ich habe es implementiert und es sieht gut aus, auch wenn es eine Annäherung und keine Interpolation ist (es geht nicht durch die Samples).
B-Spline (Näherung):
Welche Software haben Sie diese Bilder zu erzeugen, verwenden? Sieht wirklich gut aus! – ajwood
Ich arbeite an meiner eigenen OpenGL-Engine. – deck
Es gibt eine Reihe von verwandten bikubischen Filtern, von denen B-Spline eins ist. Siehe http://www.cs.utexas.edu/~fussell/courses/cs384g/lectures/mitchell/Mitchell.pdf für die Originalarbeit und http://entropymine.com/imageworsner/bicubic/ für die vereinfachte Version. Du könntest den von Mitchell und Netravali empfohlenen mit B = 1/3, C = 1/3 versuchen. –