Обнаружение прецессии "хвоста" на объекте

У меня есть набор объектов, которые могут быть сферическими или удлиненными, которые могут иметь или не иметь структуру в виде хвоста, прикрепленную к одному или двум концам. Хвост может быть длинным или коротким. Это может также иметь кривую к этому.

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

Моя текущая мысль - операция открытия, после которой проводится сравнение с исходной маской, но я не уверен, что она будет достаточно надежной при наличии вытянутых ячеек, и я пока не нашел "идеальный" структурирующий элемент.

Поскольку я не обладаю большим опытом в области ВА (скорее среднего уровня), я думаю, что было бы хорошей идеей протянуть руку и посмотреть, есть ли у других идеи, которые я еще не рассмотрел.

Тестовые изображения ниже. Эффективный динамический диапазон составляет 12 бит, но я нормализовал их, чтобы их было легче просматривать.

И вот несколько "нормалей" для сравнения:

PS Я не слишком обеспокоен тем, какой язык используется, и при этом мне не требуется пример кода. Однако я использую MATLAB на тот случай, если кто-то захочет погрузиться в реализацию.

1 ответ

Если вы хотите использовать математическую морфологию в своей задаче, у вас есть два решения:

  1. Вы уже знаете ширину хвоста (приблизительно количество пикселей). Затем вы выполняете цилиндр со сравнимым размером, например, что только хвост обрезается в операции открытия и, следовательно, появляется в результате.
  2. Хвосты имеют разную ширину (слишком разные, чтобы приблизиться), тогда вы используете минимальный ответ ориентированных отверстий. Вы применяете много отверстий с ориентированным структурирующим элементом (но длина меньше, чем размер ядра клетки), и вы сохраняете минимальный ответ. Хвост исчезнет, ​​а затем вы вычтите это изображение в исходное.

Другое решение состоит в том, чтобы вычислить каркас клетки и карту расстояний. Если ваша клетка имеет хвост, то большее количество пикселей скелета будет находиться на небольшом расстоянии от границы.

Последнее решение заключается в использовании индекса формы. Обычно, как указано выше, соотношение между главной и малой осями достаточно. Но если ваша клетка действительно удлиненная и с закрученными хвостами, вы можете заменить этот индекс формы, используя соотношение между геодезическим диаметром и площадью (Coster and Chermant, 1985, Book): 4/Pi x S / D^2, с S поверхность и D геодезический диаметр.

Другие вопросы по тегам