Интерполяция - сложная тема. Существует бесконечно много способов интерполировать набор точек, и это при условии, что вы действительно хотите выполнить интерполяцию, а не сглаживание любого рода. (Интерполант точно воспроизводит исходные точки данных.) И, конечно, двумерный характер этой проблемы усложняет ситуацию.
Существует несколько распространенных схем интерполяции рассеянных данных в 2-й точке. На самом деле, для тех, кто имеет к ней доступ, доступна очень хорошая статья (Ричард Франке, «Интерполяция разбросанных данных: тесты некоторых методов», Математика вычислений, 1982)
Возможно, самый распространенный метод основан на триангуляции ваших данных. Просто построить триангуляцию домена из ваших точек данных. Тогда любая точка внутри выпуклой оболочки данных должна находиться ровно внутри одного из треугольников, иначе она будет на общем ребре. Это позволяет вам линейно интерполировать внутри треугольника. Если вы используете MATLAB, то для этой экспресс-цели доступна функция griddata.)
Проблема при попытке заполнить полное прямоугольное изображение из рассеянных точек состоит в том, что весьма вероятно, что данные не распространяются на 4 угла массива. В этом случае схема, основанная на триангуляции, потерпит неудачу, поскольку углы массива не лежат внутри выпуклой оболочки рассеянных точек. Альтернативой тогда является использование «радиальных базисных функций» (часто сокращенно RBF). Существует множество таких схем, включая Кригинг, когда они используются сообществом геостатистов.
http://en.wikipedia.org/wiki/Kriging
Наконец, inpainting - это имя схемы интерполяции, где элементы задаются в массиве, но где отсутствуют элементы. Название, очевидно, относится к тому, что сделано консерватором, которому нужно отремонтировать слезу или разорвать ценный предмет искусства.
http://en.wikipedia.org/wiki/Inpainting
Идея в рисовании обычно заключается в формулировании краевой задачи. То есть, определить дифференциальное уравнение в частных производных для области, где есть дыра. Используя известные граничные значения, заполните отверстие, решая PDE для неизвестных элементов. Это может быть вычислительно интенсивным, если существует огромное количество неизвестных элементов, так как обычно требуется решение по крайней мере массивной разреженной системы линейных уравнений. Если PDE является нелинейным, то это становится еще более интенсивной проблемой. Простым, достаточно хорошим выбором для PDE является лапласиан, что приводит к линейной системе, которая хорошо экстраполирует. Опять же, я могу предложить решение для пользователя MATLAB.
http://www.mathworks.com/matlabcentral/fileexchange/4551
Лучший выбор для PDE может исходить от нелинейных PDE. Когда-то таково уравнение Навье-Стокса. Он хорошо подходит для моделирования типов поверхностей, которые обычно видны, но с ним также сложнее иметь дело. Как и во многих аспектах жизни, вы получаете то, за что платите.