Подтвердить что ты не робот

Как приблизить векторный контур от растра высоты?

У меня есть карта высот, хранящаяся в виде растра. Я хотел бы поместить гладкую "векторную" кривую в контуры постоянной высоты. В моем приложении данные на самом деле являются географическими возвышенностями, но проблема может быть обобщена на любую функцию двух переменных.

Я могу создать еще один растровый слой с сглаженными контурными линиями и использовать его для ввода в процесс привязки к вектору, если это помогает.

Этот вопрос похож, но я ищу бесплатную библиотеку, которую я могу использовать в своем приложении Java, или объяснение алгоритма я (не -тематик) может реализовать себя. Кроме того, в моем случае, я уже нашел все "края" , о которых я забочусь о &mdash, мне просто нужно их векторизовать.

Другой вопрос касается моего, но плакат никогда не возвращался, чтобы объяснить, как он выполнил заключительный шаг, который является той частью, которую мне не хватает.

4b9b3361

Ответ 1

Вероятно, вы хотите поместиться в закрытые сплайны безье (кривые).

Существует страница с апплетом Java, которая делает такую ​​установку. Взгляните на их (uncommented, bleh) PSegment.java

Если это не делает работу достаточно хорошо, Установка кривых B-Spline в облака точек на Квадратичная минимизация расстояний должна быть чрезмерной для выполнения задачи.

Для получения дополнительной информации, Google (Scholar) ищет такие вещи, как "b-сплайн-фитинг" и "закрытый сплайз безье".

Ответ 2

MATLAB делает это с контурным графиком: см. contour функция - она ​​выводит данные контурной линии из сетки f ( x, y). Я мало знаю об алгоритме, который они используют (у них есть страница эквивалент Octave.

существует a тезис о построении контура и Страница CodeProject на основе тезисов.

Ответ 3

Я использую GDAL. И, на мой взгляд, вы, вероятно, не хотите создавать сплайны Bézier, что добавляет сложности. Довольно короткие сегменты линии.

Единственная проблема заключается в том, что вам придется создавать контуры во время подготовки данных, а не в вашем приложении Java.

Здесь отображается карта с некоторыми контурами, созданными из данные высоты USGS с использованием GDAL:

enter image description here