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

Совет

  • The 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® Транзакции по анализу шаблонов и машинной разведке, том 35, выпуск 6, стр. 1397-1409, июнь 2013.

Введенный в R2014a