Извлечение ребер как трехмерных линий (например, .dwg или .shp) из трехмерного облака точек в Python
После нескольких недель путешествий по этому форуму и некоторым статьям и переживания взлетов и падений относительно того, как правильно обнаруживать и извлекать края в облаках точек, я должен задать следующий вопрос:
1) Что у меня уже есть:
Мои данные: трехмерное облако точек, например, дома, стены или бордюра на улице - в любом из этих случаев.
Мои попытки до сих пор: я наткнулся на множество библиотек Python (open3d, PyntCloud, laspy), и со всеми из них я смог вычислить собственные значения, а затем из этого своего рода обнаружения кривизны / края, но он не работает так, как я ожидал - Мои облака точек кажутся слишком шумными / волнистыми, так что, например, слишком много или слишком мало точек определяется как края, или даже края, которые должны быть краями, не обнаруживаются.
Я также попробовал преобразование Хафа в 3D, но это занимает часы на больших облаках точек. (у меня обычно в пределах 100.000-300.000 баллов)
2) Что бы я хотел получить в конце:
Объект .dwg или .shp, содержащий только нижнюю и верхнюю линии (в соответствии с высотой), чтобы я мог загрузить объект в ArcMap или QGIS и имел бы, например, нижнюю и верхнюю части стены или дома как 3D линейный объект.
Итак, есть ли у кого-нибудь достойное представление, как этого добиться?
1 ответ
Я тоже так делаю, не могли бы вы обсудить? Я использую ransac для регистрации, но результаты не обещают.