Наложите минимумы
В этом примере показано, как изменить изображение так, чтобы одной областью всегда был региональный минимум.
Считайте изображение и отобразите его. Это изображение называется рисунком маски.
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
— Пиксельная возможность соединения
| 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 | Пиксели соединяются, если их поверхности, ребра или углы затрагивают. Окружение пикселя является смежными пикселями в:
|
Для более высоких размерностей, imimposemin
использует значение по умолчанию
.conndef
(ndims (I), 'максимальный')
Возможность соединения может также быть задана более общим способом к любой размерности путем определения 3-by-3-by-... Матрица-by-3 0
s и 1
s. 1
- ценные элементы задают местоположения окружения относительно центрального элемента conn
. Обратите внимание на то, что conn
должно быть симметричным о его центральном элементе. Смотрите Задающие Пользовательские Возможности соединения для получения дополнительной информации.
Типы данных: double |
logical
J
— Восстановленное изображениеВосстановленное изображение, возвращенное как числовой или логический массив, одного размера и тип данных как I
.
imimposemin
использует метод на основе морфологической реконструкции.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.