visionhdl.ColorSpaceConverter

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

Описание

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

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

Примечание

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Значение парные аргументы. Name имя свойства и Value соответствующее значение. Name должен появиться в одинарных кавычках (''). Можно задать несколько аргументов пары "имя-значение" в любом порядке как Name1,Value1,...,NameN,ValueN. Свойства, не заданные, сохраняют свои значения по умолчанию.

Свойства

Conversion

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

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

  • YCbCr to RGB

  • RGB to intensity

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

ConversionStandard

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

  • 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-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

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

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