Измерьте свойства областей изображений
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