Заземление сегмента из лидарных данных по алгоритму SMRF
сегментация облака входных точек, groundPtsIdx = segmentGroundSMRF(ptCloud)ptCloud в наземные и ненулевые точки и возвращает логическую матрицу или вектор groundPtsIdx. Функция устанавливает индексы точек заземления в значение true и true для негерметичных точек.
дополнительно задает размер элемента сетки.groundPtsIdx = segmentGroundSMRF(ptCloud,gridResolution)
[ дополнительно возвращает точки земли и точки, не являющиеся точками земли, как отдельные groundPtsIdx,nonGroundPtCloud,groundPtCloud] = segmentGroundSMRF(___)pointCloud объекты. Используйте этот синтаксис с любой из комбинаций входных аргументов в предыдущих синтаксисах.
[___] = segmentGroundSMRF(___, указывает параметры, использующие один или несколько аргументов значения имени. Например, Name,Value)'ElevationThreshold',0.4 устанавливает порог отметки для идентификации точек, не являющихся точками грунта, равным 0,4.
Алгоритм простого морфологического фильтра (SMRF) [1] сегментирует данные облака точек на наземные и не наземные точки. Алгоритм разделен на три этапа:
Создайте поверхность минимальной отметки на основе данных облака точек.
Сегментируйте поверхность на наземные и неназначенные элементы сетки.
Сегментировать исходные данные облака точек.
Минимальное создание поверхности
Разделите данные облака точек на сетку вдоль размера xy (вид с высоты птичьего полета). Укажите размер элемента сетки с помощью gridResolution.
Найдите значение наименьшей отметки (Zmin) для каждого элемента сетки (пикселя).
Объединение всех значений Zmin в матрицу 2-D (растровое изображение) для создания карты поверхности минимальной отметки.
Сегментация карты поверхности
Примените операцию морфологического вскрытия к карте минимальной поверхности. Дополнительные сведения о морфологическом открытии см. в разделе Типы морфологических операций.
Используйте дискообразный структурный элемент с радиусом 1 пиксел. Дополнительные сведения см. в разделе Структурирование элементов.
Рассчитайте уклон между картами минимальной поверхности и открытой поверхности в каждом элементе сетки. Если разница превышает пороговое значение отметки, классифицируйте пиксель как не заземленный.
Выполните шаги с 1 по 3 итеративно. Увеличьте радиус структурного элемента на 1 пиксел в каждой итерации, пока он не достигнет максимального радиуса, заданного MaxWindowRadius.
Конечным результатом процесса итерации является двоичная маска, где каждый пиксель классифицируется как заземленный или не заземленный.
Сегментация облака точек
Примените двоичную маску на исходной карте минимальных поверхностей, чтобы исключить нетронутые сетки.
Заполните незаполненные сетки с помощью методов интерполяции изображений для создания расчетной модели фасада.
Рассчитайте разность отметок между каждой точкой в исходном облаке точек и расчетной моделью отметок. Если разница больше, чем ElevationThreshold, классифицируйте пиксель как не заземленный.
[1] Пингел, Томас Дж., Кит К. Кларк и Уильям А. Макбрайд. «Усовершенствованный простой морфологический фильтр для классификации местности воздушных данных LIDAR». Журнал фотограмметрии и дистанционного зондирования 77 (март 2013 года): 21-30. https://www.sciencedirect.com/science/article/abs/pii/S0924271613000026? via%3Dihub.