regionprops

Измерьте свойства областей изображений

Описание

пример

stats = regionprops(BW,properties) возвращает измерения для набора свойств для каждого связанного с 8 компонента (объект) в бинарном изображении, BW. Можно использовать regionprops на непрерывных областях и несмежных областях (см. Больше О).

Примечание

Чтобы возвратить измерения 3-D объемного изображения, рассмотреть использование regionprops3. В то время как regionprops может принять 3-D изображения, regionprops3 вычисляет больше статистики для 3-D изображений, чем regionprops.

Для всех синтаксисов, если вы не задаете properties аргумент, затем regionprops возвращает 'Area'центроид, и 'BoundingBox' измерения.

stats = regionprops(CC,properties) измеряет набор свойств для каждого связанного компонента (объект) в CC, который является структурой, возвращенной bwconncomp.

stats = regionprops(L,properties) измеряется набор свойств для каждой помеченной области в метке отображают L.

stats = regionprops(___,I,properties) возвращает измерения для набора свойств, заданных properties для каждой помеченной области в изображении I. Первый вход к regionprops (BWcc , или L) идентифицирует области в I.

пример

stats = regionprops(output,___) возвращает измерения для набора свойств, где output задает тип возвращаемого значения. regionprops может возвратить измерения в struct массив или table.

Примеры

свернуть все

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

BW = imread('text.png');

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

s = regionprops(BW,'centroid');

Сохраните x-и y-координаты центроидов в матрицу 2D столбца.

centroids = cat(1,s.Centroid);

Отобразите бинарное изображение с центроидными наложенными местоположениями.

imshow(BW)
hold on
plot(centroids(:,1),centroids(:,2),'b*')
hold off

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

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

a = imread('circlesBrightDark.png');

Превратите входное изображение в бинарное изображение.

bw = a < 100;
imshow(bw)
title('Image with Circles')

Вычислите свойства областей в изображении и возвратите данные в таблице.

stats = regionprops('table',bw,'Centroid',...
    'MajorAxisLength','MinorAxisLength')
stats=4×3 table
        Centroid        MajorAxisLength    MinorAxisLength
    ________________    _______________    _______________

     256.5     256.5        834.46             834.46     
       300       120        81.759             81.759     
    330.47    369.83        111.78             110.36     
       450       240        101.72             101.72     

Получите центры и радиусы кругов.

centers = stats.Centroid;
diameters = mean([stats.MajorAxisLength stats.MinorAxisLength],2);
radii = diameters/2;

Постройте круги.

hold on
viscircles(centers,radii);
hold off

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

свернуть все

Бинарное изображение в виде логического массива любой размерности.

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

Связанные компоненты в виде структуры, возвращенной bwconncomp.

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

Пометьте изображение в виде одного из следующих.

  • Числовой массив любой размерности. Пиксели пометили 0 фон. Пиксели пометили 1 составьте один объект; пиксели пометили 2 составьте второй объект; и так далее. regionprops обрабатывает пиксели с отрицательным знаком как фон и округляет в меньшую сторону входные пиксели, которые не являются целыми числами. Можно получить числовое изображение метки от маркировки функций такой как watershed или labelmatrix.

  • Категориальный массив. Каждая категория соответствует различной области.

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

Тип измерения в виде списка, разделенного запятыми строковых скаляров или векторов символов, массива ячеек строковых скаляров или векторов символов, или как 'all' или 'basic'.

  • Если вы задаете 'all', затем regionprops вычисляет все измерения формы и, для полутоновых изображений, измерения пиксельного значения также.

  • Если вы задаете 'basic', затем regionprops вычисляет только 'Area'центроид, и 'BoundingBox' измерения.

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

Сформируйте измерения

PropertyName ОписаниеПоддержка N-DПоддержка графического процессораГенерация кода
'Area'

Фактическое количество пикселей в области, возвращенной как скаляр. (Это значение может отличаться немного от значения, возвращенного bwarea, какие веса различные шаблоны пикселей по-другому.)

Чтобы найти эквивалент области 3-D объема, используйте 'Volume' свойство regionprops3.

ДаДаДа
'BoundingBox'

Положение и размер самого маленького поля, содержащего область, возвращенную как 1 на (2*Q) вектор. Первыми элементами Q являются координаты минимального угла поля. Вторыми элементами Q является размер поля по каждому измерению. Например, 2D ограничительная рамка со значением [5.5 8.5 11 14] указывает, что (x, y) координата верхнего левого угла поля (5.5, 8.5), горизонтальная ширина поля составляет 11 пикселей, и вертикальная высота поля составляет 14 пикселей.

ДаДаДа
'Centroid'

Центр массы области, возвращенной как 1 Q вектор. Первый элемент Centroid горизонтальная координата (или x-координата) центра массы. Вторым элементом является вертикальная координата (или y-координата). Все другие элементы Centroid в порядке размерности. Этот рисунок иллюстрирует центроидную и ограничительную рамку для несмежной области. Область состоит из белых пикселей; зеленое поле является ограничительной рамкой, и красная точка является центроидом.

ДаДаДа
'Circularity'

Округлость объектов, возвращенных как struct с полем Circularity. Struct содержит значение зацикливания для каждого объекта во входном изображении. Значение зацикливания вычисляется как (4*Area*pi)/(Perimeter2). Для A Perfect Circle значение зацикливания равняется 1. Вход должен быть матрицей метки или бинарным изображением с непрерывными областями. Если изображение содержит несмежные области, regionprops возвращает неожиданные результаты.

Примечание

Circularity не рекомендуется для очень маленьких объектов, таких как 3х3 квадрат. Для таких случаев результаты могут превысить значение зацикливания для A Perfect Circle.

2D толькоНетДа
'ConvexArea'Количество пикселей в 'ConvexImage', возвращенный как скаляр.2D толькоНетНет
'ConvexHull'Самый маленький выпуклый многоугольник, который может содержать область, возвратился как p-by-2 матрица. Каждая строка матрицы содержит x-и y-координаты одной вершины многоугольника.2D толькоНетНет
'ConvexImage'Отобразите, который задает выпуклую оболочку со всеми пикселями в заполненной оболочке (набор к on), возвратился как бинарное изображение (logical). Изображение является размером ограничительной рамки области. (Для пикселей, через которые контур оболочки проходит, regionprops использует ту же логику в качестве roipoly определить, является ли пиксель внутри или снаружи оболочки.) 2D толькоНетНет
'Eccentricity'Эксцентриситет эллипса, который имеет те же вторые моменты как область, возвратился как скаляр. Эксцентриситет является отношением расстояния между особым вниманием эллипса и его главной длины оси. Значение между 0 и 1. (0 и 1 вырожденные случаи. Эллипс, эксцентриситет которого 0, является на самом деле кругом, в то время как эллипс, эксцентриситет которого равняется 1, является линейным сегментом.)2D толькоДаДа
'EquivDiameter'Диаметр круга с той же областью как область, возвращенная как скаляр. Вычисленный как sqrt(4*Area/pi).2D толькоДаДа
'EulerNumber'Количество объектов в области минус количество отверстий в тех объектах, возвращенных как скаляр. Это свойство поддерживается только для 2D матриц метки. regionprops использует с 8 возможностями соединения, чтобы вычислить Число Эйлера (также известный как Эйлеровую характеристику). Чтобы узнать больше о возможности соединения, смотрите Пиксельную Возможность соединения.2D толькоНетДа
'Extent'Отношение пикселей в области к пикселям в общей ограничительной рамке, возвращенной как скаляр. Вычисленный как Area разделенный на область ограничительной рамки.2D толькоДаДа
'Extrema'

Extrema указывает в области, возвращенной как 8 2 матрица. Каждая строка матрицы содержит x-и y-координаты одной из точек. Форматом вектора является [top-left top-right right-top right-bottom bottom-right bottom-left left-bottom left-top]. Этот рисунок иллюстрирует экстремальное значение двух различных областей. В области слева, каждая экстремальная точка отлична. В области справа, определенные экстремальные точки (такие как top-left и left-top) идентичны.

2D толькоДаДа
'FilledArea'Количество on пиксели в FilledImage, возвращенный как скаляр.ДаНетДа
'FilledImage'

Отобразите тот же размер как ограничительная рамка области, возвращенной как двоичный файл (logicalМассив. on пиксели соответствуют области, со всеми заполненными отверстиями, как показано в этом рисунке.

ДаНетДа
'Image'Отобразите тот же размер как ограничительная рамка области, возвращенной как двоичный файл (logicalМассив. on пиксели соответствуют области, и всеми другими пикселями является off.ДаДаДа
'MajorAxisLength'Длина (в пикселях) главной оси эллипса, который имеет те же нормированные вторые центральные моменты как область, возвратилась как скаляр.2D толькоДаДа
'MaxFeretProperties'

Свойства Feret, которые включают максимальный диаметр Feret, его относительный угол, и координируют значения, возвратились как struct с полями:

Поле Описание
MaxFeretDiameterМаксимальный диаметр Feret измерился как максимальное расстояние между любыми двумя граничными точками на диаметрально противоположных вершинах выпуклой оболочки, которые заключают объект.
MaxFeretAngleУгол максимального диаметра Feret относительно горизонтальной оси изображения.
MaxFeretCoordinatesКоординаты конечной точки максимального диаметра Feret.

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

2D толькоНетНет
'MinFeretProperties'

Свойства Feret, которые включают минимальный диаметр Feret, его относительный угол, и координируют значения, возвратились как struct с полями:

Поле Описание
MinFeretDiameterМинимальный диаметр Feret измерился как минимальное расстояние между любыми двумя граничными точками на диаметрально противоположных вершинах выпуклой оболочки, которые заключают объект.
MinFeretAngleУгол минимального диаметра Feret относительно горизонтальной оси изображения.
MinFeretCoordinatesКоординаты конечной точки минимального диаметра Feret.

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

2D толькоНетНет
'MinorAxisLength'Длина (в пикселях) незначительной оси эллипса, который имеет те же нормированные вторые центральные моменты как область, возвратилась как скаляр.2D толькоДаДа
'Orientation'

Угол между осью X и главной осью эллипса, который имеет те же вторые моменты как область, возвратился как скаляр. Значение в градусах, в пределах от-90 градусов до 90 градусов. Этот рисунок иллюстрирует оси и ориентацию эллипса. Левая сторона фигуры показывает область изображений и ее соответствующий эллипс. Правая сторона показывает тот же эллипс с чисто синими линиями, представляющими оси. Красные точки являются особым вниманием. Ориентация является углом между горизонтальной пунктирной линией и главной осью.

2D толькоДаДа
'Perimeter'

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

2D толькоНетДа
'PixelIdxList'Линейные индексы пикселей в области, возвращенной как p - вектор элемента. ДаДаДа
'PixelList'Местоположения пикселей в области, возвращенной как p-by-Q матрица. Каждая строка матрицы имеет форму [x y z ...] и задает координаты одного пикселя в области.ДаДаДа
'Solidity'Пропорция пикселей в выпуклой оболочке, которые находятся также в области, возвратилась как скаляр. Вычисленный как Area/ConvexArea.2D толькоНетНет
'SubarrayIdx'Элементы L в объектной ограничительной рамке, возвращенной как массив ячеек, который содержит индексы, таким образом что L(idx{:}) извлекает элементы.ДаДаНет

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

Измерения пиксельного значения

PropertyName ОписаниеПоддержка N-DПоддержка графического процессораГенерация кода
'MaxIntensity'Значение пикселя с самой большой интенсивностью в области, возвращенной как скаляр.ДаДаДа
'MeanIntensity'Среднее значение всех значений интенсивности в области, возвращенной как скаляр.ДаДаДа
'MinIntensity'Значение пикселя с самой низкой интенсивностью в области, возвращенной как скаляр.ДаДаДа
'PixelValues'Количество пикселей в области, возвращенной как p-by-1 вектор, где p является количеством пикселей в области. Каждый элемент в векторе содержит значение пикселя в области.ДаДаДа
'WeightedCentroid'Центр области на основе местоположения и значения интенсивности, возвращенного как p-by-Q вектор из координат. Первый элемент WeightedCentroid горизонтальная координата (или x-координата) взвешенного центроида. Вторым элементом является вертикальная координата (или y-координата). Все другие элементы WeightedCentroid в порядке размерности. ДаДаДа

Типы данных: char | string | cell

Отобразите, чтобы быть измеренными в виде полутонового изображения. Размер изображения должен совпадать с размером бинарного изображения BW, связанная структура компонента CC, или метка отображает L.

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

Возвратите тип в виде любого из следующих значений.

ЗначениеОписание
'struct'Возвращает массив структур с длиной, равной количеству объектов в BWcc .NumObjects, или макс. (L(:)). Поля массива структур обозначают различные свойства для каждой области, как задано properties.
'table'

Возвращает a table с высотой (количество строк) равняются количеству объектов в BWcc .NumObjects, или макс. (L(:)). Переменные (столбцы) обозначают различные свойства для каждой области, как задано properties.

Типы данных: char | string

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

свернуть все

Значения измерения, возвращенные как массив структур или таблицы. Количество структур в массиве или количество строк в таблице равны количеству объектов в BW, CC.NumObjects, или max(L(:)). Поля каждого struct или переменных в каждой строке обозначают свойства, вычисленные для каждой области, как задано properties. Если входное изображение является категориальным изображением метки L, затем stats включает дополнительное поле или переменную со свойством 'LabelName'.

Больше о

свернуть все

Непрерывные области и несмежные области

Непрерывные области также называются objects, connected components или blobs. Изображение метки L содержание непрерывных областей может выглядеть так:

1 1 0 2 2 0 3 3
1 1 0 2 2 0 3 3

Элементы L равняйтесь 1, принадлежат первой непрерывной области или соединенному компоненту; элементы L равняйтесь 2, принадлежат второму связанному компоненту; и так далее.

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

1 1 0 1 1 0 2 2
1 1 0 1 1 0 2 2
Элементы L равняйтесь 1, принадлежат первой области, которая является несмежной и содержит два связанных компонента. Элементы L равняйтесь 2, принадлежат второй области, которая является одним связанным компонентом.

Советы

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

    cc = bwconncomp(BW); 
    stats = regionprops(cc,'Area','Eccentricity'); 
    idx = find([stats.Area] > 80 & [stats.Eccentricity] < 0.8); 
    BW2 = ismember(labelmatrix(cc),idx);  
    
  • Возможность соединения по умолчанию связана с 8 для 2D изображений и максимальной возможности соединения для более высоких размерностей. Чтобы задать возможность соединения не по умолчанию, использовать bwconncomp создать связанные компоненты и затем передать результат regionprops.

  • regionprops использует в своих интересах промежуточные результаты при вычислении связанных измерений. Поэтому это является самым быстрым, чтобы вычислить все желаемые измерения в одном вызове regionprops.

  • Большинство измерений занимает время, чтобы вычислить. Однако эти измерения могут занять больше времени, в зависимости от числа регионов в L:

    • 'ConvexHull'

    • 'ConvexImage'

    • 'ConvexArea'

    • 'FilledImage'

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

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