Я разрабатываю инструмент, который позволяет вам крутить/заключать предметы на 3d-том. Я хочу сэкономить время, пометка «ломтиками» 1 и 3 и «заполнение» фрагмента 2 из этой информации.Интерполирование между двумя плоскостями в 3d-пространстве
Два простых решений являются:
1. slice2 = slice1 AND slice3 (gets the overlap between the two)
2. slice2 = slice2 OR slice3 (true for any pixel true in either image)
Это нормально и быстро, но я бы предпочел, чтобы сделать что-то более интеллектуальное, делая форму какого-то средней/интерполяции между ними. Вы можете представить это как попытку найти скалистое лицо, которое соединяет плоскость на уровне видения и какое-то плато в воздухе.
Пример: Заполните ломтиками 2-4 из этой 3d-матрицы. (Создано с использованием montage
)
Не стесняйтесь придумывать совершенно новые идеи. Я собираюсь высказать свои мысли до сих пор ниже.
Некоторые вещи, о которых я думал, могут помочь вам, ответчик, но что я не смог успешно использовать.
- Вы можете сделать bwperim для каждого изображения.
- Вы можете попробовать «усреднить» изображения (или средневзвешенное значение).
Лучшее, что я получил до сих пор:
Добавить изображения. Дает вам наложение и два периметра:
- внутренний периметр (внутри которого обязательно будет 1)
- и внешний периметр (внутри которого сомнительно).
Вы также можете замаскировать область, которая> 0 И < 2, которая является маской этой сомнительной области.
Запуск bwdist
на два-периметре изображения и маски, которые:
Не знаю, как идти дальше, хотя. Линия, которая приняла «максимальный» контур вдоль этой области, будет работать, но я не уверен, как это сделать.
Любые идеи по исправлению моей идеи или любых других идей приветствуются!
Спасибо.
Использование 'bwmorph (маски, 'Skel', инф) делает ОК ответ. Чтобы сделать эту работу, я бы применил ее к срезам [1 5], чтобы получить срез 3. Затем срезы [1 3], чтобы получить 2 ... – Frederick