2013-11-28 3 views
1

С OpenCV/Matlab я вычисляю карту несоответствий. Я использую функцию OpenGS SGBM для ее получения. Результат хороший. У меня было немного шума на моем изображении. С medfilt2 в Matlab я удаляю много плохих пикселей.Удалить outlier в Point Cloud

Но где шум более присутствует, чем реальные данные, которые создают зону выбросов (Thing под заводом). Я хотел бы удалить все. Я ищу лучший способ сделать это?

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

Мое предположение:

  • Удалить больше шума с более несоответствием
  • Ведение предварительной обработки на несоответствием карте до того reprojectionImageTo3D (OpenCV)
  • Doing пост-обработки на облаке точек, чтобы удалить выброс с Z и, возможно, цвет

Я не уверен, как это сделать. Я ищу хороший метод фильтрации, который может помочь мне в этом. Я также могу работать с Matlab и OpenCV.

Вот пример моим образа у меня есть:

диспаритета карта с шумом (слева) и карта диспаритета с medfilt (справа) Disparity map with noise.Disparity map with medfilt Точки облаком, генерируемый шумном карты несоответствия. Point cloud generated with noisy disparity map. Точка облако, созданное с отображением несогласованности. Point cloud generated with medfilt disparity map.

EDIT

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

+0

Является ли последнее изображение тем, чего вы надеетесь достичь, или тем, что вы получили до сих пор? В первом случае, пожалуйста, покажите изображение, для которого это не удается, а во втором случае объясните, что вы все еще хотите улучшить. В любом случае, пожалуйста, покажите свой использованный код. –

+0

Финал - это то, чего я до сих пор добился. Как вы можете видеть, есть некоторый выброс под заводом, я хотел бы удалить. (Я отредактирую свое сообщение, чтобы отобразить нормальный размер облачного изображения, средний - маленький, чтобы хорошо видеть.) – Vuwox

ответ

0

Вы можете отправить StatisticalOutlierRemoval из PointCloudLibrary. Вы можете найти полезный учебник here, а также пример.

+0

Я уже пробовал, но я думаю, что мне нужно больше играть с параметром. И проблема, это изображение с высоким разрешением (12 миллионов пикселей), это вычисление начинает быть длинным. – Vuwox

+0

OpenMP - это библиотека параллелизма, которая может преподносить несколько циклов для разных циклов. Библиотека Point Cloud использует также библиотеку OpenMP для ускорения –

Смежные вопросы