rangefilt

Локальная область значений изображений

Описание

пример

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

пример

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

Примеры

свернуть все

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

I = imread('liftingbody.png'); 

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

J = rangefilt(I);

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

imshowpair(I,J,'montage')

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

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

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

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