Извлечение ребер как трехмерных линий (например, .dwg или .shp) из трехмерного облака точек в Python

После нескольких недель путешествий по этому форуму и некоторым статьям и переживания взлетов и падений относительно того, как правильно обнаруживать и извлекать края в облаках точек, я должен задать следующий вопрос:

1) Что у меня уже есть:

Мои данные: трехмерное облако точек, например, дома, стены или бордюра на улице - в любом из этих случаев.

Мои попытки до сих пор: я наткнулся на множество библиотек Python (open3d, PyntCloud, laspy), и со всеми из них я смог вычислить собственные значения, а затем из этого своего рода обнаружения кривизны / края, но он не работает так, как я ожидал - Мои облака точек кажутся слишком шумными / волнистыми, так что, например, слишком много или слишком мало точек определяется как края, или даже края, которые должны быть краями, не обнаруживаются.

Я также попробовал преобразование Хафа в 3D, но это занимает часы на больших облаках точек. (у меня обычно в пределах 100.000-300.000 баллов)

2) Что бы я хотел получить в конце:

Объект .dwg или .shp, содержащий только нижнюю и верхнюю линии (в соответствии с высотой), чтобы я мог загрузить объект в ArcMap или QGIS и имел бы, например, нижнюю и верхнюю части стены или дома как 3D линейный объект.

Итак, есть ли у кого-нибудь достойное представление, как этого добиться?

1 ответ

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

Другие вопросы по тегам