Estou usando um algoritmo de interpolação bicúbica para melhorar um mapa de altura e estou observando alguns artefatos em torno dos limites dos pixels. No entanto, esses artefatos parecem não aparecer quando eu uso uma interpolação cúbica simples (spline).
Seria porque a interpolação bicúbica não garante que a segunda derivada seja contínua, diferentemente do spline cúbico? Em caso afirmativo, existem algoritmos conhecidos que possuem uma segunda derivada contínua? Caso contrário, existe uma maneira de lidar com esses artefatos?
Interpolação linear (mostra os limites dos pixels):
Interpolação bicúbica (artefatos visíveis nos limites dos pixels):
Interpolação cúbica (sem artefatos perceptíveis):
Eu tentei várias fórmulas bicúbicas, o que me deu os mesmos resultados. aqui estão alguns exemplos:
fonte
Respostas:
No artigo de Ken Perlin sobre ruído melhorado , ele menciona um problema muito semelhante. O cúbico usado no papel de ruído original cria descontinuidades nos limites do número inteiro devido às propriedades de seus derivados. Em seu artigo revisado, ele propõe um interplante
6t^5 - 15t^4 + 10t^3
para tratar dessas questões.fonte
Fiz algumas pesquisas e descobri que o B-Spline tem um C2 contínuo. Eu o implementei e parece bom, mesmo que seja uma aproximação e não uma interpolação (não passa pelas amostras).
B-spline (aproximação):
fonte