Saya menggunakan algoritma interpolasi bikubik untuk meningkatkan skala peta ketinggian, dan saya memperhatikan beberapa artefak di sekitar batas piksel. Namun, artefak ini tampaknya tidak muncul ketika saya menggunakan interpolasi kubik sederhana (spline).
Mungkinkah karena interpolasi bikubik tidak menjamin turunan kedua menjadi kontinu, tidak seperti spline kubik? Jika demikian, adakah algoritma yang dikenal yang memiliki turunan kedua berkelanjutan? Kalau tidak, apakah ada cara untuk menangani artefak ini?
Interpolasi linier (menunjukkan batas piksel):
Interpolasi bilahub (artefak terlihat pada batas piksel):
Interpolasi kubik (tidak ada artefak yang terlihat):
Saya mencoba beberapa formula bikubik, yang memberi saya hasil yang sama. Berikut ini beberapa contohnya:
sumber
Jawaban:
Dalam makalah Ken Perlin tentang peningkatan kebisingan , ia menyebutkan masalah yang sangat mirip. Kubik yang digunakan dalam kertas suara asli menciptakan diskontinuitas pada batas integer karena sifat turunannya. Dalam makalah yang direvisi, ia mengusulkan campur tangan
6t^5 - 15t^4 + 10t^3
untuk mengatasi masalah tersebut.sumber
Saya melakukan beberapa pencarian dan menemukan bahwa B-Spline memiliki C2 kontinu. Saya menerapkannya dan itu terlihat baik-baik saja, bahkan jika itu perkiraan dan bukan interpolasi (itu tidak melalui sampel).
B-spline (perkiraan):
sumber