Ich verwende einen bikubischen Interpolationsalgorithmus, um eine Höhenkarte zu skalieren, und ich bemerke einige Artefakte um die Pixelgrenzen herum. Diese Artefakte scheinen jedoch nicht zu erscheinen, wenn ich eine einfache kubische Interpolation (Spline) verwende.
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?
Lineare Interpolation (zeigt die Pixelgrenzen an):
Bikubische Interpolation (Artefakte sichtbar an Pixelgrenzen):
Kubische Interpolation (keine erkennbaren Artefakte):
Ich habe mehrere bikubische Formeln ausprobiert, die mir die gleichen Ergebnisse gaben. Hier sind einige Beispiele:
Bearbeiten: Ich machte einige Suchen und fand heraus, dass B-Spline eine durchgehende C2 hat (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 (Approximation):
Tags und Links c++ image-processing interpolation image-resizing bicubic