exponenta event banner

visionhdl. ImageFilter

Описание

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

Примечание

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

Строительство

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

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

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

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

coeff

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

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

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

Выберите степень два, которая соответствует количеству активных пикселов в горизонтальной линии. Если задано значение, которое не является степенью два, объект использует следующую наибольшую степень два. Объект распределяет (строки коэффициентов - 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 фильтрация FIR
Общие для всех системных объектов
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.

Алгоритмы

Этот объект реализует алгоритмы, описанные на странице ссылок на блоки фильтра изображений.

См. также

| | (Панель инструментов обработки изображений)

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