exponenta event banner

visionhdl. ImageStatistics

Среднее, отклонение и стандартное отклонение

Описание

visionhdl.ImageStatistics вычисляет среднее значение, дисперсию и стандартное отклонение потоковых видеоданных. Каждый расчет выполняется по всем пикселям в интересующей области ввода (ROI). Объект реализует вычисления, используя аппаратно-эффективные алгоритмы.

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

  • Чтобы изменить размер и размеры ROI, можно манипулировать входными сигналами управления видеопотоком. См. Регионы интересов.

  • Количество допустимых пикселей во входном изображении влияет на точность средней аппроксимации. Чтобы избежать ошибки аппроксимации, используйте изображение, содержащее менее 64 пикселей, кратное 64 пикселям до 642 пикселей, кратное 4096 пикселям до 643 пикселей или кратное 643 пикселям до 644 пикселей. Подробные сведения о средней аппроксимации см. в разделе Алгоритм.

  • Объект вычисляет статистику по кадрам размером до 644 (16 777 216) пикселей.

Примечание

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

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

S = visionhdl.ImageStatistics возвращает объект System, S, которая вычисляет среднее, дисперсию и стандартное отклонение каждого кадра видеопотока.

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

Свойства

mean

Вычислите среднее значение каждого входного кадра. Если для этого свойства задано значение false, step метод не возвращает эти выходные данные.

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

variance

Вычислите дисперсию каждого входного кадра. Если для этого свойства задано значение false, step метод не возвращает эти выходные данные.

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

stdDev

Вычислите стандартное отклонение каждого входного кадра. Если для этого свойства задано значение false, step метод не возвращает эти выходные данные.

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

Методы

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

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

Примеры

свернуть все

В этом примере вычисляются среднее, отклонение и стандартное отклонение миниатюрного изображения.

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

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);

Создайте объект, возвращающий среднее значение, отклонение и стандартное отклонение.

 stats = visionhdl.ImageStatistics();

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

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

[pixIn,ctrlIn] = frm2pix(frmInput);

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

[~,~,numPixelsPerFrame] = getparamfromfrm2pix(frm2pix);
validOut  = false(numPixelsPerFrame,1);
mean  = zeros(numPixelsPerFrame,1,'uint8');
variance  = zeros(numPixelsPerFrame,1,'uint8');
stddev  = zeros(numPixelsPerFrame,1,'uint8');

Для каждого пикселя в потоке увеличьте внутреннюю статистику.

for p = 1:numPixelsPerFrame  
   [mean(p),variance(p),stddev(p),validOut(p)] = stats(pixIn(p),ctrlIn(p));
end

Результаты действительны, когда validOut возвращается true.

mean = mean(validOut==1)
mean = uint8
    125
variance = variance(validOut==1)
variance = uint8
    255
stddev = stddev(validOut==1)
stddev = uint8
    36

Алгоритмы

Этот объект реализует алгоритмы, описанные на странице ссылок блока «Статистика изображения».

См. также

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

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