exponenta event banner

visionhdl. MedianFilter

2-D фильтрация медианы

Описание

visionhdl.MedianFilter выполняет фильтрацию медианы 2-D для потока пикселей. Объект заменяет каждое значение пикселя средним значением соседних пикселей.

Этот объект использует потоковый пиксельный интерфейс со структурой для сигналов управления кадрами. Этот интерфейс позволяет объекту работать независимо от размера и формата изображения и подключаться к другим объектам Vision HDL Toolbox™. Объект принимает и возвращает значение скалярного пикселя и управляющие сигналы в виде структуры, содержащей пять сигналов. Сигналы управления указывают достоверность каждого пикселя и его местоположение в кадре. Чтобы преобразовать матрицу пикселей в поток пикселей и управляющие сигналы, используйте visionhdl.FrameToPixels объект. Полное описание интерфейса см. в разделе Потоковый пиксельный интерфейс.

Примечание

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

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

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

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

MF = visionhdl.MedianFilter(size,Name,Value) возвращает объект System с медианным фильтром, MF, с NeighborhoodSize свойство имеет значение size и дополнительные параметры, указанные одним или несколькими Name,Value аргументы пары.

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

size

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

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

MF

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

Свойства

NeighborhoodSize

Размер окрестности, в пикселях.

  • '3×3' (по умолчанию)

  • '5×5'

  • '7×7'

LineBufferSize

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

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

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

PaddingMethod

Выберите один из этих методов заполнения границы входного изображения.

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

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

  • 'Symmetric' - Задайте значение пикселов заполнения для отражения края изображения.

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

Дополнительные сведения об этих методах см. в разделе Заполнение кромок.

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

PaddingValue

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

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

Методы

шагМедиана пиксельного значения окрестности
Общие для всех системных объектов
release

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

Примеры

свернуть все

В этом примере реализован фильтр 5 × 5 медианы для миниатюры.

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

frmOrig = imread('rice.png');
frmActiveLines = 48;
frmActivePixels = 64;
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);

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

 medianfilt = visionhdl.MedianFilter(...
          'NeighborhoodSize','5x5');

Сериализируйте тестовый образ, вызвав объект сериализатора. 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)] = medianfilt(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 177 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