exponenta event banner

visionhdl. ColorSpaceConverter

Преобразование цветовой информации между цветовыми пространствами

Описание

visionhdl.ColorSpaceConverter преобразует цветовые пространства R 'G' B' и Y 'CbCr, а также преобразует R' G' B 'в интенсивность.

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

Примечание

ColorSpaceConverter Система object™ работает на гамма-скорректированных цветовых пространствах. Однако для упрощения использования объекта System аргументы свойства не включают простое представление.

Примечание

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

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

CSC = visionhdl.ColorSpaceConverter возвращает объект System, CSC, который преобразует R 'G' B' в Y 'CbCr с использованием стандарта Rec. 601 (SDTV).

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

Свойства

Conversion

Преобразование, выполняемое объектом для входного видеопотока.

  • RGB to YCbCr (по умолчанию)

  • YCbCr to RGB

  • RGB to intensity

step способ принимает ввод в виде вектора из трех значений, представляющих один пиксель. При выборе RGB to intensity, выходной сигнал является скалярным значением. В противном случае выходной сигнал представляет собой вектор из трех значений.

ConversionStandard

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

  • Rec. 601 (SDTV) (по умолчанию)

  • Rec. 709 (HDTV)

Это свойство не применяется при установке Conversion кому RGB to intensity.

ScanningStandard

Стандарт сканирования для преобразования HDTV.

  • 1250/50/2:1 (по умолчанию)

  • 1125/60/2:1

Это свойство применяется при установке ConversionStandard кому Rec. 709 (HDTV).

Методы

шагПреобразование одного пикселя между цветовыми пространствами
Общие для всех системных объектов
release

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

Примеры

свернуть все

В этом примере показано, как преобразовать данные потока пикселей в другое цветовое пространство.

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

frmActivePixels = 64;
frmActiveLines = 48;
frmOrig = imread('fabric.png');
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',3,...
      'VideoFormat','custom',...
      'ActivePixelsPerLine',frmActivePixels,...
      'ActiveVideoLines',frmActiveLines,...
      'TotalPixelsPerLine',frmActivePixels+10,...
      'TotalVideoLines',frmActiveLines+10,...
      'StartingActiveLine',6,...     
      'FrontPorch',5);

Создайте объект-преобразователь цветового пространства. Выберите преобразование из RGB в градации серого.

convertrgb2gray = visionhdl.ColorSpaceConverter(...
      'Conversion','RGB to intensity');

Сериализируйте тестовый образ. pixIn является numPixelsPerFrame-by-3 матрицей. 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);
for p = 1:numPixelsPerFrame  
    [pixOut(p),ctrlOut(p)] = convertrgb2gray(pixIn(p,:),ctrlIn(p));
end

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

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