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' — Установите значение дополнительных пикселей, чтобы зеркально отразить ребро изображения.

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

  • '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

Режим 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'

Figure contains an axes object. The axes object 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'

Создайте объект 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

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

Алгоритмы

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

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

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

| (Image Processing Toolbox) |

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