visionhdl.ImageFilter

Описание

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

Примечание

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

Конструкция

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

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

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

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

coeff

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

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' — Заполняет входную матрицу ее зеркальным отображением.

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

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

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

Значение по умолчанию: Floor

Методы

шаг2D КИХ-фильтрация
Характерный для всех системных объектов
release

Позвольте изменения значения свойства Системного объекта

Примеры

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

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

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

frmOrig = imread('rice.png');
frmActivePixels = 64;
frmActiveLines = 48;
frmInput = frmOrig(1:frmActiveLines,1:frmActivePixels);
figure
imshow(frmInput,'InitialMagnification',300)
title 'Input 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'

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

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

Алгоритмы

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

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

| |

Представленный в R2015a