Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

pmi432 / LR07 / 2read / из Журавеля / 05.4 Морфологические примеры

.pdf
Скачиваний:
63
Добавлен:
18.03.2015
Размер:
510 Кб
Скачать

Image Processing Toolbox

. 1

MATLAB.Exponenta

 

Семинары

Тренинги

Лицензирование

Материалы

 

Подписка

 

Форум

Регистрация

Matlab

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Toolboxes

 

 

 

 

Запрос цены

 

Пробная версия

 

Запрос демонстрации

 

Simulink

 

 

 

 

 

 

 

 

 

 

 

Blocksets

 

 

 

 

 

 

 

 

 

Вход

 

 

 

 

 

 

 

 

 

 

Полезное

 

 

 

 

 

 

 

 

 

 

 

 

Визуализация изображений \ Image Processing Toolbox

Морфологические примеры

Создание структурного элемента

Структурные элементы

Важной составляющей при проведении морфологических операций наращивания и эрозии является выбор структурного элемента для обработки исходного изображения. Структурный элемент представляет собой определенного размера матрицу, состоящую из нулей и единиц. Пиксели со значением 1 определяют фон структурного элемента.

Двумерные или плоские структурные элементы, обычно значительно меньше по размеру за изображение, которое они обрабатывают. Центральный пиксель структурного элемента совпадает с обрабатываемым пикселем изображения. Остальные пиксели являются окрестностью и подлежат обработке.

Трехмерные или неплоские структурные элементы также состоят из единиц и нулей, но, кроме того, имеют значение высоты, которое определяет третью размерность.

Центр структурного элемента

Морфологическая функция использует приведенный ниже код для получения координат центра структурного элемента с некоторой размерностью.

origin = floor((size(nhood)+1)/2)

В этом коде nhood представляет собой окрестность некоторого структурного элемента. Структурный элемент представляет собой объект системы MATLAB, поэтому нельзя при таких вычислениях использовать объекты STREL. Для этого необходимо сначала использовать функцию getnhood для получения окрестности структурного элемента из STREL-объекта. Для более детальной информации см. описание функции strel.

Например, на изображении продемонстрировано ромбовидный структурный элемент.

Ромбовидный структурный элемент

При реализации морфологических функций наращивания и эрозии используется структурный элемент. Для создания структурных элементов любого размера и формы используется функция strel.

Примечание.

Выбор размера и формы структурного элемента зависит от особенностей обработки конкретного изображения.

Приведем пример создания ромбообразного структурного элемента.

se = strel('diamond',3) se =

Плоский STREL-объект содержит 25 соседних элементов.

Окрестность:

 

 

 

 

 

0

0

0

1

0

0

0

0

0

1

1

1

0

0

0

1

1

1

1

1

0

1

1

1

1

1

1

1

0

1

1

1

1

1

0

0

0

1

1

1

0

0

0

0

0

1

0

0

0

Декомпозиция структурного элемента

Для улучшения работы функция strel может представлять структурный элемент в виде меньших частей. Эта технология известна как декомпозиция структурного элемента.

Например, морфологическая операция наращивания с применением структурного элемента в виде квадрата с размерностью 11x11 может быть заменена проведением такой же операции, но с использованием сначала структурного элемента с размерностью 1x11, а потом структурного элемента с размерностью 11x1. Скорость обработки при этом теоретически должна увеличится в 5.5 раз, однако на практике этот немного ниже.

Декомпозиция на основе аппроксимации используется для структурных элементов в виде формы, которая представлена параметрами 'disk' и 'ball'. Все другие декомпозиции являются точными. Отметим, что декомпозиция может применятся не для всех структурных элементов.

Для просмотра последовательности структурных элементов, которые используются при декомпозиции, используется функция getsequence. Функция getsequence возвращает массив структурных элементов, которые используются при декомпозиции. Рассмотрим пример создания структурных элементов на основе декомпозиции ромбообразных структурных элементов.

sel = strel('diamond',4) sel =

Плоский STREL-объект содержит 41 элемент окрестности.

Декомпозиция: 3 STREL--объекта содержат вместе 13 элементов окрестности

http://matlab.exponenta.ru/imageprocess/book5/5_4.php

08.11.2012 0:51:15

Image Processing Toolbox

. 2

Окрестность:

 

 

 

 

 

 

 

0

0

0

0

1

0

0

0

0

0

0

0

1

1

1

0

0

0

0

0

1

1

1

1

1

0

0

0

1

1

1

1

1

1

1

0

1

1

1

1

1

1

1

1

1

0

1

1

1

1

1

1

1

0

0

0

1

1

1

1

1

0

0

0

0

0

1

1

1

0

0

0

0

0

0

0

1

0

0

0

0

seq = getsequence(sel) seq =

Массив STREL-объектов с размерностью 3x1

seq(1) ans =

Плоский STREL-объект, содержащий 5 элементов окрестности.

Окрестность:

 

0

1

0

1

1

1

0

1

0

eq(2) ns =

Плоский STREL-объект, содержащий 4 элемента окрестности.

Окрестность:

 

0

1

0

1

0

1

0

1

0

seq(3) ans =

Плоский STREL-объект, содержащий 4 элемента окрестности.

Окрестность:

 

 

 

0

0

1

0

0

0

0

0

0

0

1

0

0

0

1

0

0

0

0

0

0

0

1

0

0

Морфологическая операция раскрытия изображений

Для проведения морфологической операции раскрытия изображения используется функция imdilate. Эта функция требует ввода двух аргументов:

1.исходное изображение, которое необходимо обработать (полутоновое, бинарное или упакованное бинарное);

2.структурный элемент, который формируется функцией strel или бинарная матрица, которая определяет окрестность структурного элемента.

Функция imdilate может использовать также два необязательных аргумента: PADOPT и PACKOPT. Параметр PADOPT касается размеров результирующего изображения, а параметр PACKOPT идентифицирует упакованное исходное изображение как упакованное. (Упаковка является методом компрессии бинарных изображений, которая приводит у ускорению обработки изображений. Для более детальной информации см. описание функции bwpack.)

В этом примере рассмотрено морфологическую операцию наращивания бинарных изображений, которые содержат прямоугольные объекты.

BW = zeros(9,10);

 

 

 

 

 

 

 

 

BW(4:6,4:7) = 1

 

 

 

 

 

 

 

 

BW =

 

 

 

 

 

 

 

 

 

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

1

1

1

0

0

0

0

0

0

1

1

1

1

0

0

0

0

0

0

1

1

1

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Рассмотрим пример увеличения всех сторон структурного элемента. В качестве примера рассмотрим структурный элемент с размерностью 3x3.

SE = strel('square',3)

SE =

Окрестность:

 

1

1

1

1

1

1

1

1

1

Для выполнения морфологической операции наращивания изображения используем изображение BW и структурный элемент SE, а также функцию imdilate. Отметим, что морфологическая операция наращивания приводит к увеличению сторон объектов.

BW2 = imdilate(BW,SE)

http://matlab.exponenta.ru/imageprocess/book5/5_4.php

08.11.2012 0:51:15

Image Processing Toolbox

. 3

Морфологическая операция эрозии изображений

Для выполнения морфологической операции эрозии изображения используется функция imerode. Функция imerode требует ввода двух основных аргументов:

1.исходное изображение, которое подлежит обработке (полутоновое, бинарное или упакованное бинарное изображение)

2.структурный элемент, который возвращается функцией strel или представлен в виде бинарной матрицы

Функция imerode работает также с тремя необязательными аргументами: PADOPT, PACKOPT и M.

Параметр PADOPT связан с размерами результирующего изображения. Параметр PACKOPT идентифицирует исходное изображение как упакованное. Если изображение упакованное, тогда параметр M указывает число строк в исходном изображении. (Упаковка является одним из методов компрессии бинарных изображений, который способствует ускорению их обработки. Для более детальной информации см. описание функции bwpack.)

Рассмотрим пример использования морфологической операции эрозии на основе бинарного изображения circbw.tif:

1. Считывание изображения в рабочее пространство MATLAB.

BW1 = imread('circbw.tif');

2.Создание структурного элемента. Рассмотрим формирование диагонального структурного элемента.

SE = strel('arbitrary',eye(5)); SE=

Окрестность:

 

 

 

1

0

0

0

0

0

1

0

0

0

0

0

1

0

0

0

0

0

1

0

0

0

0

0

1

3. Функция imerode использует изображение BW и структурный элемент SE в качестве аргумента.

BW2 = imerode(BW1,SE);

4.Следует отметить диагональные полосы на изображении с правой стороны. Это объясняется формой структурного элемента.

imshow(BW1) figure, imshow(BW2)

Комбинация морфологических операций наращивания и эрозии

Морфологические операции наращивания и эрозии часто используются с другими подходами при обработке изображений. Например, морфологическая операция раскрытия изображений представляет собой операцию эрозии с последующей операцией наращивания с использованием одного и того же структурного элемента для обеих операций. А похожая операция морфологического закрытия является реверсной по отношению к предыдущей: она состоит в проведении морфологической операции наращивания и последующей морфологической операции эрозии с использованием одного и того же структурного элемента.

Рассмотрим применение функций imdilate и imerode для иллюстрации реализации морфологической функции раскрытия. Отметим, что приложение уже включает функцию imopen, которая выполняет обработку такого рода. Кроме этой функции приложение включает еще несколько функций морфологической обработки.

Морфологическая операция раскрытия

Морфологическая операция раскрытия может использоваться для удаления небольших объектов на изображении. Большие объекты изображения в этом случае обработке не подлежат и сохраняют свою форму и размер. Рассмотрим пример удаления линий на изображении circbw.tif. На результирующем изображении должны остаться только прямоугольные формы микрочипов.

Для реализации морфологической операции раскрытия изображений выполним следующие действия:

1. Считывание изображение в рабочее пространство MATLAB.

http://matlab.exponenta.ru/imageprocess/book5/5_4.php

08.11.2012 0:51:15

Image Processing Toolbox

. 4

BW1 = imread('circbw.tif');

2.Формирование структурного элемента.

SE = strel('rectangle',[40 30]);

3.Размеры структурного элемента должны быть достаточными для того, чтобы удалить линии и не удалять прямоугольники.

4.Морфологическая операция эрозии с использованием структурного элемента.

BW2 = imerode(BW1,SE); imshow(BW2)

При удалении всех линий форма прямоугольников уменьшается.

5.Для восстановления прежних размеров прямоугольника используются морфологические операции наращивания и эрозии с использованием структурного элемента SE.

BW3 = imdilate(BW2,SE); imshow(BW3)

Морфологическая операция заливки отверстий

Функция imfill выполняет операцию заливки бинарных и полутоновых изображений. Для бинарных изображений функция imfill изменяет связь между пикселями фона и объекта и останавливается при достижении границ. Для полутоновых изображений функция imfill значения интенсивностей в темных областях, которые окружены светлыми областями, увеличивает до уровня светлых областей. В результате удаляются локальные минимумы, которые не связаны с границами изображений Эта операция может быть полезна для удаления неуместных артефактов на изображении.

Далее рассмотрим следующие вопросы:

1.Описание связности для операции заполнения отверстий

2.Описание начальной точки бинарного изображения при операции заполнения отверстий

3.Заполнение отверстий бинарного или полутонового изображений

Описание связности

Для бинарного и полутонового изображений предел функции наполнения определяется описанной связностью.

Примечание.

Функция imfill отличается от других объектно-ориентированных операций тем, что она обрабатывает пиксели фона. При описании связности в функции imfill речь идеи о связности фона, а не его объектов.

http://matlab.exponenta.ru/imageprocess/book5/5_4.php

08.11.2012 0:51:15

Image Processing Toolbox

. 5

Рассмотрим результат применения связности.

BW = [ 0

0

0

0

0

0

0

0;

0

1

1

1

1

1

0

0;

0

1

0

0

0

1

0

0;

0

1

0

0

0

1

0

0;

0

1

0

0

0

1

0

0;

0

1

1

1

1

0

0

0;

0

0

0

0

0

0

0

0;

0

0

0

0

0

0

0

0];

Если фон является 4-связным, тогда бинарное изображение содержит два разных типа фоновых элементов (внутренняя замкнутая часть и внешняя). Если фон является 8-связным, тогда пиксели связаны по диагонали и там есть только один элемент фона.

Описание начальной точки

Для бинарных изображений существует возможность описания начала начальной точки при выполнении операции заполнения с помощью функции imfill. Выбор начальной точки может выполняться с помощью мыши. Для более детальной информации см. описание функции imfill.

Рассмотрим пример. При вызове функции imfill и указании пикселя BW(4,3) в качестве стартового, будут заполняться только внутренние пространства, поскольку фон, по умолчанию является 4-связным.

imfill(BW,[4 3])

ans =

 

 

 

 

 

 

 

0

0

0

0

0

0

0

0

0

1

1

1

1

1

0

0

0

1

1

1

1

1

0

0

0

1

1

1

1

1

0

0

0

1

1

1

1

1

0

0

0

1

1

1

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

При описании параметров начальной точки и 8-связности фона, функция imfill будет заполнять изображение полностью.

imfill(BW,[4 3],8)

ans =

 

 

 

 

 

 

 

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

Заливка отверстий

Рассмотрим заполнение отверстий на изображениях. Для примера рассмотрим изображение, бинарное или полутоновое, на переднем плане которого размещены объекты в виде сферы. После некоторой обработки изображения, используем функцию imfill для заливки отверстий.

Функция imfill включает возможности обработки как бинарных, так и полутоновых изображений. Если при применении этой функции не указывается начальная точка в каждом отверстии, тогда необходимо указать аргумент 'holes'.

Для иллюстрации работы функции imfill рассмотрим пример заливки отверстий на полутоновом изображении спинного хребта.

[X,map] = imread('spine.tif'); I = ind2gray(X,map);

Ifill = imfill(I,'holes'); imshow(I);figure, imshow(Ifill)

Поиск пиков и впадин

Полутоновые изображения могут быть представлены в виде трехмерных данных: координаты x и y представляют расположение пикселя, а координата z - его интенсивность. Согласно этой интерпретации интенсивность можно представить в виде некоторой возвышенности как на топографической карте.

Для примера рассмотрим изображение некоторого сферического объекта, точки максимальной интенсивности которого представляют вершины объекта. Используем морфологическую обработку, а также функцию maxima для идентификации объектов на изображении.

Основные шаги этого примера следующие:

Терминология

Анализ функций максимума и минимума

Поиск областей высокой и низкой интенсивностей

Подавление минимумов и максимумов Обработка минимумов

http://matlab.exponenta.ru/imageprocess/book5/5_4.php

08.11.2012 0:51:15

Image Processing Toolbox

. 6

Терминология

Рассмотрим некоторые термины.

Термин

Определение

 

 

 

 

Глобальный

Наибольший локальный максимум на изображении. См. информацию о локальном максимуме в этой

максимум

таблице.

 

 

 

 

Глобальный

Наименьший локальный минимум на изображении. См. информацию о локальном минимуме в этой

минимум

таблице.

 

 

 

 

Локальный максимум

Наибольшее значение пикселя в некоторой окрестности.

 

 

 

 

Локальный минимум

Наименьшее значение пикселя в некоторой окрестности.

 

 

 

 

Анализ функций максимума и минимума

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

Рассмотрим это на примере одномерного сигнала.

Поиск областей пикселей с наибольшей и наименьшей интенсивностью

Приложение располагает некоторыми функциями, которые могут использоваться для поиска областей пикселей с наибольшей и наименьшей интенсивностью на изображении:

1.Функции imregionalmax и imregionalmin идентифицируют все локальные минимумы и максимумы.

2.Функции imextendedmax и imextendedmin идентифицируют все локальные минимумы и максимумы, которые больше или меньше некоторого порога.

Эти функции захватывают полутоновое изображение в качестве исходного и возвращают бинарное изображение. Результирующее бинарное изображение в точках расположения максимумов или минимумов устанавливает 1; все остальные пиксели изображения равны 0.

Рассмотрим пример, в котором изображение содержит два основных локальных максимума в виде блоков пикселей со значением 13 и 18 и несколько меньших локальных максимумов в виде пикселей со значением 11.

Бинарное изображение, которое возвращается функцией imregionalmax, содержит расположение всех локальных максимумов.

B = imregionalmax(A)

Также существует возможность идентификации областей изображения с большим изменением интенсивностей. Для этого сначала вычисляется разница между значениями пикселей, а потом поводится сравнение с некоторым заданным порогом. Например, для поиска локальных максимумов на изображении, которые как минимум на два отсчета по интенсивности больше, чем интенсивность окрестности, используется функция imextendedmax.

B = imextendedmax(A,2)

http://matlab.exponenta.ru/imageprocess/book5/5_4.php

08.11.2012 0:51:15

Image Processing Toolbox

. 7

Подавление минимумов и максимумов

На изображении небольшие флуктуации интенсивностей могут восприниматься как локальные максимумы или минимумы. В самом же деле они представляют собой фоновую текстуру.

Для удаления мене значимых минимумов и максимумов при сохранении достаточно значимых максимумов и минимумов, применяются функции imhmax или imhmin. Используя эти функции, необходимо указать критерий контраста или значение порога h, при котором будут подавляться все максимумы, которые меньше, чем h или минимумы, которые больше, чем h.

Примечание.

Функции imregionalmin, imregionalmax, imextendedmin и imextendedmax возвращают результат в виде бинарного изображения, с отмеченными местами расположения локальных минимумов и максимумов на изображении. Функции imhmax и imhmin работают с уже измененным изображением.

Рассмотрим пример. Некоторое изображение содержит два основных локальных максимума, которые представлены в виде блоков пикселей со значениями 14 и 18, а также несколько меньших максимумов со значением пикселей 11.

Для устранения всех локальных максимумов, за исключением двух наиболее значительных, используем функцию imhmax и порог со значением 2. Отметим, что функция imhmax подвергает обработке только максимумы, не изменяя значений других пикселей. Таким образом, на изображении останется только два локальных максимума.

B = imhmax(A,2)

На рисунке внизу показано профиль на уровне второй строки изображения до и после применения функции imhmax.

Обработка минимумов

Для того, чтобы выделить минимумы (темные объекты) на изображении используется функция imimposemin. Функция imimposemin использует морфологическую реконструкцию для удаления всех минимумов на изображении за исключением тех, которые были отмечены.

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

mask = uint8(10*ones(10,10)); mask(6:8,6:8) = 2;

http://matlab.exponenta.ru/imageprocess/book5/5_4.php

08.11.2012 0:51:15

Image Processing Toolbox

. 8

mask(2:4,2:4) = 7; mask(3,3) = 5; mask(2,9) = 9 mask(3,8) = 9 mask(9,2) = 9 mask(8,3) = 9

Создание маркерного изображения

Для получения изображения, на котором будут присутствовать только два основных минимума, а все остальные будут удалены, создадим маркерное изображение, в котором будет отражена информация о двух интересующих нас минимумах. При создании маркерного изображения существует возможность точно установить пиксели для того, чтобы описать значения или для обработки другими морфологическими функциями с целью получить отмеченные свойства на маскированном изображении.

В этом примере используется функция imextendedmin для получения бинарного изображения, на котором показано расположение двух наиболее значимых минимумов.

marker = imextendedmin(mask,1)

Применение маркерного изображения для формирования маски

Используем функцию imimposemin для формирования новых минимумов на маскирующем изображении на основе точек, которые отмечены на маркерном изображении. Отметим, что функция imimposemin устанавливает значения пикселей на основе данных, которые содержаться в маркерном изображении. Функция imimposemin также может изменять значения пикселей на изображении для устранения других минимумов.

I = imimposemin(mask,marker)

 

 

 

 

 

 

I =

 

 

 

 

 

 

 

 

 

11

11

11

11

11

11

11

11

11

11

11

8

8

8

11

11

11

11

11

11

11

8

0

8

11

11

11

11

11

11

11

8

8

8

11

11

11

11

11

11

11

11

11

11

11

11

11

11

11

11

11

11

11

11

11

0

0

0

11

11

11

11

11

11

11

0

0

0

11

11

11

11

11

11

11

0

0

0

11

11

11

11

11

11

11

11

11

11

11

11

11

11

11

11

11

11

11

11

11

11

На рисунках на примере профиля второй строки изображения показано какие изменения вносятся функцией imimposemin.

http://matlab.exponenta.ru/imageprocess/book5/5_4.php

08.11.2012 0:51:15

Image Processing Toolbox

. 9

Обработка минимумов

Просмотр матрицы меток

Маркировка связных компонент

Функции bwlabel и bwlabeln выполняют маркировку связных компонент в методе идентификации объектов на бинарном изображении. Функция bwlabel поддерживает только двумерные исходные данные; а функция bwlabeln поддерживает исходные данные любой размерности.

Эти функции возвращают матрицу, которая называется матрицей меток. Матрица меток представляется в виде изображения, размеры которого совпадают с исходным, а представление объектов на результирующей матрице маркируется разными значениями интенсивностей. Например, функция bwlabel может идентифицировать объекты на бинарном изображении.

BW = [0

0

0

0

0

0

0

0;

0

1

1

0

0

1

1

1;

0

1

1

0

0

0

1

1;

0

1

1

0

0

0

0

0;

0

0

0

1

1

0

0

0;

0

0

0

1

1

0

0

0;

0

0

0

1

1

0

0

0;

0

0

0

0

0

0

0

0];

X = bwlabel(BW,4)

 

 

 

 

 

 

X =

 

 

 

 

 

 

 

0

0

0

0

0

0

0

0

0

1

1

0

0

3

3

3

0

1

1

0

0

0

3

3

0

1

1

0

0

0

0

0

0

0

0

2

2

0

0

0

0

0

0

2

2

0

0

0

0

0

0

2

2

0

0

0

0

0

0

0

0

0

0

0

На результирующем изображении пикселями со значением 1 представлен первый объект, пикселями со значением 2 - второй, а пикселями со значением 3 - третий.

Просмотр матрицы меток

Матрица меток, которая возвращается функциями bwlabel или bwlabeln представлена в формате double; она не является бинарным изображением. Один из путей просмотра заключается в ее визуализации в виде псевдоцветного индексного изображения с помощью функции label2rgb. На псевдоцветном изображении каждое число, которое идентифицирует объект в матрице меток используется в качестве значения индекса в соответствующей палитре. Преимуществом визуализации матрицы меток в виде псевдоцветного изображения является хорошая различимость объектов.

Для иллюстрации этой технологии рассмотрим пример использования функции label2rgb для просмотра матрицы меток X.

При использовании функции label2rgb применяется одна стандартная палитра MATLAB jet. Третий аргумент 'k' описывает цвет фона (черный).

X = bwlabel(BW1,4);

RGB = label2rgb(X, @jet, 'k'); imshow(RGB,'notruesize')

http://matlab.exponenta.ru/imageprocess/book5/5_4.php

08.11.2012 0:51:15

Image Processing Toolbox

. 10

Использование цвета для различия объектов на бинарном изображении

Выбор объектов на бинарном изображении

Для выбора некоторых объектов на бинарном изображении используется функция bwselect. Если предварительно обозначить пиксели на исходном изображении, то функция bwselect возвращает бинарное изображение, которое включает только те объекты исходного изображения, которые содержат отмеченные пиксели.

Существует возможность описания пикселей одним из двух способов - не интерактивно или с помощью мыши. Например, для того, чтобы выбрать объект на изображении, необходимо использовать следующий код

BW2 = bwselect;

Курсор изменит свою форму на крестик когда будет размещен над изображением. Далее щелчками выбирает нужные объекты, а функция bwselect обозначит их маленькой звездочкой. После этого необходимо нажать клавишу Return. Функция bwselect возвратит бинарное изображение, на котором будут присутствовать отмеченные ранее объекты (за исключением звездочек).

Для более детальной информации см. описание функции bwselect.

Поиск площадей объектов на бинарном изображении

Функция bwarea возвращает площадь некоторых областей на бинарном изображении. В большинстве случаев речь идет о площади объектов переднего плана. Грубо говоря, площадь представляется числом пикселей, которые отображают данные объекты. Но такой подсчет является приблизительным.

При вычислении площади все изображение разбивается на 16 различных по форме перекрывающихся окон с размером 2x2. Далее проводятся вычисления по соответствующей формуле.

Однако при вычислении площади следует помнить, что площадь (в пикселях), например, одного и того же прямоугольника, который размещен под углом 45º и вертикально (или горизонтально), будет отличаться.

BW = imread('circbw.tif'); SE = ones(5);

BW2 = imdilate(BW,SE);

increase = (bwarea(BW2) - bwarea(BW))/bwarea(BW); increase =

0.3456

Для более детальной информации см. описание функции bwarea.

Вычисление числа Эйлера бинарного изображения

Функция bweuler вычисляет для бинарного изображения число Эйлера. Число Эйлера является топологической характеристикой изображения. Оно равно числу объектов на изображении минус количество дыр в этих объектах. Второй аргумент указывает на критерий связности окрестности.

Рассмотрим пример вычисления числа Эйлера на изображении, используя 8-связную окрестность.

BW1 = imread('circbw.tif'); eul = bweuler(BW1,8)

eul =

-85

В этом примере число Эйлера получилось отрицательным, поскольку число отверстий больше числа объектов на изображении.

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

III Всероссийская научная конференция «Проектирование научных и инженерных приложений в среде MATLAB» (октябрь 2007 г.) IV Всероссийская научная конференция «Проектирование научных и инженерных приложений в среде MATLAB» (май 2009 г.)

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

На первую страницу \ Сотрудничество \ MathWorks \ Softline \ Контакты \ Вакансии

Информация на сайте была обновлена 21.04.12

Copyright 2001–2012 Softline Co

Наши баннеры

 

подарки – подарочные сертификаты

http://matlab.exponenta.ru/imageprocess/book5/5_4.php

08.11.2012 0:51:15