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