exponenta event banner

Двусторонний фильтр

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

  • Библиотека:
  • Панель инструментов/фильтрация HDL Vision

  • Bilateral Filter block

Описание

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

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

  • Разность интенсивности от значения соседнего центра

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

Порты

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

Вход

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

Один пиксель изображения потока пикселей, заданный как скалярное значение, представляющее интенсивность. Это значение интерпретируется в диапазоне [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 на N.

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

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

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

Выберите один из этих методов заполнения границы входного изображения. Дополнительные сведения об этих методах см. в разделе Заполнение кромок.

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

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

  • Symmetric - Задайте значение пикселов заполнения для отражения края изображения.

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

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

Зависимости

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

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

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

Типы данных

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

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

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

Примечание

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

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

Совет

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

Алгоритмы

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

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

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

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

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

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

Примечание

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

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

.
Представлен в R2017b