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)

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

Iguided = imguidedfilter(A);

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

Igaussian = imgaussfilt(A,2);

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

montage({Iguided,Igaussian})

Входные параметры

свернуть все

Отобразите, чтобы быть отфильтрованными, заданными как двоичный файл, шкала полутонов или изображение 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]. Не задавайте значение, больше, чем размер изображения.

Пример: Ismooth = imguidedfilter(A,'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.

Пример: Ismooth = imguidedfilter(A,'DegreeOfSmoothing',650.25);

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

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

свернуть все

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

Советы

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

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

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

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

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

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

Ссылки

[1] Кэйминг Хэ, Цзянь Sun, Ксиэуу Тан, Ведомая Фильтрация Изображений. Транзакции IEEE согласно Анализу Шаблона и Искусственному интеллекту, Объему 35, Выпуск 6, стр 1397-1409, июнь 2013

Введенный в R2014a