Скачиваний:
4
Добавлен:
02.05.2014
Размер:
33.24 Кб
Скачать

Список функций Image Processing Toolbox. Описание функции BWBOUNDARIES  Семинары   Обучение   Лицензирование   Разработка   Подписка   Форум  Регистрация    Matlab    Toolboxes    Simulink    Blocksets    Femlab    Полезное Вход Обработка сигналов и изображений\image Processing ToolboxСписок функций Image Processing Toolbox: Сегментация изображений

  В оглавление \ К следующему разделу \ К предыдущему разделу

BWBOUNDARIES Отслеживание локальных границ на бинарном изображении Синтаксис:

B=bwboundaries(BW) B=bwboundaries(BW, CONN) B=bwboundaries(BW, CONN, options) [B L]=bwboundaries(...) [B L N A]=bwboundaries() Описание:

Функция B=bwboundaries(BW) отслеживает наружные границы объекта на бинарном изображении BW. Функция bwboundaries позволяет обрабатывать различные объекты, в том числе объекты, которые являются включенными в другие объекты. Исходный массив BW должен быть бинарным изображением, где ненулевые пиксели соответствуют объекту, а нулевые - фону. Рисунок внизу демонстрирует возможные варианты расположения объектов.

Функция bwboundaries возвращает массив B с размерностью Px1, где P является числом объектов и отверстий. Каждый элемент массива содержит матрицу с размерностью Qx2. Каждая строка этой матрицы содержит координаты строки и столбца граничного пикселя. Q является числом граничных пикселей соответствующей области.

Функция B=bwboundaries(BW, CONN) для определения границ объектов, которые находятся внутри других объектов, использует описание связности. Параметр связности CONN может принимать следующие скалярные значения.

CONN Описание 4 4-связная окрестность 8 8-связная окрестность. Устанавливается по умолчанию. Функция B=bwboundaries(BW, CONN, options) при обработке использует аргумент options, который может принимать одно из следующих значений.

option Описание 'holes' Поиск для обоих объектов и границ отверстий. 'noholes' Поиск только границ объекта (внешнего и внутреннего). Этот параметр обеспечивает улучшенную обработку. Функция [B, L]=bwboundaries(...) возвращает матрицу меток L в качестве второго дополнительного аргумента. Объекты и отверстия являются мечеными. Параметр L представляет собой двумерный массив неотрицательных целых чисел, которые отображают соседние окрестности. Число объектов и отверстий, представленных в L равно max(L(:)). Нулевые значения элементов соответствуют фону.

Функция [B, L, N, A]=bwboundaries(...) возвращает N - число используемых объектов, A - смежные матрицы. Первые N элементов в B являются границами объекта. Массив A описывает объект, вложенный в объект. A - это квадратная разреженная логическая матрица со стороной длиною max(L(:)), чьи строки и столбцы описывают позиции границ, хранящихся в B.

Закрытые границы B{m} могут быть найдены с использованием A следующим образом:

enclosing_boundary=find(A(m,:));

enclosed_boundaries=find(A(:,m));

Требования к исходным данным.

BW должен быть не разреженным двумерным логическим или числовым массивом вещественных чисел. Данные L и N имеют формат представления данных double. Массив A является логическим и разреженным.

Примеры.

Пример 1.

Считаем и обработаем методом пороговой бинаризации полутоновое изображение. Отобразим отмеченные объекты с использованием colormap, на сером фоне белым отображены границы.

I=imread('rice.png'); BW=im2bw(I, graythresh(I)); [B, L]=bwboundaries(BW, 'noholes'); imshow(label2rgb(L, @jet, [.5 .5 .5])) hold on for k=1:length(B) boundary = B{k}; plot(boundary(:, 2), boundary(:, 1), 'w', 'LineWidth', 2) end Пример 2. Считаем и отобразим на мониторе бинарное изображение. Поверх изображения отобразим контуры объектов. Отобразим также текст, показывая номер области (на основании матрицы меток). Дополнительно отобразим смежные матрицы с использованием функций MATLAB.

Часто изображения отображают с использованием инструмента zoom и считывания индивидуальных меток.

BW=imread('blobs.png'); [B, L, N, A]=bwboundaries(BW); imshow(BW); hold on; colors=['b' 'g' 'r' 'c' 'm' 'y']; for k=1:length(B), boundary=B{k}; cidx=mod(k, length(colors))+1; plot(boundary(:, 2), boundary(:, 1), colors(cidx), 'LineWidth',2); %randomize text position for better visibility rndRow=ceil(length(boundary)/(mod(rand*k, 7)+1)); col=boundary(rndRow, 2); row=boundary(rndRow, 1); h=text(col+1, row-1, num2str(L(row,col))); set(h, 'Color', colors(cidx), 'FontSize', 14, 'FontWeight', 'bold'); end figure; spy(A); Пример 3. Отобразим границы объекта красным, а отверстий зеленым цветом. BW=imread('blobs.png'); [B, L, N]=bwboundaries(BW); imshow(BW); hold on; for k=1:length(B), boundary = B{k}; if(k > N) plot(boundary(:,2), boundary(:,1), 'g','LineWidth',2); else plot(boundary(:,2), boundary(:,1), 'r','LineWidth',2); end end Пример 4. Отобразим границы внешнего объекта красным (пустая строка смежной матрицы соответствует объекту) и его отверстия зеленым цветом. BW=imread('blobs.png'); [B, L, N, A]=bwboundaries(BW); imshow(BW); hold on; for k=1:length(B), if(~sum(A(k, :))) boundary=B{k}; plot(boundary(:,2), boundary(:,1), 'r','LineWidth',2); for l=find(A(:,k))' boundary = B{l}; plot(boundary(:,2), boundary(:,1), 'g','LineWidth',2); end end end Сопутствующие функции: BWTRACEBOUNDARY, BWLABEL, BWLABELN.

  В оглавление \ К следующему разделу \ К предыдущему разделу

  I Всероссийская научная конференция "Проектирование научных и инженерных приложений в среде MATLAB" (май 2002 г.)

  II Всероссийская научная конференция "Проектирование научных и инженерных приложений в среде MATLAB" (май 2004 г.) На первую страницу \ Сотрудничество \ MathWorks \ SoftLine \ Exponenta.ru \ Exponenta Pro    E-mail: matlab@exponenta.ru      Информация на сайте была обновлена 14.05.05 Copyright 2001-2005 SoftLine Co 

Наши баннеры         hotlog_js="1.0"; hotlog_r=""+Math.random()+"&s=58396&im=33&r="+escape(document.referrer)+"&pg="+ escape(window.location.href); document.cookie="hotlog=1; path=/"; hotlog_r+="&c="+(document.cookie?"Y":"N"); hotlog_js="1.1";hotlog_r+="&j="+(navigator.javaEnabled()?"Y":"N") hotlog_js="1.2"; hotlog_r+="&wh="+screen.width+'x'+screen.height+"&px="+ (((navigator.appName.substring(0,3)=="Mic"))? screen.colorDepth:screen.pixelDepth) hotlog_js="1.3" hotlog_r+="&js="+hotlog_js; document.write("") >

Соседние файлы в папке Функции Image Toolbox