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 object. The axes object 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 object. The axes object 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 имя аргумента и 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] Kaiming он, цзянь Sun, Ксиэуу Тан. Ведомая фильтрация изображений. IEEE® Транзакции согласно Анализу Шаблона и Искусственному интеллекту, Объему 35, Выпуск 6, стр 1397-1409, июнь 2013.

Введенный в R2014a