Выполните 2D КИХ-фильтрацию на входной матрице
Фильтрация
visionfilter
2D блок фильтра Конечного импульсного ответа (FIR) фильтрует входную матрицу I
с помощью матрицы коэффициентов H
или векторы коэффициентов HH
и HV
.
Порт | Ввод/вывод | Поддерживаемые типы данных | Поддерживаемые комплексные числа |
---|---|---|---|
I | Вектор или матрица значений интенсивности |
| Да |
H | Матрица коэффициентов фильтра | То же самое, когда я портирую. | Да |
HH | Вектор коэффициентов фильтра | То же самое, когда я портирую. Вход к портам HH и HV должен быть совпадающим типом данных. | Да |
HV | Вектор коэффициентов фильтра | То же самое, когда я портирую. Вход к портам HH и HV должен быть совпадающим типом данных. | Да |
PVal | Скалярное значение, которое представляет постоянное значение клавиатуры | Введите должен иметь совпадающий тип данных как вход, я портирую. | Да |
Вывод | Скаляр, вектор или матрица отфильтрованных значений | То же самое, когда я портирую. | Да |
Если вход имеет тип данных с плавающей точкой, то вывод использует совпадающий тип данных. В противном случае вывод может быть любым типом данных с фиксированной точкой.
Установите флажок Separable filter coefficients, если ваши коэффициенты фильтра отделимы. Используя отделимый фильтр коэффициенты уменьшают объем вычислений, которые блок должен выполнить, чтобы вычислить вывод. Например, предположите, что вашим входным изображением является M-by-N, и ваша матрица коэффициентов фильтра является x-by-y. Для неотделимого фильтра с набором параметра Output size к Same as input port I
это взяло бы
умножьтесь - накапливают операции (MAC) для блока, чтобы вычислить вывод. Для отделимого фильтра это только взяло бы
Операции MAC. Если вы не знаете, отделимы ли ваши коэффициенты фильтра, используйте функцию isfilterseparable
.
Вот пример синтаксиса функций, [S, HCOL, HROW] = isfilterseparable(H)
. Функция isfilterseparable
берет ядро фильтра, H
, и возвращает S
, HCOL
и HROW
. Здесь, S
является Логическая переменная, которая равняется 1, если фильтр отделим и 0, если это не. HCOL
является вектором вертикальных коэффициентов фильтра, и HROW
является вектором горизонтальных коэффициентов фильтра.
Используйте параметр Coefficient source, чтобы задать, как задать ваши коэффициенты фильтра. Если вы устанавливаете флажок Separable filter coefficients и затем выбираете Coefficient source of Specify via dialog
, Vertical coefficients (across height) и параметры Horizontal coefficients (across width) появляются в диалоговом окне. Можно использовать эти параметры, чтобы ввести векторы вертикальных и горизонтальных коэффициентов фильтра, соответственно.
Можно также использовать переменные HCOL
и HROW
, вывод функции isfilterseparable
, для этих параметров. Если вы устанавливаете флажок Separable filter coefficients и затем выбираете Coefficient source of Input port
, порты HV и HH появляются на блоке. Используйте эти порты, чтобы задать векторы вертикальных и горизонтальных коэффициентов фильтра.
Если вы снимаете флажок Separable filter coefficients и выбираете Coefficient source of Specify via dialog
, параметр Coefficients появляется в диалоговом окне. Используйте этот параметр, чтобы ввести вашу матрицу коэффициентов фильтра.
Если вы снимаете флажок Separable filter coefficients и выбираете Coefficient source of Input port
, порт H появляется на блоке. Используйте этот порт, чтобы задать вашу матрицу коэффициентов фильтра.
Блок выводит результат операции фильтрации в Выходном порту. Параметр Output size и размеры входных параметров в портах I и H диктуют размерности вывода. Например, примите, что вход в порте, у меня есть размерности (Mi, Ni) и вход в порте H, имеет размерности (Mh, Nh). Если вы выбираете Output size of Full
, вывод имеет размерности (Mi +Mh-1, Ni +Nh-1). Если вы выбираете Output size of Same as input port I
, вывод имеет те же размерности как вход в порте I. Если вы выбираете Output size of Valid
, блок фильтрует входное изображение только там, где матрица коэффициентов соответствует полностью в нем, таким образом, никакое дополнение не требуется. Вывод имеет размерности (Mi-Mh+1, Ni-Nh+1). Однако, если all(size(I)<size(H))
, блочные ошибки.
Используйте параметр Padding options, чтобы задать, как заполнить контур вашей входной матрицы. Чтобы заполнить вашу матрицу постоянным значением, выберите Constant
. Чтобы заполнить вашу входную матрицу путем повторения ее значений границы, выберите Replicate
. Чтобы заполнить вашу входную матрицу ее зеркальным отображением, выберите Symmetric
. Чтобы заполнить вашу входную матрицу использование кругового повторения его элементов, выберите Circular
. Для получения дополнительной информации о дополнении смотрите страницу с описанием блока Image Pad.
Если для параметра Padding options вы выбираете Constant
, параметр Pad value source появляется в диалоговом окне. Если вы выбираете Specify via dialog
, параметр Pad value появляется в диалоговом окне. Используйте этот параметр, чтобы ввести постоянное значение, которым можно заполнить вашу матрицу. Если вы выбираете Pad value source ofInput port
, порт PVal появляется на блоке. Используйте этот порт, чтобы задать постоянное значение, которым можно заполнить вашу матрицу. Значение клавиатуры должно быть действительным, если входное изображение действительно. Вы получите сообщение об ошибке, если значение клавиатуры будет комплексным, когда входное изображение действительно.
Используйте параметр Filtering based on, чтобы задать алгоритм, которым блок фильтрует входную матрицу. Если вы выбираете Convolution
и устанавливаете параметр Output size на Full
, блок фильтрует ваш вход с помощью следующего алгоритма
где и . Если вы выбираете Correlation
и устанавливаете параметр Output size на Full
, блок фильтрует ваш вход с помощью следующего алгоритма
где и .
Функция imfilter
от продукта Image Processing Toolbox™ так же выполняет фильтрацию N-D многомерных изображений.
Следующая схема показывает типы данных, используемые в 2D блоке FIR Filter для сигналов фиксированной точки.
Можно установить коэффициент, продукт вывод, аккумулятор и типы выходных данных в маске блока, как обсуждено в Параметрах.
Вывод множителя находится в типе выходных данных продукта, если по крайней мере одни из входных параметров ко множителю действительны. Если оба из входных параметров ко множителю являются комплексными, результат умножения находится в типе данных аккумулятора. Для получения дополнительной информации на комплексном выполняемом умножении, обратитесь к Типам данных Умножения.
Установите этот флажок, если ваши коэффициенты фильтра отделимы. Используя отделимый фильтр коэффициенты уменьшают объем вычислений, которые блок должен выполнить, чтобы вычислить вывод.
Задайте, как задать ваши коэффициенты фильтра. Выберите Specify via dialog
, чтобы ввести ваши коэффициенты в диалоговое окно параметров блоков. Выберите Input port
, чтобы задать вашу матрицу коэффициентов фильтра с помощью порта H или портов HH и HV.
Введите свою действительную или матрицу коэффициентов фильтра с комплексным знаком. Этот параметр появляется, если вы снимаете флажок Separable filter coefficients и затем выбираете Coefficient source of Specify via dialog
. Настраиваемый.
Введите вектор вертикальных коэффициентов фильтра для вашего отделимого фильтра. Этот параметр появляется, если вы устанавливаете флажок Separable filter coefficients и затем выбираете Coefficient source of Specify via dialog
.
Введите вектор горизонтальных коэффициентов фильтра для вашего отделимого фильтра. Этот параметр появляется, если вы устанавливаете флажок Separable filter coefficients и затем выбираете Coefficient source of Specify via dialog
.
Этот параметр управляет размером отфильтрованного вывода. Если вы выбираете Full
, вывод имеет размерности (Ma +Mh-1, Na +Nh-1). Если вы выбираете Same as input port I
, вывод имеет те же размерности как вход в порте I If, вы выбираете Valid
, выводите, имеет размерности (Ma-Mh+1, Na-Nh+1).
Задайте, как заполнить контур вашей входной матрицы. Выберите Constant
, чтобы заполнить вашу матрицу постоянным значением. Выберите Replicate
, чтобы заполнить вашу входную матрицу путем повторения ее значений границы. Выберите Symmetric
, чтобы заполнить вашу входную матрицу ее зеркальным отображением. Выберите Circular
, чтобы заполнить вашу входную матрицу использование кругового повторения его элементов. Этот параметр появляется, если вы выбираете Output size of Full
или Same as input port I
.
Используйте этот параметр, чтобы задать, как задать ваше постоянное граничное значение. Выберите Specify via dialog
, чтобы ввести ваше значение в диалоговое окно параметров блоков. Выберите Input port
, чтобы задать ваше постоянное значение с помощью порта PVal. Этот параметр появляется, если вы выбираете Padding options of Constant
.
Введите постоянное значение, которым можно заполнить вашу матрицу. Этот параметр видим, если для параметра Pad value source вы выбираете Specify via dialog
. Настраиваемый. Значение клавиатуры должно быть действительным, если входное изображение действительно. Вы получите сообщение об ошибке, если значение клавиатуры будет комплексным, когда входное изображение действительно.
Задайте алгоритм, которым блок фильтрует входную матрицу. Можно выбрать Convolution
или Correlation
.
Выберите Rounding Modes для операций фиксированной точки.
Выберите режим переполнения для операций фиксированной точки. Смотрите Точность и Область значений.
Выберите, как задать размер слова и дробную длину коэффициентов фильтра.
Когда вы выбираете Inherit: Same word length as input
, размер слова содействующего соответствия фильтра тот из входа к блоку. В этом режиме блок автоматически устанавливает дробную длину коэффициентов к двоичной точке, только масштабирующейся, который предоставляет вам лучшую точность, возможную, учитывая значение и размер слова коэффициентов.
Когда вы выбираете fixdt(1,16)
, можно ввести размер слова коэффициентов в битах. В этом режиме блок автоматически устанавливает дробную длину коэффициентов к двоичной точке, только масштабирующейся, который предоставляет вам лучшую точность, возможную, учитывая значение и размер слова коэффициентов.
Когда вы выбираете fixdt(1,16,0)
, можно ввести размер слова и дробную длину коэффициентов в битах.
Когда вы выбираете <data type expression>
, можно ввести выражение типа данных.
Коэффициенты фильтра не повинуются Rounding mode и параметрам Saturate on integer overflow; вместо этого, они всегда насыщаются и округляются к Nearest
.
Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, который помогает вам установить параметр Product output data type.
Смотрите Задают Типы данных Используя Ассистент Типа данных (Simulink) для получения дополнительной информации.
Используйте этот параметр, чтобы задать, как назвать продукт выходным словом и дробными длинами. Обратитесь к Типам данных с фиксированной точкой и Типам данных Умножения для рисунков, изображающих использование типа выходных данных продукта в этом блоке:
Когда вы выбираете Inherit: Same as input
, эти характеристики совпадают с теми из входа к блоку.
Когда вы выбираете fixdt([],16,0)
, можно ввести размер слова и дробную длину продукта вывод в битах.
Когда вы выбираете <data type expression>
, можно ввести выражение типа данных.
Если вы установите Coefficient source (на вкладке Main) к Input port
продукт, то Вывод наследует свой знак согласно входным параметрам. Если или или оба входа I1 и I2 будут подписаны, продукт, то Вывод будет подписан. В противном случае продукт Вывод без знака. Следующая таблица показывает все случаи.
Знак входа I1 | Знак входа I2 | Знак продукта Вывод |
---|---|---|
без знака | без знака | без знака |
без знака | со знаком | со знаком |
со знаком | без знака | со знаком |
со знаком | со знаком | со знаком |
Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, который помогает вам установить параметр Product output data type.
Смотрите Задают Типы данных Используя Ассистент Типа данных (Simulink) для получения дополнительной информации.
Используйте этот параметр, чтобы задать, как определять слово аккумулятора и дробные длины. Обратитесь к Типам данных с фиксированной точкой и Типам данных Умножения для рисунков, изображающих использование типа данных аккумулятора в этом блоке. Тип данных аккумулятора только используется, когда оба входных параметров ко множителю комплексные:
Когда вы выбираете Inherit: Same as input
, эти характеристики совпадают с теми из входа к блоку.
Когда вы выбираете Inherit: Same as product output
, эти характеристики совпадают с теми из продукта вывод.
Когда вы выбираете fixdt([],16,0)
, можно ввести размер слова и дробную длину аккумулятора в битах.
Когда вы выбираете Slope and bias scaling
, можно ввести размер слова в битах и наклоне аккумулятора. Все сигналы в программном обеспечении Computer Vision Toolbox™ имеют смещение 0.
Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, который помогает вам установить параметр Product output data type.
Смотрите Задают Типы данных Используя Ассистент Типа данных (Simulink) для получения дополнительной информации.
Выберите, как задать размер слова и дробная продолжительность вывода блока:
Когда вы выбираете Inherit: Same as input
, эти характеристики совпадают с теми из входа к блоку.
Когда вы выбираете fixdt([],16,0)
, можно ввести размер слова и дробная продолжительность вывода в битах.
Можно принять решение установить со знаком из вывода к Auto
, Signed
или Unsigned
.
Когда вы выбираете <data type expression>
, можно ввести выражение типа данных.
Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, который помогает вам установить параметр Product output data type.
Смотрите Задают Типы данных Используя Ассистент Типа данных (Simulink) для получения дополнительной информации.
Выберите этот параметр, чтобы препятствовать тому, чтобы Fixed-Point Tool заменили типы данных, которые вы задаете на маске блока. Для получения дополнительной информации смотрите fxptdlg
, страницу с описанием на Fixed-Point Tool в документации Simulink®.
Image Processing Toolbox |