Bilateral Filter

2-D двустороннюю фильтрацию

  • Библиотека:
  • Vision HDL Toolbox/Фильтрация

  • Bilateral Filter block

Описание

Блок Bilateral Filter фильтрует изображения при сохранении ребер. Некоторые применения двусторонней фильтрации являются обесцениванием при сохранении ребер, отделением текстуры от освещения и карикатурой для улучшения ребер. Фильтр заменяет каждый пиксель в центре окрестности средним значением, которое вычисляется с помощью пространственных и интенсивных Гауссовых фильтров. Блок определяет коэффициенты фильтра из:

  • Пространственное расположение по соседству (подобно Гауссову фильтру размытия)

  • Интенсивность, различие от значения центра окрестности

Блок предоставляет два стандартных параметра отклонения для независимого управления пространственными и коэффициентами интенсивности.

Порты

Этот блок использует интерфейс потокового пикселя с pixelcontrol шина для сигналов управления системой координат. Этот интерфейс позволяет блоку работать независимо от размера и формата изображения. Все блоки Vision HDL Toolbox™ используют один и тот же потоковый интерфейс. Блок принимает и возвращает скалярное значение пикселя и шину, которая содержит пять сигналов управления. Сигналы управления указывают валидность каждого пикселя и его местоположение в системе координат. Чтобы преобразовать систему координат (пиксельную матрицу) в последовательный поток пикселей и сигналы управления, используйте блок Frame To Pixels. Полное описание интерфейса см. в разделе Потоковый пиксельный интерфейс.

Вход

расширить все

Один пиксель изображения пиксельного потока, заданный как скалярное значение, представляющее интенсивность. Это значение интерпретируется по области значений [0,1], принимая все области значений типа входных данных. Целочисленные и типы данных с фиксированной точкой размером более 16 битов не поддерживаются.

double и single типы данных поддерживаются для симуляции, но не для генерации HDL-кода.

Типы данных: uint8 | uint16 | int8 | int16 | fixed point | Boolean | double | single

The pixelcontrol шина содержит пять сигналов. Сигналы описывают валидность пикселя и его местоположение в системе координат. Для получения дополнительной информации смотрите Pixel Control Bus.

Типы данных: bus

Выход

расширить все

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

double и single типы данных поддерживаются для симуляции, но не для генерации HDL-кода.

Типы данных: uint8 | uint16 | int8 | int16 | fixed point | Boolean | double | single

The pixelcontrol шина содержит пять сигналов. Сигналы описывают валидность пикселя и его местоположение в системе координат. Для получения дополнительной информации смотрите Pixel Control Bus.

Типы данных: bus

Параметры

расширить все

Главный

Размер области изображения, используемой для вычисления среднего значения, заданный как N -by N пиксельный квадрат.

Пространственная стандартная цель отклонения, используемая для вычисления коэффициентов для пространственного Гауссова фильтра, заданная как положительное вещественное число. Этот параметр не имеет пределов, но рекомендуемые значения от 0,1 до 10. На верхнем конце распределение становится плоским, и коэффициенты малы. На нижнем конце распределение достигает пиков в центре и имеет небольшие коэффициенты в остальной части окрестности. Эти краевые значения также зависят от размера окрестности и типа данных, используемых для коэффициентов.

Цель стандартного отклонения интенсивности, используемая для вычисления коэффициентов для Гауссова фильтра интенсивности, заданная как положительное вещественное число. Этот параметр не имеет пределов, но рекомендуемые значения от 0,1 до 10. На верхнем конце распределение становится плоским, и коэффициенты малы. На нижнем конце распределение достигает пиков в центре и имеет небольшие коэффициенты в остальной части окрестности. Эти краевые значения также зависят от размера окрестности и типа данных, используемых для коэффициентов.

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

Выберите один из следующих методов для заполнения контура входного изображения. Для получения дополнительной информации об этих методах см. Раздел «Заполнение ребер».

  • Constant - Интерпретируйте пиксели вне системы координат изображения как имеющие постоянное значение.

  • Replicate - Повторите значение пикселей на краю изображения.

  • Symmetric - Установите значение пикселей заполнения, чтобы зеркально отобразить ребро изображения.

  • None - Исключить логику заполнения. Блок не устанавливает пиксели вне системы координат изображения на какое-либо конкретное значение. Эта опция уменьшает аппаратные ресурсы, используемые блоком, и гашение, необходимое между системами координат, но влияет на точность выходных пикселей на ребрах системы координат. Для поддержания синхронизации потока пикселей выхода системы координат совпадает с размером входного кадра. Однако, чтобы избежать использования пикселей, вычисленных из неопределенных значений заполнения, замаскируйте KernelSize/2 пикселя вокруг ребра системы координат для нижестоящих операций. Для получения дополнительной информации смотрите Увеличение пропускной способности при отсутствии заполнения.

Задайте целое число, чтобы дополнить контур входного изображения. Блок переводит это значение в тот совпадающий тип данных, что и входной пиксель.

Зависимости

Чтобы включить этот параметр, установите параметр Padding method равным Constant.

Задайте степень двойки, которая будет включать количество активных пикселей в одной горизонтальной линии.

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

Типы данных

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

Когда вход является любым целым числом или типом данных с фиксированной точкой, алгоритм использует арифметику с фиксированной точкой для внутренних вычислений. По умолчанию значения с фиксированной точкой насыщаются при переполнении. Эта опция не применяется, когда тип входных данных single или double.

Задайте неподписанный тип данных, который может представлять значения менее 1. Коэффициенты обычно требуют типа данных с большей точностью, чем тип входных данных. Блок вычисляет коэффициенты на основе размера окрестности и значений Intensity standard deviation и Spatial standard deviation. Большие окрестности распространяют Гауссову функцию таким образом, что каждое значение коэффициента меньше. Большее стандартное отклонение уплощает Гауссов так, что коэффициенты являются более равномерными по своей природе, а меньшее стандартное отклонение создает пиковую характеристику.

Примечание

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

Отфильтрованные значения пикселей приводятся к этому типу данных.

Совет

  • Когда вы используете блок с внутренним буфером линии внутри Enabled Subsystem (Simulink), шаблон сигнала включения должен поддерживать синхронизацию потока пикселей, включая минимальные интервалы гашения. Если шаблон enable повреждает синхронизацию потока пикселей, вы можете увидеть частичные выходные системы координат, поврежденные сигналы управления потоком пикселей или несоответствия между Simulink® и результаты симуляции HDL. Вам может потребоваться увеличить интервалы гашения, чтобы соответствовать циклам, когда активация низкая. Дополнительные сведения см. в разделе Настройка интервалов гашения.

Алгоритмы

расширить все

Двусторонний фильтр может быть описан как Гауссов фильтр в пространственной размерности, который изменяет коэффициенты второго Гауссова фильтра, который работает с интенсивностью.

Алгоритм хранит N -1 линиях, чтобы он мог сформировать N -by - N матрицу пикселей, соответствующих Neighborhood size. Затем он применяет два Гауссова фильтра на каждом районе. Коэффициенты фильтра вычисляются из пространственных и стандартных отклонений интенсивности.

Операция Subtract Center создает пиксельное значение нуля в центре окрестности. Для аппаратной реализации и для симуляции типов данных с фиксированной или целочисленной точкой вычисление в штриховой области реализуется с интерполяционной таблицей предварительно вычисленных значений для каждого пикселя. Потому что центральное значение всегда равняется нулю, u2 и eu всегда являются единичными и не вычисляются. Для входов с плавающей точкой, симуляция вычисляет u2 и eu как показано. В выходе штриховой области используется заданный тип данных коэффициента. Блоки Q на схеме показывают точки квантования.

Алгоритм реализует конечный шаг нормализации с ответной интерполяционной таблицей в аппаратной реализации. Интерполяционная таблица имеет 2048 местоположений, поэтому сумма коэффициентов квантуется до наиболее значимых 11 бит. Взаимные значения используют заданный тип выходных данных плюс минимум два целочисленных бита, если тип данных их еще не включает. Обратное значение поиска для нулевой суммы является максимально представимым значением в типе данных коэффициента. Для нормализации с плавающей точкой симуляция обнаруживает нулевую сумму и вместо этого делит на eps() дивидендов.

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

Примечание

При фильтрации многокомпонентных (цветных) пикселей могут возникнуть ложные цвета, если операция не выполняется в цветовом пространстве, основанном на восприятии человека, таком как CIELab. Двусторонняя фильтрация цветового пространства R 'G' B' не рекомендуется.

Расширенные возможности

.

См. также

Блоки

Объекты

Введенный в R2017b