一、LBP算子
局部二值模式是一种灰度范围内的非参数描述子,具有对灰度变化不敏感且计算速度快等优点[1].LBP算子利用中心像素的领域像素与中心像素的比较结果进行编码。常见的LBPP,R模式有:
P,R分别代表领域像素点的个数和领域半径,上图所示分别为8点半径为1;16点半径为2;8点半径为2的模式。
LBP算子计算实例如下:从左上角开始,沿顺时针方向依次与中心像素进行比较,如果大于等于中心像素的取值为1,否则为0.得到一个01序列,我们视为一个二进制数。将二进制数转化为十进制数即可。
LBP算子的数学表述如下:
以下,我们根据实例来编写代码:
clear all; clc; img=imread('lena.jpg'); img=rgb2gray(img); [m,n]=size(img); imgn=zeros(m,n); for i=2:m-1 for j=2:n-1 for p=i-1:i+1 for q =j-1:j+1 if img(p,q) > img(i,j)||img(p,q) ==img(i,j) if p~=i || q~=j if(p==i&&q==j-1) imgn(i,j)=imgn(i,j)+2^0; end if(p==i+1&&q==j-1) imgn(i,j)=imgn(i,j)+2^1; end if(p==i+1&&q==j) imgn(i,j)=imgn(i,j)+2^2;