双立方插值伪影(图像高级)

dec*_*eck 8 c++ interpolation image-processing bicubic image-resizing

我正在使用双三次插值算法来升高高度图,我注意到像素边界周围的一些伪像.但是,当我使用简单的三次插值(样条曲线)时,这些伪像似乎不会出现.

可能是因为双三次插值不能保证二阶导数是连续的,不像三次样条?如果是这样,是否有已知的算法具有连续的二阶导数?否则,有没有办法处理这些工件?

线性插值(显示像素边界): 线性插值

双立方插值(在像素边界处可见的伪像): 双立方插值

立方插值(无明显伪影): 在此输入图像描述

我尝试了几个双三元公式,这给了我相同的结果.这里有些例子:


编辑:我进行了一些搜索,发现B-Spline有一个连续的C2(也是Bharat建议的).我实现了它,它看起来很好,即使它是一个近似而不是插值(它没有通过样本).

B样条(近似值): b样条