Извлеките функции локального бинарного шаблона (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,[]);
I
— Введите изображениеВведите изображение, заданное как M-by-N 2D полутоновое изображение, которое действительно, и неразреженно.
Типы данных: логический |
single
| double
| int16
| uint8
| uint16
Задайте дополнительные разделенные запятой пары Name,Value
аргументы. Name
имя аргумента и Value
соответствующее значение. Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN
.
'NumNeighbors'
,8
Параметры алгоритма
Параметры алгоритма LBP управляют, как локальные бинарные шаблоны вычисляются для каждого пикселя во входном изображении.
'NumNeighbors'
— Количество соседей
(значение по умолчанию) | положительное целое числоКоличество соседей использовалось для расчета LBP в каждом пикселе во входном изображении, заданном как разделенная запятой пара, состоящая из 'NumNeighbors
'и положительное целое число. Группа соседей выбрана из циркулярного симметричного шаблона вокруг каждого пикселя. Увеличьте число соседей, чтобы закодировать большую деталь вокруг каждого пикселя. Типичные значения лежат в диапазоне от 4
к 24
.
'Radius'
— Радиус кругового шаблона, чтобы выбрать соседей
(значение по умолчанию) | положительное целое числоРадиус кругового шаблона раньше выбирал соседей к каждому пикселю во входном изображении, заданном как разделенная запятой пара, состоящая из 'Radius
'и положительное целое число. Чтобы получить деталь по большей пространственной шкале, увеличьте радиус. Типичные значения лежат в диапазоне от 1
к 5
.
'Upright'
— Флаг инвариантности вращенияtrue
| логический скалярФлаг инвариантности вращения, заданный как разделенная запятой пара, состоящая из 'Upright
'и логический скаляр. Когда вы устанавливаете это свойство на true
, функции LBP не кодируют информацию о вращении. Установите 'Upright
'к false
когда вращательно инвариантные функции требуются.
'Interpolation'
метод интерполяции'Linear'
(значение по умолчанию) | 'Nearest'
Метод интерполяции использовался для расчета пиксельных соседей, заданных как разделенная запятой пара, состоящая из 'Interpolation
'и любой 'Linear'
или 'Nearest'
. Используйте 'Nearest'
для более быстрого расчета, но с меньшей точностью.
Параметры гистограммы
Параметры гистограммы определяют, как распределение бинарных шаблонов агрегировано по изображению, чтобы произвести выходные функции.
'Normalization'
— Тип нормализации'L2'
(значение по умолчанию) | 'None'
Тип нормализации применился к каждой гистограмме ячейки LBP, заданной как разделенная запятой пара, состоящая из 'Normalization
'и любой 'L2'
или 'None'
. Чтобы применить пользовательский метод нормализации как шаг последующей обработки, установите это значение к 'None'
.
features
— Характеристический вектор LBPХарактеристический вектор 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.
Указания и ограничения по применению:
Не генерирует зависимую библиотеку платформы.
MSERRegions
| SURFPoints
| detectBRISKFeatures
| detectFASTFeatures
| detectHarrisFeatures
| detectMSERFeatures
| detectMinEigenFeatures
| detectSURFFeatures
| extractFeatures
| extractHOGFeatures
| matchFeatures
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
Вы щелкнули по ссылке, которая соответствует команде MATLAB:
Выполните эту команду, введя её в командном окне MATLAB.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.