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