Сегментирование трехмерных фигур из толстых «линий» - PullRequest
2 голосов
/ 15 августа 2011

Я ищу метод, который ищет фигуры в трехмерном изображении в Matlab.У меня нет настоящего образца 3D-изображения прямо сейчас;на самом деле мое 3D-изображение на самом деле представляет собой набор квантованных 2D-изображений.

Вот рисунок, который я пытаюсь выполнить:

enter image description here

Хотя приведенный выше пример является 2D-изображением, пожалуйста, поймите, что я пытаюсь сделать это в 3D. У входной фигуры есть эти «щупальца», и я должен искать среди них неправильные фигуры.Размер щупальца от одной точки к другой может изменяться вокруг, но в «последовательном и плавном» темпе - то есть сначала он может быть большим, а затем постепенно уменьшаться.Но если вдруг, форма просто увеличивается не так постепенно, как красная нижняя правая область на рисунке выше, то это один из элементов интереса.Обратите внимание, что эти формы имеют большую склонность к округлению и сферичности, но некоторые из них являются совершенно произвольными и случайными.

До сих пор я пробовал следующие методы:

  1. Эрозировал n раз и расширялся n раз: учитывая, что "щупальца" всегда меньше, чем интересующий объемэтот метод будет работать, пока объем не слишком мал.И нам нужен механизм для работы с более толстой частью щупальца, которая каким-то образом становится ложноположительной.

  2. Преобразование Хафа: хотя мне предложили этот метод ранее (с )Сегментируя круговые фигуры из двоичного изображения ), я вижу, что это работает для некоторых случаев с более округлой формой, но в то же время для более сложных случаев, таких как менее округлые, искаженные и / или произвольныеформы могут скользить по этому методу.

  3. Изоповерхность: из-за моего ввода - это набор двумерных квантованных изображений, использование изоповерхности позволяет мне реконструировать изображение в 3D и видеть вещи более четкими.Однако я не уверен, что можно сделать в этом случае дальше.

Так может ли кто-нибудь предложить какие-то другие методы для выделения такой формы из этих "щупалец"?

1 Ответ

2 голосов
/ 16 августа 2011

Каждая точка на вашем изображении обладает свойством, что оно является либо частью щупальца, либо частью интересующего вас объема. Если априори неизвестно, каков ожидаемый обхват щупальца, то 1 не сработает, потому что мы не сможем установить n. Однако мы знаем, что n, которое стирает щупальце, меньше, чем n, которое стирает узел. Вы можете заменить каждую точку целым числом, обозначающим расстояние до края. По сути, это можно сделать путем последовательной эрозии одного пикселя и замены каждого пикселя счетчиком итерации, на которой он был удален. Давайте назовем это толщиной в пикселе, но мой старый ржавый ум говорит мне, что для этого был термин «искусство».

Теперь мы хотим найти регионы, которые имеют морфологическое расстояние от границы выше, чем обычно. Я бы сделал это, сначала скелетизировав изображение (http://www.mathworks.com/help/toolbox/images/ref/bwmorph.html)), а затем выполнив поиск локальных максимумов толщины вдоль скелета. Это точки на скелете, где толщина больше, чем соседние точки.

Наконец, я бы отсортировал локальные максимумы по толщине, порог, на котором следует отделить интересующие объемы от ложных срабатываний.

...