exponenta event banner

bwareaopen

Удаление небольших объектов из двоичного изображения

Описание

пример

BW2 = bwareaopen(BW,P) удаляет все подключенные компоненты (объекты), имеющие менее P пикселы из двоичного изображения BW, создавая другое двоичное изображение, BW2. Эта операция называется проемом области.

BW2 = bwareaopen(BW,P,conn) удаляет все подключенные компоненты, где conn задает требуемое соединение.

Примеры

свернуть все

Чтение двоичного изображения.

BW = imread('text.png');

Удаление объектов, содержащих менее 50 пикселей с помощью bwareaopen функция.

BW2 = bwareaopen(BW, 50);

Отображение исходного изображения рядом с морфологически открытым изображением.

imshowpair(BW,BW2,'montage')

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

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

свернуть все

Двоичный образ, заданный как логический или числовой массив любого измерения.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

Максимальное количество пикселов в объектах, указанное как неотрицательное целое число.

Пример: 50

Типы данных: double

Пиксельная связность, указанная как одно из значений в этой таблице. Подключение по умолчанию: 8 для 2-D изображений, и 26 для 3-D изображений.

Стоимость

Значение

Двумерные связи

4-подключенные

Пикселы соединяются, если их края соприкасаются. Два соседних пикселя являются частью одного и того же объекта, если они оба включены и соединены вдоль горизонтального или вертикального направления.

8-подключенных

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

Трехмерные связи

6-подключенных

Пиксели соединяются, если их лица соприкасаются. Два соседних пикселя являются частью одного и того же объекта, если они оба включены и соединены в:

  • Одно из этих направлений: внутрь, наружу, влево, вправо, вверх и вниз

18-подключенных

Пикселы соединяются, если их грани или края соприкасаются. Два соседних пикселя являются частью одного и того же объекта, если они оба включены и соединены в

  • Одно из этих направлений: внутрь, наружу, влево, вправо, вверх и вниз

  • Комбинация двух направлений, например, вправо вниз или вверх

26-подключенных

Пикселы соединяются, если их грани, края или углы соприкасаются. Два соседних пикселя являются частью одного и того же объекта, если они оба включены и соединены в

  • Одно из этих направлений: внутрь, наружу, влево, вправо, вверх и вниз

  • Комбинация двух направлений, например, вправо вниз или вверх

  • Комбинация трех направлений, таких как «справа вверх» или «слева вниз»

Для более высоких размеров bwareaopen использует значение по умолчанию conndef(ndims(BW),'maximal').

Связность также можно определить более общим образом для любого измерения, указав 3 на 3 -... -по-3 матрицы 0s и 1с. 1-значимые элементы определяют расположения окрестностей относительно центрального элемента conn. Обратите внимание, что conn должен быть симметричным относительно его центрального элемента. Дополнительные сведения см. в разделе Определение пользовательских подключений.

Типы данных: double | logical

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

свернуть все

Изображение с открытой областью, возвращаемое в виде логического массива того же размера, что и BW.

Алгоритмы

Основные шаги:

  1. Определите подключенные компоненты:

    CC = bwconncomp(BW, conn);
  2. Вычислите площадь каждого компонента:

    S = regionprops(CC, 'Area');
  3. Удалить небольшие объекты:

    L = labelmatrix(CC);
    BW2 = ismember(L, find([S.Area] >= P));
    

Расширенные возможности

..

См. также

|

Представлен до R2006a