Bilateral Filter

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

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

  • Bilateral Filter block

Описание

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

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

  • Различие в интенсивности от окружения сосредотачивает значение

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

Порты

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

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

развернуть все

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

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

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

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

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

Вывод

развернуть все

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

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

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

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

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

Параметры

развернуть все

Основной

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

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

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

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

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

  • Constant — Интерпретируйте пиксели вне фрейма изображения как наличие постоянного значения.

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

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

  • Reflection — Установите значение дополнительных пикселей, чтобы отразиться вокруг пикселя в ребре изображения.

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

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

Зависимости

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

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

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

Типы данных

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

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

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

Примечание

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

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

Советы

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

Алгоритмы

развернуть все

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

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

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

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

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

Примечание

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

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

Смотрите также

Блоки

Объекты

Введенный в R2017b