Знаходження радіуса r сфери, що перекривається, в 3D-зображенні


9

Моя поточна проблема:

  • У мене є вхідне 3D бінарне зображення (3D-матриця, яка має лише 0 і 1), що складається з випадкових чисел сфери з радіусом r.
  • Ми не знаємо, скільки сфер є на зображенні.
  • Усі сфери мають однаковий радіус r, але ми не знаємо радіус r.
  • Сфери на всьому місці зображень і можуть перекриватись одна однею.
  • Приклад зображення наведено нижче.

Моя вимога:

  • який радіус r?

В даний час я просто згладжую зображення, щоб позбутися осі z і виконувати виявлення ребер, і я намагаюся перетворити Hough за допомогою: http://rsbweb.nih.gov/ij/plugins/hough-circles.html

Однак, використовуючи Hough Transform, я бачу, що змінні мінімальний радіус, максимальний радіус та кількість кіл повинні бути вказані. Я спробував кілька спроб нижче:

відомий радіус

невідомий радіус

Враховуючи правильні параметри, Hough Transform може добре визначити кола. Але в реальному застосуванні я не знаю, скільки сфер існує, і зробити програму, яка намагається відгадати мінімальний і максимальний радіус, видається нездійсненною. Чи є інші способи досягти цього?

Перехресне посилання: /math/118815/finding-radius-r-of-the-overlappable-spheres-in-3d-image


Відредагуйте своє запитання та додайте опис формату вхідного зображення.

Формат вхідного зображення - це двійкове 3D зображення.
Карл

Ваша проблема здається недостатньо обмеженою, якщо ви не мали наміру сказати, що сфери не можуть перетинатися одна з одною.
ObscureRobot

Ні, сфери можуть накладатися один на одного. У найпростішому випадку жодна сфера взагалі не перекривається, але це не завжди так.
Карл

Відповіді:


9

Більш просте рішення та набагато більш обчислювально ефективніше порівняно з Hough Transform - використовувати перетворення відстані:

  • Знайдіть поверхню ваших сфер (тобто пікселів, які мають значення 1 і мають принаймні один сусідній 0 пікселів);
  • Обчисліть перетворення відстані відносно поверхні сфер, але обмежте обчислення лише на пікселях, які є внутрішніми до сфери. Виходом буде карта відстані;
  • Радіус буде точно максимальним значенням у вашій карті відстані.

Ще одна перевага цього рішення в порівнянні з перетворенням Хоффа полягає в тому, що воно забезпечує набагато більш точне значення для радіусу.


Але якщо дві сфери перетинаються, чи не максимум буде більшим відстанню від дальньої сторони однієї сфери до дальньої сторони іншої сфери?
ендоліт

1
@endolith Ні, оскільки значення перетворення відстані даного пікселя (вокселя) у цьому випадку відповідає відстані до найближчої поверхні сфери.
Alceu Costa

3

Трансформація Хауфа в загальному вигляді не вимагає здогадів у радіусі кіл, які ви шукаєте, ні скільки їх є. Можливо, вас введено в оману своїм джерелом. Перетворення може бути обчислювально дорогим у найбільш загальному вигляді; будь-яка наявна попередня інформація може зробити виконання алгоритму більш швидким і точним.

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

Зважаючи на цей радіус, ви, здається, у вас залишилася зламана решта проблеми, тому я більше не пишу.

Я бачу, що пояснення Вікіпедії щодо перетворення Хауґу також вказує на те, що його можна використовувати для пошуку 3D-об'єктів у 3D-зображеннях за умови, що ці об’єкти можуть бути параметризовані - яка сфера, безумовно, може бути.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.