Измерьте свойства областей изображений
stats = regionprops(BW,properties)
stats = regionprops(CC,properties)
stats = regionprops(L,properties)
stats = regionprops(___,I,properties)
stats = regionprops(output,___)
возвращает измерения для набора свойств, заданных stats
= regionprops(BW
,properties
)properties
для каждого связанного с 8 компонента (объект) в двухуровневом изображении, BW
. stats
является массивом структур, содержащим struct для каждого объекта в изображении. Можно использовать regionprops
на непрерывных областях и несмежных областях (см. Алгоритмы).
Чтобы возвратить измерения 3-D объемного изображения, рассмотрите использование regionprops3
. В то время как regionprops
может принять 3-D изображения, regionprops3
вычисляет больше статистики для 3-D изображений, чем regionprops
.
Для всех синтаксисов, если вы не задаете аргумент properties
, затем regionprops
возвращает 'Area'
, 'Centroid'
и измерения 'BoundingBox'
.
Опционально можно измериться, свойства областей изображений 'ConvexArea'
, 'ConvexHull'
, 'ConvexImage'
, 'Circularity'
, 'EulerNumber'
, 'FilledArea'
, 'FilledImage'
, 'MaxFeretProperties'
, свойства 'MinFeretProperties'
и 'Solidity'
не поддержаны на графическом процессоре.
измеряет набор свойств для каждого связанного компонента (объект) в stats
= regionprops(CC
,properties
)CC
, который является структурой, возвращенной bwconncomp
.
Этот синтаксис не поддержан на графическом процессоре.
измеряет набор свойств для каждой маркированной области в матрице метки stats
= regionprops(L
,properties
)L
.
возвращает измерения для набора свойств, заданных stats
= regionprops(___,I
,properties
)properties
для каждой маркированной области в изображении I
. Первый вход к regionprops
(BW
, CC
или L
) идентифицирует области в I
.
Функциональный ismember
полезен с regionprops
, bwconncomp
, и labelmatrix
для создания двухуровневого изображения, содержащего только, возражает или области, которые соответствуют определенным критериям. Например, эти команды создают двухуровневое изображение, содержащее только области, область которых больше, чем 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);
Синтаксис списка, разделенного запятыми для массивов структур полезен, когда вы работаете с выводом regionprops
. Для поля, которое содержит скаляр, можно использовать этот синтаксис, чтобы создать вектор, содержащий значение этого поля для каждой области в изображении. Например, если stats
является массивом структур с полем Area
, то следующее выражение:
stats(1).Area, stats(2).Area, ..., stats(end).Area
эквивалентно:
stats.Area
Поэтому можно использовать эти вызовы, чтобы создать вектор, содержащий область каждой области в изображении. allArea
является вектором той же длины как массив структур stats
.
stats = regionprops(L, 'Area'); allArea = [stats.Area];
Функции bwlabel
, bwlabeln
и bwconncomp
все вычисляют соединенные компоненты для двухуровневых изображений. bwconncomp
заменяет использование bwlabel
и bwlabeln
. Это использует меньше памяти и иногда быстрее, чем другие функции.
Функция | Введите размерность | 'OutputForm' | Использование памяти | Возможность соединения |
---|---|---|---|---|
bwlabel | 2D | Матрица метки с с двойной точностью | Высоко | 4 или 8 |
bwlabeln | N-D | Матрица метки с двойной точностью | Высоко | Любой |
bwconncomp | N-D | Struct CC | Низко | Любой |
Вывод bwlabel
и bwlabeln
является матрицей метки с двойной точностью. Чтобы вычислить матрицу метки использование более эффективного памятью типа данных, используйте функцию labelmatrix
на выводе bwconncomp
:
CC = bwconncomp(BW); L = labelmatrix(CC);
Если вы измеряете компоненты в двухуровневом изображении с возможностью соединения по умолчанию, более не необходимо вызвать bwlabel
или bwlabeln
сначала. Можно передать двухуровневое изображение непосредственно regionprops
, который затем использует эффективную памятью функцию bwconncomp
, чтобы вычислить связанные компоненты автоматически. Чтобы задать возможность соединения не по умолчанию, вызовите bwconncomp
и передайте результат regionprops
.
CC = bwconncomp(BW, CONN); S = regionprops(CC);
Большинство измерений занимает время, чтобы вычислить. Однако следующие измерения могут занять больше времени, в зависимости от количества областей в L
:
'ConvexHull'
'ConvexImage'
'ConvexArea'
'FilledImage'
Вычислительные определенные группы измерений берут о том же количестве времени в качестве вычисляющий только одного из них. regionprops
использует в своих интересах промежуточные вычисления, полезные для каждого вычисления. Поэтому это является самым быстрым, чтобы вычислить все желаемые измерения в одном вызове regionprops
.
Непрерывные области также называются objects, connected components или blobs. Матрица метки, содержащая непрерывные области, может выглядеть так:
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, принадлежат второй области, которая является одним связанным компонентом. bwconncomp
| bwferet
| bwlabel
| bwlabeln
| bwpropfilt
| ismember
| labelmatrix
| regionprops3
| watershed