extractLBPFeatures

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

Описание

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 полутоновое изображение, которое действительно, и неразреженно.

Типы данных: логический | single | double | int16 | uint8 | uint16

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

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

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

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

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

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

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

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

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

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

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

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

свернуть все

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

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

numCells = напоминание (floorразмер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

Для просмотра документации необходимо авторизоваться на сайте