Технический термин для "контуров", который вы упомянули, - "изо-линии".
Учитывая набор изо-линий, вам сначала нужно построить облако точек в 3D (просто набор точек в 3D-пространстве). Вы делаете это в два этапа. сначала путем выборки каждой изо-линии через равные интервалы, вы получаете 2D точки, а затем вы поднимаете точки на соответствующую высоту.
Сэмплирование линии с одинаковыми интервалами может быть легко выполнено путем ее отслеживания. Вы можете узнать высоту линии, начав с самой внешней линии и проведя линии одну за другой внутрь, удаляя каждую линию, которую вы отслеживаете, и отслеживая количество линий, которые вы проследили.
Конечно, вам нужно заранее знать, какова разница в высоте между линиями и какова высота самой внешней линии (или любой другой линии, которая может использоваться в качестве справочной)
Получив трехмерное облако точек, вы можете использовать любой из нескольких алгоритмов восстановления поверхности. Эта компания , например, создает приложение, которое делает это, и вы можете загрузить демонстрацию командной строки с их сайта, которая будет работать до 30 000 баллов.