我现在采用基于滑动窗口的LBP特征提取。对窗口内像素点进行一系列运算,运算结束后窗口向右或向下移动一步,直至完成对整幅图像的处理。设定窗口的大小为16×16,并设定窗口在水平方向和垂直方向的滑动步长为窗口宽度的一半。
clc
clear all
img=imread('C:\bach.png');
X=im2bw(img);
function hst = LBP(X)
%Returns LBP histogram (256 bins) of picture X.
%
% 1 2 4
% weights = 128 0 8
% 64 32 16
%
%the size of X must be at least 3x3 pixels
[sy,sx]= size(X);
Xi = zeros(sy+2,sx+2);
Xi(2:sy+1,2:sx+1) = X;
Xi1 = zeros(sy+2,sx+2);Xi2 = zeros(sy+2,sx+2);Xi3 = zeros(sy+2,sx+2);Xi4= zeros(sy+2,sx+2);
Xi5 = zeros(sy+2,sx+2);Xi6 = zeros(sy+2,sx+2);Xi7 = zeros(sy+2,sx+2);Xi8 = zeros(sy+2,sx+2);
Xi1(3:sy+2,3:sx+2) = X;