Bagaimana cara saya menghindari artefak interpolasi saat memperbesar peta ketinggian?

9

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): masukkan deskripsi gambar di sini

Interpolasi bilahub (artefak terlihat pada batas piksel): masukkan deskripsi gambar di sini

Interpolasi kubik (tidak ada artefak yang terlihat): masukkan deskripsi gambar di sini

Saya mencoba beberapa formula bikubik, yang memberi saya hasil yang sama. Berikut ini beberapa contohnya:

Kartu
sumber
bagi saya versi bikubik adalah yang terbaik, itu membuat frekuensi tinggi dan terlihat cukup bagus. Anda mengatakan ada artefak tetapi kecil dan tidak sebanding dengan kerugian mengerikan yang diberikan splines kepada Anda. pendapat saya.
v.oddou
@ v.oddou Saya pikir perasaan frekuensi tinggi yang Anda gambarkan sebagian disebabkan oleh artefak itu sendiri. Ini tidak terlihat baik dalam gambar ini, tetapi medannya benar-benar persegi dari beberapa sudut, dan tergantung pada posisi matahari. Itu bahkan lebih jelas ketika normals atau lereng ditampilkan. Yang sedang dikatakan, memang benar bahwa b-splines menghaluskan medan banyak (tidak ada puncak yang lebih tajam). Saya masih mencari alternatif yang lebih baik.
dek

Jawaban:

4

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^3untuk mengatasi masalah tersebut.


sumber
Kedengarannya menarik, bahkan jika saya tidak yakin bagaimana menggunakannya dalam kode saya. Saya akan mengeksplorasi ini.
dek
3

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): masukkan deskripsi gambar di sini

Kartu
sumber