visionhdl.LookupTable

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

Описание

visionhdl.LookupTable Система object™ использует пользовательскую непосредственную карту, чтобы преобразовать между значением входного пикселя и значением выходного пикселя.

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

Примечание

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

Конструкция

LUT = visionhdl.LookupTable возвращает Системный объект, LUT, это выполняет взаимно-однозначное отображение между входным пикселем и выходным пикселем, согласно содержимому интерполяционной таблицы.

LUT = visionhdl.LookupTable(tabledata) возвращает Системный объект интерполяционной таблицы, LUT, с табличным набором содержимого к TABLEDATA.

Входные параметры

tabledata

Взаимно-однозначное соответствие между входными пикселями и выходными пикселями, заданными как вектор. Этот аргумент устанавливает значение Свойств таблицы.

Выходные аргументы

LUT

visionhdl.LookupTable Системный объект

Свойства

Table

Сопоставьте между значениями входного пикселя и значениями выходного пикселя.

  • Табличные данные являются вектором, строкой или столбцом, любого типа данных. Тип данных табличных данных определяет тип данных pixelOut. Смотрите step метод.

  • Длина табличных данных должна равняться 2WordLength, где WordLength является размером, в битах, pixelIn. Смотрите step метод.

  • Наименьшее представимое значение типа входных данных сопоставляет с первым элементом таблицы, вторых наименьших карт ценности к второму элементу, и так далее. Например, если pixelIn имеет тип данных fixdt(0,3,1), входное значение 0 сопоставляет с первым элементом таблицы, входное значение 0.5 сопоставляет со вторым элементом, 1 картой к третьему, и так далее.

Значение по умолчанию: uint8(0:1:255)

Методы

шагСопоставьте входной пиксель с выходным пикселем на основе табличного содержимого
Характерный для всех системных объектов
release

Позвольте изменения значения свойства Системного объекта

Примеры

развернуть все

Этот пример создает отрицание изображения путем поиска противоположных пиксельных значений в таблице.

Установите размерности тестового изображения и загрузите источник изображения. Выберите фрагмент изображения, совпадающего с желаемым тестовым размером.

frmActivePixels = 64;
frmActiveLines = 48;
frmOrig = imread('rice.png');
frmInput = frmOrig(1:frmActiveLines,1:frmActivePixels);
figure
imshow(frmInput,'InitialMagnification',300)
title 'Input Image'

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

frm2pix = visionhdl.FrameToPixels(...
      'NumComponents',1,...
      'VideoFormat','custom',...
      'ActivePixelsPerLine',frmActivePixels,...
      'ActiveVideoLines',frmActiveLines,...
      'TotalPixelsPerLine',frmActivePixels+10,...
      'TotalVideoLines',frmActiveLines+10,...
      'StartingActiveLine',6,...     
      'FrontPorch',5);

Создайте объект интерполяционной таблицы. Данные о входном пикселе являются типом uint8, таким образом, отрицательная величина 255-| пиксель |. Тип данных выходного пикселя совпадает с типом данных табличного содержимого.

tabledata = uint8(linspace(255,0,256));
inverter = visionhdl.LookupTable(tabledata);

Сериализируйте тестовое изображение. pixIn вектор значений интенсивности. 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)] = inverter(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

Алгоритмы

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

Смотрите также

|

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