LBP米绕,Local Binary Patterns款侵,中文名稱為局部二值模式,是一種用來描述圖像局部紋理特征的算子湃累,具有旋轉(zhuǎn)不變性和灰度不變性的特點勃救。
LBP方法最早是1994年碍讨,Timo Ojala在 Multiresolution Gray-scale and Rotation Invariant Texture Classification with Local Binary Patterns文章中提出。
【原始的LBP算法】
LBP的核心思想是將圖像的某塊像素和它周邊一定范圍內(nèi)的像素進(jìn)行對比蒙秒,求得LBP值勃黍。
首先,取一定的范圍晕讲。最原始的LBP算法是以該像素為中心覆获,在附近取一個3*3的九宮格圖形,然后以中心像素為閾值瓢省,周圍大于等于改值的則記為1弄息,小于該值的則記為0。
然后從第一格開始勤婚,順時針得到一個二進(jìn)制序列摹量,再將這個二進(jìn)制序列轉(zhuǎn)化成十進(jìn)制數(shù)則得到該像素點的LBP值。
LBP馒胆,Local Binary Patterns缨称,中文名稱為局部二值模式,是一種用來描述圖像局部紋理特征的算子祝迂,具有旋轉(zhuǎn)不變性和灰度不變性的特點睦尽。
LBP方法最早是1994年,Timo Ojala在 Multiresolution Gray-scale and Rotation Invariant Texture Classification with Local Binary Patterns文章中提出型雳。
【原始的LBP算法】
LBP的核心思想是將圖像的某塊像素和它周邊一定范圍內(nèi)的像素進(jìn)行對比骂删,求得LBP值。
首先四啰,取一定的范圍。最原始的LBP算法是以該像素為中心粗恢,在附近取一個3*3的九宮格圖形柑晒,然后以中心像素為閾值,周圍大于等于改值的則記為1眷射,小于該值的則記為0匙赞。
然后從第一格開始,順時針得到一個二進(jìn)制序列妖碉,再將這個二進(jìn)制序列轉(zhuǎn)化成十進(jìn)制數(shù)則得到該像素點的LBP值涌庭。
function image_lbp = originLBP( image )
%這個函數(shù)是最初的LBP九宮格形式
[row,column]=size(image);
image_lbp=zeros(row,column);
%image_lbp(1,:)=image(1,:);
%image_lbp(row,:)=image(row,:);
%image_lbp(:,1)=image(:,1);
%image_lbp(: ,column)=image(:,column);
for i=2:row-1
for j=2:column-1
image_lbp(i,j)=image_lbp(i,j)*2+calculate(image(i,j),image(i-1,j-1));
image_lbp(i,j)=image_lbp(i,j)*2+calculate(image(i,j),image(i-1,j));
image_lbp(i,j)=image_lbp(i,j)*2+calculate(image(i,j),image(i-1,j+1));
image_lbp(i,j)=image_lbp(i,j)*2+calculate(image(i,j),image(i,j+1));
image_lbp(i,j)=image_lbp(i,j)*2+calculate(image(i,j),image(i+1,j+1));
image_lbp(i,j)=image_lbp(i,j)*2+calculate(image(i,j),image(i+1,j));
image_lbp(i,j)=image_lbp(i,j)*2+calculate(image(i,j),image(i+1,j-1));
image_lbp(i,j)=image_lbp(i,j)*2+calculate(image(i,j),image(i,j-1));
end
end
function result=calculate(center,neighbour)
if(center<=neighbour)
result=1;
else
result=0;
end
end
end