Как предотвратить плоскую подгонку плоскости по осям xz и yz?

У меня есть этот код:

SACSegmentation<PointXYZ> seg;
seg.setAxis(Vector3f(0, 0, 1));
seg.setEpsAngle(0.5 * M_PI / 180.0);
seg.setModelType(SACMODEL_PLANE);
seg.setMethodType(SAC_RANSAC);
seg.setDistanceThreshold(0.2);
// then set the input cloud and filter..

Ось и epsAngle, похоже, вообще ничего не делают — облако точек по-прежнему улавливает стены, когда датчик приближается к ним достаточно близко, чтобы на стене было больше точек, чем на земле. Я создаю облако точек явно из данных точек xyz, поэтому переменные-члены PointCloud, такие как sensor_origin_ и sensor_orientation_, скорее всего, не установлены (если только PointCloud не устанавливает для них что-то по умолчанию). Может ли это быть корнем моей проблемы? Или я делаю что-то еще не так?

Все другие сообщения, которые я видел по этой проблеме, предлагают установить угол eps, что я уже делаю. Я ценю вашу помощь!


person Sean    schedule 10.04.2016    source источник


Ответы (1)


Я обнюхал документы PCL и нашел ответ. В документации это не совсем ясно, но setAxis() и setEpsAngle() затрагивают только НЕКОТОРЫЕ модели. Для моего приложения этой моделью была SACMODEL_PARALLEL_PLANE. Остальные можно найти здесь: http://docs.pointclouds.org/1.7.0/group__sample__consensus.html.

person Sean    schedule 10.04.2016