Наложите минимумы
В этом примере показано, как изменить изображение так, чтобы одна область всегда была региональным минимумом.
Прочитайте изображение и отобразите его. Это изображение называется изображением маски.
mask = imread('glass.png');
imshow(mask)
Создайте бинарное изображение того же размера, что и масковое изображение, и установите небольшую область бинарного изображения равной 1. Эти пиксели определяют положение в масковом изображении, где будет наложен региональный минимум. Получившееся изображение называется маркером изображением.
marker = false(size(mask)); marker(65:70,65:70) = true;
Наложите маркер на маску, чтобы показать, где эти интересующие пиксели падают на оригинальное изображение. Маленький белый квадрат помечает пятно. Этот код не является существенным для операции навязывания минимума.
J = mask;
J(marker) = 255;
figure
imshow(J)
title('Marker Image Superimposed on Mask')
Наложите региональный минимум на вход изображение с помощью imimposemin
функция. Обратите внимание, что все темные области оригинального изображения, кроме отмеченной области, легче.
K = imimposemin(mask,marker); figure imshow(K)
Чтобы проиллюстрировать, как эта операция удаляет все минимумы в оригинальное изображение, кроме установленного минимума, сравните региональные минимумы в оригинальное изображение с региональными минимумами в обработанном изображении. Эти вызовы в imregionalmin
возвращает бинарные изображения, которые задают местоположения всех региональных минимумов на обоих изображениях.
BW = imregionalmin(mask); figure subplot(1,2,1) imshow(BW) title('Regional Minima in Original Image') BW2 = imregionalmin(K); subplot(1,2,2) imshow(BW2) title('Regional Minima After Processing')
I
- Изображение маски полутонового цветаИзображение маски полутонового цвета, заданное как числовой массив любой размерности.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
BW
- Двухкомпонентное изображение маркераДвухкомпонентное изображение маркера, заданное как числовой или логический массив того же размера, что и изображение маски полутонового цвета I
. Для числового входа любые ненулевые пиксели рассматриваются как 1
(true
).
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
conn
- Пиксельные соединения4
| 8
| 6
| 18
| 26
| 3 на 3-by-... -by-3 матрица 0
s и 1
sПиксельная связность, заданная как одно из значений в этой таблице. Связность по умолчанию 8
для 2-D изображений и 26
для 3-D изображений.
Значение | Значение | |
---|---|---|
Двумерные связи | ||
4-соединенный | Пиксели соединяются, если их ребра касаются. Окрестностью пикселя являются соседние пиксели в горизонтальном или вертикальном направлении. | |
8-соединенный | Пиксели соединяются, если их ребра или углы касаются. Окрестностью пикселя являются смежные пиксели в горизонтальном, вертикальном или диагональном направлении. | |
Трехмерные связи | ||
6-соединенный | Пиксели соединяются, если их лица касаются. Окрестностью пикселя являются смежные пиксели в:
| |
18-соединенный | Пиксели соединяются, если их грани или ребра касаются. Окрестностью пикселя являются смежные пиксели в:
| |
26-соединенный | Пиксели соединяются, если их грани, ребра или углы касаются. Окрестностью пикселя являются смежные пиксели в:
|
Для более высоких размерностей, imimposemin
использует значение по умолчанию
.conndef
(ndims (I), 'maximal')
Связь также может быть определена более общим образом для любой размерности путем определения 3х3-бай-... -by-3 матрица 0s и
1
с. The 1
-значенные элементы определяют местоположения окрестностей относительно центрального элемента conn
. Обратите внимание, что conn
должно быть симметричным относительно его центрального элемента. Дополнительные сведения см. в разделе «Определение пользовательских соединений».
Типы данных: double
| logical
J
- Восстановленное изображениеВосстановленное изображение, возвращенное как числовой или логический массив того же размера и типа данных, как I
.
imimposemin
использует метод, основанную на морфологической реконструкции.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.