Помогите построить гладкую поверхность.

Сообщение №6031 от shenon 16 декабря 2002 г. 13:23
Тема: Помогите построить гладкую поверхность.

На плоскости имеется двумерный массив значений функции F[i,j], где индексы i,j пробегают с шагом 1. Скажем, это значения яркости на дискретном изображении. Необходимо достроить зачения яркости в промежуточных точках. Например, можно натянуть полоскость на треугольник F[i,j], F[i,j+1], F[i+1,j]. Но тогда, на границах между треугольниками будет возникать излом, то есть скачёк градиента. Хотелось бы натянуть поверхность так, чтобы небыло скачков градиента. В одномерном случае F[i] задача решается достаточно просто. Между точками i,i+1 ищется кривая в виде многочлена третьей степени с четырьмя неизвестными коэффициентами A0+A1*x+A2*x*x+A3*x*x*x. В любой точке с индексом i определяется производная как (F[i+1]-F[i-1])/2, получаем четыре условия F[i], F[i+1], F'[i], F'[i+1] из которых находим A0,A1,A2,A3.

В двумерном случае, по видимому, плоскость можно найти в виде многочлена P(x,y) четвёртой степени. Такой многочлен содержит 15 коеффициентов. В каждой точке треугольника определяется градиент, плюс на трёх границах определяется градиент как линейная фунция. Получим как раз 15 условий для многочлена. В общем не хочется решать систему из 15 уравнений, может кто-нибудь знает где найти ответ - как найти коэффициенты P(x,y).


Отклики на это сообщение:

Помнится, в свое время Мигдал пытался продать нефтяникам или каким-нибудь геодезистам программулину, написанную одним из его аспирантов, которая как раз и занималась гладкой двумерной интерполяцией (причем не по решетке, а по произвольным образом разбросанным точкам). Это преподносилось как некоторое достижение прикладной математики и ценное ноу-хау. Может быть с тех пор это уже перестало быть коммерческим секретом? :-)


Все без исключения геодезисты обажают крайгинг - метод интерполяции такой. Придумал его (точнее начал) некий Криге - если не ошибаюсь - южноафриканский геолог. Все бы хорошо, но этот метод требует очень больших затрат процессорного времени - надо считать обратную матрицу размера n - числа исходных точек.
Есть еще другие методы, самый простой из которых - Inverse Distance to a Power. Он тоже строит поверхность по не регулярному множеству исходных точек. Теоретически можно разработать метод интерполяции двумерным сплайном - это как раз подходит для регулярной решетки (я начал, но слишком запарился, а потом оказалось, что мне это и не нужно).


> Теоретически можно разработать метод интерполяции двумерным сплайном - это как раз подходит для регулярной решетки (я начал, но слишком запарился, а потом оказалось, что мне это и не нужно).

Такие методы уже давно "работают". Достаточно популярна двумерная бикубическая сплайн-интерполяция. См., напр,

BICUBIC UNIFORM B-SPLINE
SURFACE REFINEMENT
,
bicubic


Физика в анимациях - Купить диск - Тесты по физике - Графики on-line

Реклама:
Rambler's Top100