Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#3 |
初级会员
注册日期: 2009-04-16
帖子: 1
声望力: 0 ![]() |
![]()
下面是提取图像的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 IM = imread('test.bmp'); 然后执行函数 IMO = gen_lbp(IM); 最后可以这样查看结果 imshow(mat2gray(IMO)); 若是还有不明白的,可再问我。 此帖于 2009-04-16 15:51 被 一任群芳妒 编辑。 |
![]() |
![]() |