Выполните 2-D конечная импульсная характеристика на входной матрице
Фильтрация
visionfilter
Блок 2-D фильтра с конечной импульсной характеристикой (КИХ) фильтрует матрицу входа I
использование матрицы коэффициентов H
или векторы коэффициентов HH
и HV
.
Порт | Ввод/вывод | Поддерживаемые типы данных | Комплексные числа |
---|---|---|---|
Я | Вектор или матрица значений интенсивности |
| Да |
H | Матрица коэффициентов фильтра | То же, что и у меня. | Да |
ГД | Вектор коэффициентов фильтра | То же, что и у меня. Значение входа к портам HH и HV должно быть совпадающим типом данных. | Да |
HV | Вектор коэффициентов фильтра | То же, что и у меня. Значение входа к портам HH и HV должно быть совпадающим типом данных. | Да |
PVal | Скалярное значение, которое представляет значение постоянной подстройки | Вход должен иметь совпадающий тип данных, что и вход в I порт. | Да |
Выход | Скаляр, вектор или матрица отфильтрованных значений | То же, что и у меня. | Да |
Если вход имеет тип данных с плавающей точкой, то выход использует совпадающий тип данных. В противном случае выходы могут быть любым типом данных с фиксированной точкой.
Установите флажок 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 Specify via dialog
параметры Vertical coefficients (across height) и Horizontal coefficients (across width) отображаются в диалоговом окне. Можно использовать эти параметры, чтобы ввести векторы вертикального и горизонтального коэффициентов фильтра, соответственно.
Можно также использовать переменные HCOL
и HROW
, выходные выходы isfilterseparable
функция, для этих параметров. Если установить флажок Separable filter coefficients, а затем выбрать Coefficient source Input port
на блоке появляются порты HV и HH. Используйте эти порты, чтобы задать векторы вертикальных и горизонтальных коэффициентов фильтра.
Если снять флажок Separable filter coefficients и выбрать Coefficient source Specify via dialog
параметр Coefficients появляется в диалоговом окне. Используйте этот параметр, чтобы ввести матрицу коэффициентов фильтра.
Если снять флажок Separable filter coefficients и выбрать Coefficient source Input port
, порт H появляется на блоке. Используйте этот порт, чтобы задать матрицу коэффициентов фильтра.
Блок выводит результат операции фильтрации в порте Выхода. Параметр Output size и размеры входов в портах I и H диктуют размерности выхода. Например, предположим, что вход в порту I имеет размерности (Mi, Ni), а вход в порту H имеет размерности (Mh, Nh). Если вы выбираете Output size Full
, выход имеет размерности (Mi + Mh -1, Ni + Nh -1). Если вы выбираете Output size Same as input port I
, выход имеет те же размерности что и вход в порту I. Если вы выбираете Output size 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 из Input port
порт PVal появляется на блоке. Используйте этот порт, чтобы задать постоянное значение, которым можно дополнить матрицу. Значение pad должно быть вещественным, если входное изображение реально. Вы получите сообщение об ошибке, если значение pad комплексно, когда входное изображение реально.
Используйте параметр Filtering based on, чтобы задать алгоритм, по которому блок фильтрует матрицу входа. Если вы выбираете Convolution
и установите параметр Output size равным Full
, блок фильтрует ваш вход с помощью следующего алгоритма
где и . Если вы выбираете Correlation
и установите параметр Output size равным Full
, блок фильтрует ваш вход с помощью следующего алгоритма
где и .
imfilter
функция из продукта Image Processing Toolbox™ аналогично выполняет N-D фильтрацию многомерных изображений.
Следующая схема показывает типы данных, используемые в блоке 2-D FIR Filter для сигналов с фиксированной точкой.
Можно задать коэффициент, выход продукта, аккумулятор и типы выходных данных в маске блока, как обсуждается в параметры.
Выход умножителя находится в продукт типе выходных данных, если хотя бы один из входов в умножитель действителен. Если оба входов в умножитель являются комплексными, результат умножения находится в типе данных аккумулятора. Для получения дополнительной информации о выполненном комплексном умножении смотрите Типы данных умножения.
Установите этот флажок, если коэффициенты фильтра разделимы. Использование разделяемых коэффициентов фильтра уменьшает количество вычислений, которые блок должен выполнить, чтобы вычислить выход.
Задайте, как задать коэффициенты фильтра. Выберите Specify via dialog
для ввода коэффициентов в диалоговое окно параметров блоков. Выберите Input port
чтобы задать матрицу коэффициентов фильтра с помощью порта H или портов HH и HV.
Введите действительную или комплексную матрицу коэффициентов фильтра. Этот параметр появляется, если снять флажок Separable filter coefficients и затем выбрать Coefficient source Specify via dialog
. Настраиваемый.
Введите вектор коэффициентов вертикального фильтра для вашего разделяемого фильтра. Этот параметр появляется, если установить флажок Separable filter coefficients, а затем выбрать Coefficient source Specify via dialog
.
Введите вектор коэффициентов горизонтального фильтра для вашего разделяемого фильтра. Этот параметр появляется, если установить флажок Separable filter coefficients, а затем выбрать Coefficient source Specify via dialog
.
Этот параметр управляет размером отфильтрованного выхода. Если вы выбираете Full
, выход имеет размерности (Ma + Mh -1, Na + Nh -1). Если вы выбираете Same as input port I
, выход имеет такие же размерности как и вход в порту I Если вы выбираете Valid
, выход имеет размерности (Ma - Mh + 1, Na - Nh + 1).
Задайте, как дополнить контур матрицы входа. Выберите Constant
чтобы дополнить матрицу постоянным значением. Выберите Replicate
чтобы дополнить ваш вход матрицу повторением ее граничных значений. Выберите Symmetric
чтобы дополнить ваш вход матрицу ее зеркальным изображением. Выберите Circular
чтобы дополнить матрицу входа с помощью циклического повторения ее элементов. Этот параметр появляется, если вы выбираете Output size Full
или Same as input port I
.
Используйте этот параметр, чтобы задать, как задать постоянное краевое значение. Выберите Specify via dialog
для ввода вашего значения в диалоговое окно параметров блоков. Выберите Input port
чтобы задать ваше постоянное значение с помощью порта PVal. Этот параметр появляется, если вы выбираете Padding options Constant
.
Введите постоянное значение, которым можно дополнить матрицу. Этот параметр видим, если для параметра Pad value source вы выбираете Specify via dialog
. Настраиваемый. Значение pad должно быть вещественным, если входное изображение реально. Вы получите сообщение об ошибке, если значение pad комплексно, когда входное изображение реально.
Задайте алгоритм, которым блок фильтрует матрицу входа. Можно выбрать Convolution
или Correlation
.
Выберите Режимы округления для операций с фиксированной точкой.
Выберите режим переполнения для операций с фиксированной точкой. См. «Точность и область значений».
Выберите, как задать размер слова и длину дроби коэффициентов фильтра.
Когда вы выбираете 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).
Выберите этот параметр, чтобы инструменты с фиксированной точкой не переопределяли типы данных, заданные в маске блока. Для получения дополнительной информации см. fxptdlg
(Fixed-Point Designer), ссылочная страница на Fixed-Point Tool в Simulink® документация.
Image Processing Toolbox |