Введение
Расширение кубической сплайн-интерполяции
В математике бикубическая интерполяция является расширением кубической сплайн-интерполяции (метода применения кубической интерполяции к набору данных) для интерполяции точек данных на двухмерной регулярной сетке. Интерполируемая поверхность (имеется в виду форма ядра, а не изображение) получается более гладкой, чем соответствующие поверхности, полученные с помощью билинейной интерполяции или интерполяции ближайшим соседом. Бикубическая интерполяция может быть реализована с использованием полиномов Лагранжа, кубических сплайнов или алгоритма кубической свертки. В обработке изображений бикубическая интерполяция часто предпочтительнее билинейной или интерполяции ближайшим соседом при изменении размера изображения, когда скорость не является критичным фактором. В отличие от билинейной интерполяции, которая учитывает только 4 пикселя (2×2), бикубическая интерполяция учитывает 16 пикселей (4×4). Изображения, измененные с помощью бикубической интерполяции, могут иметь различные артефакты интерполяции в зависимости от выбранных значений параметров b и c.
Найти производные от значений функций
Если производные неизвестны, они обычно приближаются на основе значений функции в точках, соседних с углами единичного квадрата, например, с использованием конечных разностей. Чтобы найти одну из частных производных, ∂u/∂x или ∂u/∂y, используя этот метод, найдите наклон между двумя окружающими точками на соответствующей оси. Например, для вычисления ∂u/∂x для одной из точек, найдите значения функции в точках слева и справа от целевой точки и рассчитайте их наклон, и аналогично для ∂u/∂y. Чтобы найти смешанную производную ∂²u/∂x∂y, вычислите производную последовательно по обеим осям, сначала по одной, а затем по другой. Например, можно сначала использовать описанную выше процедуру для нахождения частных производных ∂u/∂y точек выше и ниже целевой точки, а затем использовать ту же процедуру для полученных значений (а не, как обычно, значений ∂u/∂x для этих точек), чтобы получить значение ∂²u/∂x∂y для целевой точки. (Или можно сделать это в обратном порядке, сначала вычислив ∂u/∂x, а затем ∂²u/∂y∂x из этих значений. Оба подхода дают эквивалентные результаты.) На границах набора данных, когда отсутствуют некоторые из окружающих точек, отсутствующие точки можно приблизить различными методами. Простой и распространенный метод заключается в предположении, что наклон от существующей точки к целевой точке сохраняется без изменений, и использовать это для вычисления гипотетического значения для отсутствующей точки.
To find the cross derivative , take the derivative in both axes, one at a time. For example, one can first use the procedure to find the derivatives of the points above and below the target point, then use the procedure on those values (rather than, as usual, the values of for those points) to obtain the value of for the target point. (Or one can do it in the opposite direction, first calculating and then from those. The two give equivalent results.) At the edges of the dataset, when one is missing some of the surrounding points, the missing points can be approximated by a number of methods. A simple and common method is to assume that the slope from the existing point to the target point continues without further change, and using this to calculate a hypothetical value for the missing point.
Использование в компьютерной графике
Бикубический алгоритм часто используется для масштабирования изображений и видео для отображения (см. передискретизацию растровых изображений). Он лучше сохраняет мелкие детали, чем распространённый билинейный алгоритм. Однако, из-за отрицательных долей в ядре, он вызывает перерегулирование (появление ореолов). Это может приводить к отсечению и является артефактом (см. также артефакты звона), но повышает кажущуюся резкость и может быть желательным эффектом.