bwskel

Уменьшайте все объекты до строк в 2D двухуровневом изображении или 3-D бинарном объеме

Синтаксис

B = bwskel(A)
B = bwskel(V)
B = bwskel(___,'MinBranchLength',N)

Описание

пример

B = bwskel(A) уменьшает все объекты в 2D двухуровневом изображении A к кривым линиям 1 пиксель шириной, не изменяя существенную структуру изображения. Этот процесс, названный skeletonization, извлекает среднюю линию при сохранении топологии и Числа Эйлера объектов.

пример

B = bwskel(V) возвращает скелет 3-D бинарного объема.

пример

B = bwskel(___,'MinBranchLength',N) задает минимальную продолжительность ответвления N скелета. bwskel удаляет (сокращает) все ответвления короче, чем заданная длина. bwskel вычисляет длину как количество пикселей в ответвлении, использующем с 8 возможностями соединения для 2D и с 26 возможностями соединения для 3-D.

Примеры

свернуть все

Считайте 2D полутоновое изображение в рабочую область. Отобразите изображение. Предметы интереса являются темными потоками против светлого фона.

I = imread('threads.png');
imshow(I)

Скелетирование требует двухуровневого изображения, в котором приоритетными пикселями является (белый) 1, и фоном является (черный) 0. Чтобы сделать оригинальное изображение подходящим для скелетирования, возьмите дополнение изображения так, чтобы объекты были легки, и фон является темным. Затем binarize результат.

Icomplement = imcomplement(I);
BW = imbinarize(Icomplement);
imshow(BW)

Выполните скелетирование двухуровневого изображения с помощью bwskel.

out = bwskel(BW);

Отобразите скелет по оригинальному изображению при помощи функции labeloverlay. Скелет появляется как голубая строка 1 пиксель шириной по темным потокам.

imshow(labeloverlay(I,out,'Transparency',0))

Сократите маленькие шпоры, которые появляются на скелете и просматривают результат. Одно короткое ответвление сокращено от потока около центра изображения.

out2 = bwskel(BW,'MinBranchLength',15);
imshow(labeloverlay(I,out2,'Transparency',0))

Считайте двухуровневое изображение в рабочую область.

BW1 = imread('circbw.tif');

Скелетонайз возражает в изображении с помощью функции bwskel.

BW2 = bwskel(BW1);

Просмотрите оригинальное изображение и изображение skeletonized рядом.

montage({BW1,BW2},'BackgroundColor','blue','BorderSize',5)

Загрузите объемный набор данных в рабочую область. Именем набора данных является spiralVol. Отобразите объем с помощью volshow.

load spiralVol.mat;
volshow(spiralVol);

Преобразуйте набор данных spiralVol в двоичный формат, который требуется функцией bwskel.

spiralVolLogical = imbinarize(spiralVol);

Skeletonize спиральная форма в наборе данных. Отобразите skeletonized объем с volshow.

spiralVolSkel = bwskel(spiralVolLogical);

.

Входные параметры

свернуть все

Двухуровневое изображение, заданное как 2D логический массив.

Типы данных: логический

3-D бинарный объем, заданный как 3-D логический массив.

Типы данных: логический

Минимальная продолжительность ответвления, заданная как неотрицательное целое число. чернослив bwskel переходит короче, чем N. По умолчанию bwskel не сокращает ответвления.

Выходные аргументы

свернуть все

Изображение Skeletonized или объем, возвращенный как 2D или 3-D логический массив, одного размера как входное изображение или объем.

Советы

  • В то время как и bwskel и bwmorph могут skeletonize 2D изображения, вы можете получить различные результаты с помощью bwmorph чем тогда, когда с помощью bwskel. Поскольку они используют различные алгоритмы, использование функции bwskel, с 4 возможностями соединения с 2D изображениями; использование bwmorph, с 8 возможностями соединения.

  • bwskel принимает, что основные объекты в двухуровневом изображении являются белыми (логический true). Если ваше изображение имеет белый фон и черные объекты, то используйте дополнение своего изображения как вход к bwskel. Можно вычислить дополнение с помощью imcomplement.

Алгоритмы

  • Использование функции bwskel средняя ось преобразовывает.

Ссылки

[1] Та-Чих Ли, Рэнгасами Л. Кэшьяп и Чон-Нэм Чу. Создавание скелетных моделей с помощью 3-D средних алгоритмов утончения поверхности/оси. Компьютерное зрение, Графика и Обработка изображений, 56 (6):462-478, 1994.

[2] Kerschnitzki, M, Kollmannsberger, P, Burghammer, M. и др. Архитектура сети остеоцита коррелирует с качеством материала кости. Журнал Кости и Минерального Исследования, 28 (8):1837-1845, 2013.

Введенный в R2018a