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 object. The axes object contains an object of type image.

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

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

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

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

Отфильтруйте изображение с rangefilt функционируйте и отобразите результаты. Фильтрация области значений делает ребра и контуры монет видимыми.

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

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

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

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

Figure contains an axes object. The axes object 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 object. The axes object 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