exponenta event banner

imguidedfilter

Управляемая фильтрация изображений

Описание

B = imguidedfilter(A,G) фильтрует двоичные файлы, изображения в градациях серого или RGB A с помощью фильтра, управляемого изображением G.

пример

B = imguidedfilter(A) фильтрует входное изображение A под самонаведением, с использованием A себя как образ руководства. Этот синтаксис можно использовать для сглаживания изображения с сохранением границ A.

B = imguidedfilter(___,Name,Value) фильтрация изображения A использование пар имя-значение для управления аспектами управляемой фильтрации.

Примеры

свернуть все

Чтение и отображение изображения.

A = imread('pout.tif');
imshow(A)

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

Сглаживание изображения с помощью imguidedfilter. В этом синтаксисе imguidedfilter использует само изображение в качестве изображения наведения.

Iguided = imguidedfilter(A);

Для сравнения сгладьте исходное изображение с помощью гауссова фильтра, определенного imgaussfilt. Установите стандартное отклонение фильтра на 2,5, чтобы степень сглаживания приблизительно соответствовала степени сглаживания направляемого фильтра.

Igaussian = imgaussfilt(A,2);

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

montage({Iguided,Igaussian})

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

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

свернуть все

Фильтруемое изображение, указанное как двоичное изображение, изображение в градациях серого или RGB.

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

Изображение для использования в качестве направляющей во время фильтрации, указанное как двоичное изображение, изображение в градациях серого или RGB с той же высотой и шириной, что и изображение A.

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

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: Ismooth = imguidedfilter(A,'NeighborhoodSize',[4 4]);

Размер прямоугольной окрестности вокруг каждого пикселя, используемого в управляемой фильтрации, определяемый как положительное целое число или 2-элементный вектор положительных целых чисел. Если задано скалярное значение, например, Q, то окрестности - это квадрат размера [Q Q]. Не указывайте значение, превышающее размер изображения.

Пример: 'NeighborhoodSize',[7 7]

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

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

Если указано направляющее изображение G, то значение по умолчанию DegreeOfSmoothing зависит от типа данных G, и рассчитывается как 0.01*diff(getrangefromclass(G)).^2. Например, степень сглаживания по умолчанию равна 650.25 для изображений типа данных uint8, и по умолчанию 0.01 для изображений типа данных double со значениями пикселов в диапазоне [0, 1]. Если направляющее изображение не указано, то значение по умолчанию зависит от типа данных изображения A.

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

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

свернуть все

Отфильтрованное изображение, возвращаемое в виде числового массива того же размера и типа данных, что и A

Совет

  • DegreeOfSmoothing аргумент задает мягкое пороговое значение дисперсии для данной окрестности. Если соседство пикселя имеет дисперсию намного ниже порогового значения, оно будет видеть некоторое сглаживание. Если соседство пикселя имеет дисперсию намного выше порогового значения, оно будет иметь небольшое сглаживание или отсутствие сглаживания.

  • Входные изображения A и G могут быть разных классов. Если либо A или G является целым классом или логическим, то imguidedfilter преобразует их в точность с плавающей запятой для внутренних вычислений.

  • Входные изображения A и G может иметь различное количество каналов.

    • Если оба A и G RGB-образы, затем imguidedfilter фильтрует каждый канал A независимо с использованием соответствующего канала G.

    • Если A представляет собой образ RGB и G является одноканальным изображением, то imguidedfilter фильтрует каждый канал A независимо с использованием одного и того же изображения наведения, G.

    • Если A является одноканальным изображением и G является RGB образом, то imguidedfilter фильтры A с использованием комбинированной цветовой статистики всех трех каналов G.

Ссылки

[1] Каймин Хэ, Цзянь Сунь, Сяоу Тан. Фильтрация управляемых изображений. IEEE ® Transactions on Pattern Analysis and Machine Intelligence, том 35, выпуск 6, стр. 1397-1409, июнь 2013 г.

Представлен в R2014a