Estoy usando un algoritmo de interpolación bicúbico para escalar un mapa de altura, y estoy notando algunos artefactos alrededor de los límites de píxeles. Sin embargo, estos artefactos no parecen aparecer cuando uso una simple interpolación cúbica (spline).
¿Podría ser porque la interpolación bicúbica no garantiza que la segunda derivada sea continua, a diferencia de la spline cúbica? Si es así, ¿hay algoritmos conocidos que tengan una segunda derivada continua? De lo contrario, ¿hay alguna manera de lidiar con estos artefactos?
Interpolación lineal (muestra los límites de píxeles):
Interpolación bicúbica (artefactos visibles en los límites de píxeles):
Interpolación cúbica (sin artefactos notables):
Probé varias fórmulas bicúbicas, que me dieron los mismos resultados. Aquí hay unos ejemplos:
fuente
Respuestas:
En el artículo de Ken Perlin sobre ruido mejorado , menciona un problema muy similar. El cúbico utilizado en el papel de ruido original crea discontinuidades en los límites enteros debido a las propiedades de sus derivados. En su documento revisado, propone un interplante
6t^5 - 15t^4 + 10t^3
para abordar esos problemas.fuente
Hice algunas búsquedas y descubrí que B-Spline tiene un C2 continuo. Lo implementé y se ve bien, incluso si es una aproximación y no una interpolación (no pasa por las muestras).
B-spline (aproximación):
fuente