Региональные максимумы
BW = imregionalmax(I)
BW = imregionalmax(I,conn)
возвращает двухуровневое изображение BW
= imregionalmax(I
)BW
, который идентифицирует региональные максимумы в полутоновом изображении I
. Региональные минимумы являются соединенными компонентами пикселей с постоянным значением интенсивности, окруженным пикселями нижним значением.
Опционально можно идентифицировать региональные максимумы 2D изображений с помощью графического процессора (требует Parallel Computing Toolbox™). Для получения дополнительной информации смотрите Обработку изображений на графическом процессоре.
Создайте изображение простой выборки с несколькими региональными максимумами.
A = 10*ones(10,10); A(2:4,2:4) = 22; A(6:8,6:8) = 33; A(2,7) = 44; A(3,8) = 45; A(4,9) = 44
A = 10×10
10 10 10 10 10 10 10 10 10 10
10 22 22 22 10 10 44 10 10 10
10 22 22 22 10 10 10 45 10 10
10 22 22 22 10 10 10 10 44 10
10 10 10 10 10 10 10 10 10 10
10 10 10 10 10 33 33 33 10 10
10 10 10 10 10 33 33 33 10 10
10 10 10 10 10 33 33 33 10 10
10 10 10 10 10 10 10 10 10 10
10 10 10 10 10 10 10 10 10 10
Найдите региональные максимумы. Обратите внимание на то, что результат включает региональные максимумы в (3,8).
regmax = imregionalmax(A)
regmax = 10x10 logical array
0 0 0 0 0 0 0 0 0 0
0 1 1 1 0 0 0 0 0 0
0 1 1 1 0 0 0 1 0 0
0 1 1 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 1 1 1 0 0
0 0 0 0 0 1 1 1 0 0
0 0 0 0 0 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
Создайте 10 10 пиксельное демонстрационное изображение, которое содержит два региональных максимума.
A = 10*gpuArray(ones(10,10)); A(2:4,2:4) = 22; % maxima 12 higher than surrounding pixels A(6:8,6:8) = 33; % maxima 23 higher than surrounding pixels A(2,7) = 44; A(3,8) = 45; % maxima 1 higher than surrounding pixels A(4,9) = 44
A = 10 10 10 10 10 10 10 10 10 10 10 22 22 22 10 10 44 10 10 10 10 22 22 22 10 10 10 45 10 10 10 22 22 22 10 10 10 10 44 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 33 33 33 10 10 10 10 10 10 10 33 33 33 10 10 10 10 10 10 10 33 33 33 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
Передайте демонстрационное изображение A
imregionalmax
. Функция возвращает двухуровневое изображение, тот же размер как A
, в которых пикселях со значением 1
представляют региональные максимумы в A
. imregionalmax
устанавливает все другие пиксели в на 0
.
regmax = imregionalmax(A)
regmax = 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 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
I
Полутоновое изображениеgpuArray
Входной массив, заданный как числовой массив любой размерности.
Чтобы вычислить региональные максимумы с помощью графического процессора, задайте I
как gpuArray
, который содержит 2D числовую матрицу.
Пример: I = imread('cameraman.tif');
Пример: I = gpuArray(imread('cameraman.tif'));
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | логический
conn
— Пиксельная возможность соединения4
| 8
| 6
| 18
| 26
| 3-by-3-by-... Матрица-by-3 0
s и 1
sПиксельная возможность соединения, заданная как одно из значений в этой таблице. Возможностью соединения по умолчанию является 8
для 2D изображений и 26
для 3-D изображений.
Значение | Значение | |
---|---|---|
Двумерные возможности соединения | ||
4 | Пиксели соединяются, если их ребра затрагивают. Окружение пикселя является смежными пикселями в горизонтальном или вертикальном направлении. | |
8 | Пиксели соединяются, если их ребра или углы затрагивают. Окружение пикселя является смежными пикселями в горизонтали, вертикальным, или диагональным направлением. | |
3D возможности соединения | ||
6 | Пиксели соединяются, если их поверхности затрагивают. Окружение пикселя является смежными пикселями в:
| |
18 | Пиксели соединяются, если их поверхности или ребра затрагивают. Окружение пикселя является смежными пикселями в:
| |
26 | Пиксели соединяются, если их поверхности, ребра или углы затрагивают. Окружение пикселя является смежными пикселями в:
|
Для более высоких размерностей imregionalmax
использует значение по умолчанию conndef(ndims(I),'maximal')
.
Возможность соединения может также быть задана более общим способом к любой размерности путем определения 3-by-3-by-... Матрица-by-3 0
s и 1
s. 1
- оцененные элементы задают местоположения окружения относительно центрального элемента conn
. Обратите внимание на то, что conn
должен быть симметричным о своем центральном элементе. Смотрите Задающие Пользовательские Возможности соединения для получения дополнительной информации.
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
BW
— Местоположения региональных максимумовgpuArray
Местоположения региональных максимумов, возвращенных как логический массив, одного размера как I
. Пиксели со значением 1
указывают на региональные максимумы; все другие пиксели установлены в 0
.
Если региональные максимумы вычисляются с помощью графического процессора, то BW
возвращен как gpuArray
, который содержит логическую матрицу, одного размера как I
.
Типы данных: логический
Указания и ограничения по применению:
imregionalmax
поддерживает генерацию кода С (требует MATLAB® Coder™). Обратите внимание на то, что, если вы выбираете типичную целевую платформу MATLAB Host Computer
, imregionalmax
генерирует код, который пользуется предварительно скомпилированной, специфичной для платформы разделяемой библиотекой. Использование разделяемой библиотеки сохраняет оптимизацию производительности, но ограничивает целевые платформы, для которых может быть сгенерирован код. Для получения дополнительной информации смотрите, что Генерация кода пользуется Разделяемой Библиотекой.
При генерации кода дополнительный второй входной параметр, conn
, должен быть постоянным временем компиляции.
Указания и ограничения по применению:
Входные параметры должны быть 2D, поддержав только 2D возможности соединения (4 и 8).
Для получения дополнительной информации смотрите Обработку изображений на графическом процессоре.
conndef
| imextendedmax
| imhmax
| imreconstruct
| imregionalmin
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.