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(sizei)/CellSize).

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

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

свернуть все

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

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

numCells = напоминание (floor(sizei)/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