exponenta event banner

rangefilt

Локальный диапазон изображений

Описание

пример

J = rangefilt(I) возвращает массив J, где каждый выходной пиксель содержит значение диапазона (максимальное значение − минимальное значение) окрестности 3 на 3 вокруг соответствующего пикселя во входном изображении I.

пример

J = rangefilt(I,nhood) возвращает локальный диапазон изображений I используя указанный район, nhood.

Примеры

свернуть все

Чтение изображения в рабочую область.

I = imread('liftingbody.png'); 

Фильтрация изображения. rangefilt функция возвращает массив, где каждый выходной пиксель содержит значение диапазона (максимальное значение - минимальное значение) окрестности 3 на 3 вокруг соответствующего пикселя во входном изображении.

J = rangefilt(I);

Отображение исходного изображения и отфильтрованного изображения рядом.

imshowpair(I,J,'montage')

Figure contains an axes. The axes contains an object of type image.

В этом примере показано, как обнаруживать области текстуры в изображении с помощью функций фильтра текстур

Чтение изображения в рабочую область и его отображение. На рисунке фон сглажен - очень мало вариаций в значениях серого уровня. На переднем плане контуры поверхности монет имеют большую текстуру. В этом изображении пиксели переднего плана имеют большую изменчивость и, следовательно, более высокие значения диапазона.

I = imread('eight.tif');
imshow(I)

Figure contains an axes. The axes contains an object of type image.

Фильтрация изображения с помощью rangefilt и просмотрите результаты. Фильтрация диапазона делает края и контуры монет видимыми.

K = rangefilt(I);
figure
imshow(K)

Figure contains an axes. The axes contains an object of type image.

Чтение изображения в рабочую область и его отображение.

I = imread('circuit.tif');
imshow(I);

Figure contains an axes. The axes contains an object of type image.

Определите район. В этом примере окрестность возвращает большое значение, когда имеется большая разница между значениями пикселей слева и справа от входного пикселя. Фильтрация не учитывает пиксели выше и удаляет входной пиксель. Таким образом, эта окрестность подчеркивает вертикальные края.

nhood = [1 1 1];

Выполните операцию фильтрации диапазона с использованием этой окрестности. Для сравнения также выполните фильтрацию диапазона с использованием области по умолчанию «3 на 3». Сравните результаты.

J = rangefilt(I,nhood);
K = rangefilt(I);
figure
imshowpair(J,K,'montage');
title('Range filtering using specified neighborhood (left) and default neighborhood (right)');

Figure contains an axes. The axes with title Range filtering using specified neighborhood (left) and default neighborhood (right) contains an object of type image.

Результат с использованием указанной окрестности подчеркивает вертикальные кромки, как и ожидалось. Для сравнения, фильтр по умолчанию не чувствителен к направленности кромок.

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

свернуть все

Фильтруемое изображение, указанное как числовой массив любого размера.

Типы данных: double | uint8 | uint16 | uint32 | logical

Окрестность, заданная как логический или числовой массив, содержащий нули и единицы. Размер nhood должно быть нечетным в каждом измерении. rangefilt определяет центральный элемент окрестности по floor((size(NHOOD) + 1)/2).

Чтобы указать окрестности других фигур, например диска, используйте strel создание объекта элемента структурирования требуемой формы. Затем извлеките окрестность из объекта элемента структурирования neighborhood собственность.

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

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

свернуть все

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

Алгоритмы

rangefilt использует морфологические функции imdilate и imerode для определения максимального и минимального значений в указанной окрестности. Следовательно, rangefilt использует поведение заполнения этих морфологических функций.

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