區域性二進位制模式(Local Binary Patterns,LBP)——MATLAB實現
阿新 • • 發佈:2019-01-07
基本LBP:
逐行掃描影象,以影象中的每個畫素點得灰度值為閾值,對其周圍3*3的8鄰域進行二值化,並從左上點開始按照順時針方向(或逆時針,統一即可)將二值化結果組成一個二進位制數,轉換為十進位制作為中心點的響應。這樣可以得到一個LBP影象。
例如:
這個響應影象的直方圖稱為LBP統計直方圖或LBP直方圖。
生成LBP影象MATLAB程式碼:
%區域性二進位制模式LBP
close all
clear all
img=imread('sophie.bmp');
[m n]=size(img);
I=zeros(m,n);
for i=1:m
for j=1:n
b0=0 ;
b1=0;
b2=0;
b3=0;
b4=0;
b5=0;
b6=0;
b7=0;
if(i-1>0 && j-1>0 && i+1<=m && j+1<=n)
if(img(i-1,j-1)>img(i,j))
b0=1;
end
if(img(i-1,j)>img(i,j))
b1=1 ;
end
if(img(i-1,j+1)>img(i,j))
b2=1;
end
if(img(i,j+1)>img(i,j))
b3=1;
end
if(img(i+1,j+1)>img(i,j))
b4=1;
end
if (img(i+1,j)>img(i,j))
b5=1;
end
if(img(i+1,j-1)>img(i,j))
b6=1;
end
if(img(i,j-1)>img(i,j))
b7=1;
end
if(img(i+1,j-1)>img(i,j))
b5=1;
end
b=b0+b1*2^1+b2*2^2+b3*2^3+b4*2^4+b5*2^5+b6*2^6+b7*2^7;
I(i,j)=b;
end
end
figure
subplot(1,2,1),subimage(img);
title('原圖');
subplot(1,2,2),subimage(I);
title('LBP影象');
執行結果如下: