visionhdl.DemosaicInterpolator

Создайте полные пиксельные данные RGB из пикселей шаблона Bayer

Описание

visionhdl.DemosaicInterpolator предоставляет фильтр интерполяции шаблона Байера для потоковых данных видео. Можно выбрать билинейную интерполяцию низкой сложности или билинейную интерполяцию с исправлением градиента умеренной сложности. Объект реализует вычисления, используя аппаратно эффективные алгоритмы для генерации HDL-кода.

  • Объект выполняет билинейную интерполяцию в 3 × 3 пиксельном окне, используя только сложения и битовые сдвиги.

  • Объект выполняет коррекцию градиента в 5 × 5 пиксельном окне. Объект реализует вычисление с использованием сдвига бит, сложения и умножения канонической цифры со знаком (CSD) низкого порядка.

Примечание

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

Конструкция

D = visionhdl.DemosaicInterpolator возвращает Системный объект, D, который интерполирует данные R 'G' B' из потока пикселей шаблона Байера.

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

Свойства

InterpolationAlgorithm

Алгоритм, который объект использует, чтобы вычислить отсутствующие пиксельные значения.

  • Bilinear - Среднее значение пиксельных значений в окружающем 3 × 3 районе.

  • Gradient-corrected linear (по умолчанию) - Билинейное среднее значение поправкой на градиент интенсивности.

SensorAlignment

Цветовая последовательность пикселей в вход потоке.

Задайте последовательность пикселей R, G и B, которые соответствуют блоку пикселей 2 на 2 в левом верхнем углу входа изображения. Задайте последовательность в порядке слева направо, сверху вниз. Для образца значение по умолчанию, RGGB, представляет изображение с этим шаблоном.

LineBufferSize

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

Выберите степень 2, которая учитывает количество активных пикселей в горизонтальной линии. Если вы задаете значение, которое не является степенью двойки, объект использует следующую наибольшую степень двойки. Когда вы задаете InterpolationAlgorithm на Bilinearобъект выделяет 2-by- LineBufferSize местоположения памяти. Когда вы задаете InterpolationAlgorithm на Gradient-corrected linearобъект выделяет 4-by- LineBufferSize местоположения памяти.

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

Методы

шагДемосапируйте видеопоток шаблона Байера
Общий для всех системных объектов
release

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

Примеры

свернуть все

Этот пример создает полные пиксельные данные RGB из миниатюрного изображения шаблона Байера.

Установите размерности тестового изображения. Загрузите исходный файл изображения. Это изображение находится в шаблоне Байера: каждый пиксель представлен одним значением, чередуя зеленые значения с красными и синими значениями. Затем выберите фрагмент изображения, совпадающую с желаемым размером теста. Эти смещения выбирают лицо женщины на изображении.

frmActivePixels = 256;
frmActiveLines = 192;
frmOrig = imread('mandi.tif');
frmInput = frmOrig(900:899+frmActiveLines, 2350:2349+frmActivePixels);
figure
imshow(frmInput)
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);

Создайте объект интерполятора. Задайте последовательность значений цвета, соответствующих пикселям 2 на 2 в левом верхнем углу изображения.

BayerInterpolator = visionhdl.DemosaicInterpolator(...
   'SensorAlignment', 'RGGB');

Сериализуйте тестовое изображение. pixIn является вектором значений пикселей. ctrlIn является вектором структур управляющего сигнала.

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

[pixIn,ctrlIn] = frm2pix(frmInput);

Настройте переменные и сгенерируйте триплет {R, G, B} для каждого пикселя в потоке. Этот пример печатает сообщение о прогрессе каждые 32 линии.

[pixels,lines,numPixelsPerFrame] = getparamfromfrm2pix(frm2pix);
ctrlOut  = repmat(pixelcontrolstruct,numPixelsPerFrame,1);
pixOut = zeros(numPixelsPerFrame,3,'uint8');
lineCount = 1;
for p = 1:numPixelsPerFrame 
    if ctrlIn(p).hEnd
         lineCount = lineCount+1;
         if mod(lineCount,32)==0
              fprintf('Processing... line %d\n',lineCount)
         end
    end
    [pixOut(p,:),ctrlOut(p)] = BayerInterpolator(pixIn(p),ctrlIn(p));
end
Processing... line 32
Processing... line 64
Processing... line 96
Processing... line 128
Processing... line 160
Processing... line 192

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

pix2frm = visionhdl.PixelsToFrame(...
      'NumComponents',3,...
      'VideoFormat','custom',...
      'ActivePixelsPerLine',frmActivePixels,...
      'ActiveVideoLines',frmActiveLines);
[frmOutput,frmValid] = pix2frm(pixOut,ctrlOut);
if frmValid
    figure
    imshow(frmOutput)
    title 'Output Image'
end

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

Алгоритмы

Этот объект реализует алгоритмы, описанные на Demosaic Interpolator блочных страниц с описанием.

См. также

| | (Image Processing Toolbox)

Введенный в R2015a