visionhdl.ImageFilter

2-D конечная импульсная характеристика

Описание

visionhdl.ImageFilter выполняет двумерную фильтрацию по потоку пикселей с конечной импульсной характеристикой (КИХ). Он поддерживает использование программируемых коэффициентов фильтра.

Примечание

Начиная с R2016b, вместо использования step метод для выполнения операции, заданной Системной object™, можно вызвать объект с аргументами, как если бы это была функция. Для примера, y = step(obj,x) и y = obj(x) выполнять эквивалентные операции.

Конструкция

F = visionhdl.ImageFilter возвращает Системный объект, F, который выполняет двумерную фильтрацию конечной импульсной характеристики на потоке входа пикселей.

F = visionhdl.ImageFilter(Name,Value) возвращает 2-D конечные импульсные характеристики фильтр Системного объекта, F, с дополнительными опциями, заданными одним или несколькими Name,Value аргументы в виде пар. Name является именем свойства и Value - соответствующее значение. Name должны находиться внутри одинарных кавычек (''). Можно задать несколько аргументы пары "имя-значение" в любом порядке как Name1,Value1,...,NameN,ValueN. Не заданные свойства сохраняют значения по умолчанию.

F = visionhdl.ImageFilter(coeff,lineSize,Name,Value) возвращает 2-D конечные импульсные характеристики фильтр Системного объекта, F, с Coefficients значение свойства установлено в coeff, а LineBufferSize свойство к lineSize, и дополнительные опции, заданные одним или несколькими Name,Value аргументы в виде пар.

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

coeff

Фильтруйте коэффициенты, заданные как матрица. Каждая размерность матрицы должно иметь не менее 2 элементов и не более 64 элементов. Этот аргумент устанавливает значение свойства Cofficients.

lineSize

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

Выходные аргументы

F

visionhdl.ImageFilter Системный объект

Свойства

CoefficientsSource

Выберите источник для определения коэффициентов фильтра.

  • 'Property' (по умолчанию) - Выберите это значение, чтобы задать коэффициенты фильтра с помощью Coefficients свойство.

  • 'Input port' - Выберите это значение, чтобы задать коэффициенты фильтра с помощью coeff аргумент.

Coefficients

Коэффициенты фильтра, заданные как матрица. Каждая размерность матрицы должно иметь не менее 2 элементов и не более 64 элементов. Это свойство применяется при установке CoefficientsSource на 'Property'.

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

По умолчанию: [1,0;0,-1]

PaddingMethod

Выберите один из следующих методов для заполнения контура входного изображения.

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

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

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

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

Для получения дополнительной информации об этих методах см. Раздел «Заполнение ребер».

По умолчанию: 'Constant'

PaddingValue

Постоянное значение, используемое для дополнения контура входного изображения. Это свойство применяется при установке PaddingMethod на 'Constant'. Объект переводит это значение в тот совпадающий тип данных, что и входной пиксель.

По умолчанию: 0

LineBufferSize

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

Выберите степень двойки, которая будет включать количество активных пикселей в горизонтальной линии. Если вы задаете значение, которое не является степенью двойки, объект использует следующую наибольшую степень двойки. Объект выделяет (coefficient rows – 1) -by- LineBufferSize местоположения памяти для хранения пикселей.

По умолчанию: 2048

CoefficientsDataType

Выберите метод для определения типа данных коэффициентов фильтра. Это свойство применяется при установке CoefficientsSource на 'Property'.

  • 'Same as first input''(по умолчанию) - Устанавливает тип данных коэффициентов, соответствующий типу данных pixelIn аргумент step способ.

  • 'custom' - Устанавливает тип данных коэффициентов, соответствующий типу данных, заданному в CustomCoefficientsDataType свойство.

При преобразовании коэффициентов в заданный тип данных объект округляет до ближайшего представимого значения и насыщается при переполнении.

CustomCoefficientsDataType

Тип данных для коэффициентов фильтра, заданный как numerictype(signed,WL,FL), где WL - размер слова, а FL - длина дроби в битах. Это свойство применяется при установке CoefficientsDataType на 'custom'.

По умолчанию: numerictype(true,16,15)

OutputDataType

Выберите метод для определения типа данных выходных пикселей.

  • 'Same as first input' (по умолчанию) - устанавливает тип данных выходных пикселей, соответствующий типу данных pixelIn аргумент step способ.

  • 'full precision' - Вычисляет внутренние и выходные типы данных с помощью правил полной точности. Эти правила обеспечивают точные цифры с фиксированной точкой и предотвращают квантование внутри объекта. Биты добавляются, по мере необходимости, чтобы предотвратить округление и переполнение.

  • 'custom' - Устанавливает тип данных выходных пикселей, соответствующий типу данных, заданному в CustomOutputDataType свойство.

CustomOutputDataType

Тип данных для пикселей выходов, заданный как numerictype(signed,WL,FL), где WL - размер слова, а FL - длина дроби в битах. Это свойство применяется только при установке OutputDataType на custom.

По умолчанию: numerictype(true,8,0)

OverflowAction

Действие переполнения, используемое для операций с фиксированной точкой.

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

По умолчанию: Wrap

RoundingMethod

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

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

По умолчанию: Floor

Методы

шаг2-D конечная импульсная характеристика
Общий для всех системных объектов
release

Разрешить изменение значения свойства системного объекта

Примеры

свернуть все

Этот пример реализует фильтр размытия 2-D на миниатюрном изображении.

Загрузите исходное изображение из файла. Выберите фрагмент изображения, совпадающую с желаемым размером теста.

frmOrig = imread('rice.png');
frmActivePixels = 64;
frmActiveLines = 48;
frmInput = frmOrig(1:frmActiveLines,1:frmActivePixels);
figure
imshow(frmInput,'InitialMagnification',300)
title 'Input Image'

Figure contains an axes. The axes with title Input Image contains an object of type image.

Создайте объект сериализатора и укажите размер неактивных пиксельных областей.

frm2pix = visionhdl.FrameToPixels(...
      'NumComponents',1,...
      'VideoFormat','custom',...
      'ActivePixelsPerLine',frmActivePixels,...
      'ActiveVideoLines',frmActiveLines,...
      'TotalPixelsPerLine',frmActivePixels+10,...
      'TotalVideoLines',frmActiveLines+10,...
      'StartingActiveLine',6,...     
      'FrontPorch',5);

Создайте объект фильтра.

 filt2d = visionhdl.ImageFilter(...
          'Coefficients',ones(2,2)/4,...
          'CoefficientsDataType','Custom',...
          'CustomCoefficientsDataType',numerictype(0,1,2),...
          'PaddingMethod','Symmetric');

Сериализуйте тестовое изображение путем вызова объекта сериализатора. pixIn является вектором значений интенсивности. ctrlIn является вектором структур управляющего сигнала.

Примечание.Синтаксис объекта выполняется только в R2016b или более поздней версии. Если вы используете более ранний релиз, замените каждый вызов объекта на эквивалентный step синтаксис. Для примера замените myObject(x) с step(myObject,x).

[pixIn,ctrlIn] = frm2pix(frmInput);

Подготовьтесь к обработке пикселей путем предварительного выделения выходных векторов.

[~,~,numPixelsPerFrame] = getparamfromfrm2pix(frm2pix);
pixOut = zeros(numPixelsPerFrame,1,'uint8');
ctrlOut  = repmat(pixelcontrolstruct,numPixelsPerFrame,1);

Для каждого пикселя в заполненной системе координат вычислите отфильтрованное значение. Контролируйте сигналы управления, чтобы определить задержку объекта. Задержка строения фильтра зависит от:

  • Количество активных пикселей в линии.

  • Размер ядра фильтра.

  • Оптимизация симметричных или повторяющихся коэффициентов.

foundValIn = false;
foundValOut = false;
for p = 1:numPixelsPerFrame  
    if (ctrlIn(p).valid && foundValIn==0)
        foundValIn = p;
    end
    [pixOut(p),ctrlOut(p)] = filt2d(pixIn(p),ctrlIn(p));
    if (ctrlOut(p).valid && foundValOut==0)
        foundValOut = p;
    end
end
sprintf('object latency is %d cycles',foundValOut-foundValIn)
ans = 
'object latency is 101 cycles'

Создайте объект десериализатора с форматом, соответствующим формату сериализатора. Преобразуйте поток пикселей в систему координат изображения путем вызова объекта десериализатора. Отобразите получившееся изображение.

pix2frm = visionhdl.PixelsToFrame(...
      'NumComponents',1,...
      'VideoFormat','custom',...
      'ActivePixelsPerLine',frmActivePixels,...
      'ActiveVideoLines',frmActiveLines);
[frmOutput,frmValid] = pix2frm(pixOut,ctrlOut);
if frmValid
    figure
    imshow(frmOutput, 'InitialMagnification',300)
    title 'Output Image'
end

Figure contains an axes. The axes with title Output Image contains an object of type image.

Алгоритмы

Этот объект реализует алгоритмы, описанные на Image Filter блочных страниц с описанием.

См. также

| | (Image Processing Toolbox)

Введенный в R2015a