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

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

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

Создайте сериализатор, возражают и задают размер неактивных пиксельных областей.

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

Алгоритмы

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

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