imtophat

Фильтрация цилиндра

Синтаксис

J = imtophat(I,SE)
J = imtophat(I,nhood)

Описание

пример

J = imtophat(I,SE) выполняет морфологическую фильтрацию цилиндра на полутоновом или двухуровневом изображении I, возвращая отфильтрованное изображение, J. Фильтрация цилиндра вычисляет морфологическое открытие изображения (использующий imopen) и затем вычитает результат оригинального изображения. SE является одним объектом элемента структурирования, возвращенным функциями offsetstrel или strel.

Опционально можно выполнить фильтрацию цилиндра с помощью графического процессора (требует Parallel Computing Toolbox™). Для получения дополнительной информации смотрите Обработку изображений на графическом процессоре.

J = imtophat(I,nhood) цилиндр фильтрует изображение I, где nhood является матрицей 0s и 1 с, которая задает окружение элемента структурирования. Это эквивалентно синтаксису imtophat(I,strel(nhood)). Функция imtophat определяет центральный элемент окружения floor((size(nhood)+1)/2).

Примеры

свернуть все

Этот пример показывает, как использовать фильтрацию цилиндра с дискообразным элементом структурирования, чтобы удалить неровное фоновое освещение из изображения с темным фоном.

Считайте изображение и отобразите его.

original = imread('rice.png');
imshow(original)

Создайте элемент структурирования.

se = strel('disk',12);

Выполните фильтрацию цилиндра и отобразите изображение.

tophatFiltered = imtophat(original,se);
figure
imshow(tophatFiltered)

Используйте imadjust, чтобы улучшить видимость результата.

contrastAdjusted = imadjust(tophatFiltered);
figure
imshow(contrastAdjusted)

Можно использовать фильтрацию цилиндра, чтобы исправить неровное освещение, когда фон является темным. Этот пример использует фильтрацию цилиндра с дискообразным элементом структурирования, чтобы удалить неровное фоновое освещение из изображения.

Считайте изображение и отобразите его.

original = imread('rice.png');
figure, imshow(original)

Создайте элемент структурирования.

se = strel('disk',12);

Выполните фильтрацию цилиндра и отобразите изображение. Отметьте, как пример передает изображение функции gpuArray прежде, чем передать его функции imtophat.

tophatFiltered = imtophat(gpuArray(original),se);
figure, imshow(tophatFiltered)

Используйте imadjust, чтобы улучшить видимость результата. Функция gather используется, чтобы получить содержимое gpuArray от графического процессора.

contrastAdjusted = imadjust(gather(tophatFiltered));
figure, imshow(contrastAdjusted)

Входные параметры

свернуть все

Введите изображение, заданное как полутоновое изображение или двухуровневое изображение. I может иметь любую размерность, и должен быть действительным и неразреженным.

Чтобы выполнить фильтрацию цилиндра с помощью графического процессора, задайте I как gpuArray, который содержит изображение типа uint8 или logical.

Типы данных: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | logical

Структурирование элемента, указанного как один объект strel или объект offsetstrel. Если изображение, I является типом данных logical, элемент структурирования, должно быть плоским.

Если вы выполняете фильтрацию цилиндра с помощью графического процессора, то SE должен быть плоским и двумерным.

Структурирование окружения элемента, заданного как матрица 0s и 1 с.

Пример: [0 1 0; 1 1 1; 0 1 0]

Выходные аргументы

свернуть все

Цилиндр отфильтровал изображение, возвращенное как полутоновое изображение или двухуровневое изображение. J имеет тот же класс как входное изображение I.

Если фильтрация выполняется с помощью графического процессора, то J возвращен как gpuArray, который содержит полутоновое или двухуровневое изображение того же класса как I.

Расширенные возможности

Смотрите также

Функции

Объекты

Представлено до R2006a