visionhdl.ColorSpaceConverter

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

Описание

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

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

Примечание

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

Примечание

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

Конструкция

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

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

Свойства

Conversion

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

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

  • YCbCr to RGB

  • RGB to intensity

The 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.

Алгоритмы

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

См. также

| | | (Image Processing Toolbox) | (Набор Image Processing Toolbox)

Введенный в R2015a
Для просмотра документации необходимо авторизоваться на сайте