UP
我也在找LBP方面的东西,好像东西很少的啊。
下面是提取图像的LBP特征图的函数,俺自己写的,可以参考一下
使用了最基本的提取方法,就是设置一个3x3的窗口,在依次遍历每个像素的时候,把窗口里大于中心值的元素置1,否则置0,再组成二进制串,然后转换成十进制作为这个像素点的lbp值。
function IMO = gen_lbp(IM)
% 将彩色图像转换为黑白图像
[m,n,p] = size(IM);
if p == 3
IM = rgb2gray(IM);
end
% 扩大图像,以便处理
IMT = zeros(m+2,n+2);
IMT(2:m+1,2:n+1) = IM;
% 遍历每个像素点
wnd = zeros(3); % 3x3 的窗口矩阵
IMO = zeros(m,n);
for iii = 2:m+1
for jjj = 2:n+1
wnd = IMT(iii-1:iii+1,jjj-1:jjj+1);
% 二值化
for mmm = 1:3
for nnn = 1:3
if wnd(mmm,nnn) > wnd(2,2)
wnd(mmm,nnn) = 1;
else
wnd(mmm,nnn) = 0;
end
end
end
% 求出lbp值
lbp = wnd(1,1) + wnd(2,1)*2 + wnd(3,1)*4 + wnd(3,2)*8 + wnd(3,3)*16 + wnd(2,3)*32 + wnd(1,3)*64 + wnd(1,2)*128;
IMO(iii-1,jjj-1) = lbp;
end
end
用法很简单,首先读取一副图像,譬如图像的名字叫test.bmp
IM = imread('test.bmp');
然后执行函数
IMO = gen_lbp(IM);
最后可以这样查看结果
imshow(mat2gray(IMO));
若是还有不明白的,可再问我。
hi 可以认识你吗?我关于lbp还有很多不是很明白,可以问你几个问题吗?我qq:422622458
vBulletin® v3.8.3,版权所有 ©2000-2025,Jelsoft Enterprises Ltd.