bwskel

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

Описание

пример

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)

Figure contains an axes object. The axes object contains an object of type image.

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

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

Figure contains an axes object. The axes object contains an object of type image.

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

out = bwskel(BW);

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

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

Figure contains an axes object. The axes object contains an object of type image.

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

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

Figure contains an axes object. The axes object contains an object of type image.

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

BW1 = imread('circbw.tif');

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

BW2 = bwskel(BW1);

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

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

Figure contains an axes object. The axes object contains an object of type image.

Загрузите объемный набор данных в рабочую область. Именем набора данных является 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