extractLBPFeatures

Извлеките функции локального бинарного шаблона (LBP)

Синтаксис

features = extractLBPFeatures(I)
features = extractLBPFeatures(I,Name,Value)

Описание

features = extractLBPFeatures(I) возвращает извлеченный универсальный локальный бинарный шаблон (LBP) в полутоновое изображение. Функции LBP кодируют локальную информацию о структуре.

пример

features = extractLBPFeatures(I,Name,Value) дополнительные опции использования заданы одним или несколькими аргументами пары Name,Value.

Примеры

свернуть все

Считайте изображения, которые содержат различные структуры.

brickWall = imread('bricks.jpg');
rotatedBrickWall = imread('bricksRotated.jpg');
carpet = imread('carpet.jpg');

Отобразите изображения.

figure
imshow(brickWall)
title('Bricks')

figure
imshow(rotatedBrickWall)
title('Rotated Bricks')

figure
imshow(carpet)
title('Carpet')

Извлеките функции LBP от изображений, чтобы закодировать их информацию о структуре.

lbpBricks1 = extractLBPFeatures(brickWall,'Upright',false);
lbpBricks2 = extractLBPFeatures(rotatedBrickWall,'Upright',false);
lbpCarpet = extractLBPFeatures(carpet,'Upright',false);

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

brickVsBrick = (lbpBricks1 - lbpBricks2).^2;
brickVsCarpet = (lbpBricks1 - lbpCarpet).^2;

Визуализируйте квадратичную невязку, чтобы сравнить кирпичи по сравнению с кирпичами и кирпичами по сравнению с ковром. Квадратичная невязка меньше, когда изображения имеют подобную структуру.

figure
bar([brickVsBrick; brickVsCarpet]','grouped')
title('Squared Error of LBP Histograms')
xlabel('LBP Histogram Bins')
legend('Bricks vs Rotated Bricks','Bricks vs Carpet')

Читайте в демонстрационном изображении и преобразуйте его в шкалу полутонов.

I = imread('gantrycrane.png');
I = rgb2gray(I);

Извлеките ненормированные функции LBP так, чтобы можно было применить пользовательскую нормализацию.

lbpFeatures = extractLBPFeatures(I,'CellSize',[32 32],'Normalization','None');

Измените функции LBP во многий соседний номер массива ячеек, чтобы получить доступ к гистограммам для каждой отдельной ячейки.

numNeighbors = 8;
numBins = numNeighbors*(numNeighbors-1)+3;
lbpCellHists = reshape(lbpFeatures,numBins,[]);

Нормируйте каждую гистограмму ячейки LBP с помощью нормы L1.

lbpCellHists = bsxfun(@rdivide,lbpCellHists,sum(lbpCellHists));

Измените вектор функций LBP назад к 1 на N характеристический вектор.

lbpFeatures = reshape(lbpCellHists,1,[]);

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

свернуть все

Введите изображение, заданное как M-by-N 2D полутоновое изображение, которое действительно, и неразреженно.

Типы данных: logical | single | double | int16 | uint8 | uint16

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'NumNeighbors', 8

Параметры алгоритма
Параметры алгоритма LBP управляют, как локальные бинарные шаблоны вычисляются для каждого пикселя во входном изображении.

Количество соседей раньше вычисляло LBP для каждого пикселя во входном изображении, заданном как пара, разделенная запятой, состоящая из 'NumNeighbors' и положительного целого числа. Группа соседей выбрана из циркулярного симметричного шаблона вокруг каждого пикселя. Увеличьте число соседей, чтобы закодировать большую деталь вокруг каждого пикселя. Типичные значения колеблются от 4 до 24.

Радиус кругового шаблона раньше выбирал соседей к каждому пикселю во входном изображении, заданном как пара, разделенная запятой, состоящая из 'Radius' и положительного целого числа. Чтобы получить деталь по большей пространственной шкале, увеличьте радиус. Типичные значения колеблются от 1 до 5.

Флаг инвариантности вращения, заданный как пара, разделенная запятой, состоящая из 'Upright' и логического скаляра. Когда вы устанавливаете это свойство на true, функции LBP не кодируют информацию о вращении. Установите 'Upright' на false, когда вращательно инвариантные функции будут требоваться.

Метод интерполяции раньше вычислял пиксельных соседей, заданных как пара, разделенная запятой, состоящая из 'Interpolation' и вектора символов 'Linear' или 'Nearest'. Используйте 'Nearest' для более быстрого вычисления, но с меньшей точностью.

Параметры гистограммы
Параметры гистограммы определяют, как распределение бинарных шаблонов агрегировано по изображению, чтобы произвести выходные функции.

Размер ячейки, заданный как пара, разделенная запятой, состоящая из 'CellSize' и вектора с 2 элементами. Количество ячеек вычисляется как floor (size (I)/CellSize).

Тип нормализации применился к каждой гистограмме ячейки LBP, заданной как пара, разделенная запятой, состоящая из 'Normalization' и вектора символов 'L2' или 'None'. Чтобы применить пользовательский метод нормализации как шаг последующей обработки, установите это значение к 'None'.

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

свернуть все

Характеристический вектор LBP, возвращенный как 1 N вектором длины N, представляющий количество функций. Функции LBP кодируют локальную информацию о структуре, которую можно использовать для задач, таких как классификация, обнаружение и распознавание. Функциональные разделы входное изображение в неперекрывающиеся ячейки. Чтобы собрать информацию по более крупным областям, выберите большие размеры ячейки. Однако, когда вы увеличиваете размер ячейки, вы теряете локальную деталь. N, зависит от количества ячеек в изображении, numCells, количестве соседей, P и параметра Upright.

Количество ячеек вычисляется как:

numCells = напоминание (floor (size (I)/CellSize))

Данные показывают изображение с девятью гистограммами ячейки. Каждая гистограмма описывает функцию LBP.

Размер гистограммы в каждой ячейке [1, B], где B является количеством интервалов в гистограмме. Количество интервалов зависит от свойства Upright и количества соседей, P.

Вертикально Количество интервалов
true(P x P –1) + 3)
false(P + 2)

Полное полнометражное LBP, N, зависит от количества ячеек и количества интервалов, B:

N = numCells x B

Ссылки

[1] Ojala, T., М. Питикэйнен и Т. Мэенпэа. “Шкала полутонов мультиразрешения и Классификация Структуры Инварианта Вращения С Локальными Бинарными Шаблонами”. Транзакции IEEE согласно Анализу Шаблона и Искусственному интеллекту. Издание 24, Выпуск 7, июль 2002, стр 971-987.

Расширенные возможности

Введенный в R2015b