精华内容
下载资源
问答
  • 当前的实现与来自http://www.ee.oulu.fi/mvg/files/pdf/pdf_6.pdf 的“具有局部二进制模式的灰度和旋转不变纹理分类”一致。 区别: 此实现支持多色输入 (RGB)。 所有通道的旋转不变性可以相同,也可以采用通道明智...
  • 局部二进制模式

    2017-04-13 22:26:32
    应用背景:在区域的描述方式中,有一些...而描述区域纹理的主要方法有:统计方法、结构方法以及频谱方法,除此之外,有一种有效的纹理描述方法是局部二进制模式,Local Binary Patterns, LBP,它因具有对图像局部纹理
    应用背景:在区域的描述方式中,有一些简单的区域描绘子如区域的周长、面积以及灰度级的均值、中值、最大灰度值和最小灰度值,稍微复杂一点的描绘子如区域中连通分量的数量,还有一种描述区域的重要方法是量化该区域的纹理内容。而描述区域纹理的主要方法有:统计方法、结构方法以及频谱方法,除此之外,有一种有效的纹理描述方法是局部二进制模式,Local Binary Patterns, LBP,它因具有对图像局部纹理特征的卓越描绘能力而被广泛使用。
    展开全文
  • 局部二进制模式综述

    2021-03-26 18:53:55
    局部二进制模式综述
  • 用于纹理分类的中值鲁棒扩展局部二进制模式
  • 使用Weber局部描述符和局部二进制模式检测接缝雕刻图像
  • 该函数计算输入图像 Input_Im 的 LBP 变换。 LBP算子的参数是(P=8,R), 其中 P - 半径为 R 的区域中的采样点数。 半径 R 是函数的输入参数。 R = 1、2、3 等的可能值。 如果输入图像是 COLOUR,则执行灰度变换。
  • 本文提出了一种基于Curvelet变换和局部二进制模式算子的人脸识别特征提取新方法。 这种方法的动机是基于两个观察结果。 其中之一是Curvelet变换是一种新的各向异性多分辨率分析工具。 可以有效地表示图像边缘不连续...
  • 使用局部二进制模式和马尔可夫随机场的空间光谱高光谱分类
  • 请将 LBP.pdf.m 重命名为 LBP.pdf(重新格式化)并查看。 -------------------------------------------------- -------------------------- 减少时间复杂度: 512*512 uint8 的结果: 系统: MATLAB 2018b 操作系统...
  • 研究了分数阶微分及其掩模算子的特性,提出了一种新的基于局部二进制模式方差(LBPV)的分数阶微分的图像增强算法,运用LBPV理论对图像进行了特征提取,构建了更加有效的分数阶掩模模板。实验结果表明,与现有的分数阶...
  • 检测关键点,估计关键点周围的局部补丁,然后计算 CSLBP 描述符。 然而,为了简单起见,下面的示例计算图像级描述符而不是局部关键点描述符。 例子: %% 加载图像img = imread('myImage.jpg'); 如果RGB,%%转换为...
  • 局部二进制模式(LBP)是一种有效的纹理描述符,在纹理分类和面部识别中具有成功的应用。 常规LBP描述符有许多扩展。 扩展之一是主要局部二进制图案,其目的是提取纹理图像中的主要局部结构。 第二个扩展表示Gabor...
  • LBP(局部二进制模式)

    千次阅读 2016-09-20 16:49:43
    LBP算子(局部二进制模式) 出自2002 ojala PAMI 纹理分类算子,LBP构造了衡量一个像素点和它邻域像素之间关系,即对于3*3的邻域,其各像素与中心像素大小关系,构成二进制数。当大于中心点的像素值时,则被二值化为...

    LBP算子(局部二进制模式)
    出自2002 ojala PAMI
    纹理分类算子,LBP构造了衡量一个像素点和它邻域像素之间关系,即对于3*3的邻域,其各像素与中心像素大小关系,构成二进制数。当大于中心点的像素值时,则被二值化为1,小于二值化为0,然后以顺时针方向构成二进制数。
    LBP有2^p个二进制模式。其中p为周围像素点个数。
    LBP二值化示意图
    LBP量化像素点与其周围的像素点,可以有效的去除光照对图像的影响,只要光照变化不足以改变两个像素点之间的大小关系,那么就不会改变LBP二值化的值。


    下面有几个LBP变形:
    uniform模式
    LBP二进制模式与周围像素点个数有着直接关系,对于半径为R含有P个采样点的LBP算子有2^P个。当邻域越大时,其二进制的模式急剧递增。如8个采样点有256种二进制模式,而20个采样点有2^20=1048576种二进制模式。
    在实际图像中绝大多数LBP模式最多只包括两次从1到0或0到1的跳变。因此该模式叫uniform模式。而二进制模式种类从2^P个降到2+2*(P-1)+2*C_(P-1)^2=(P-1)P+2个。其中跳变0次有2种,跳变1次有2*(P-1)种,跳变2次有2*C_(P-1)^2种。
    旋转模式
    无论图像怎么旋转,对点提取的二进制特征的最小值是不变的,用最小值作为提取的LBP特征,这样LBP就是旋转不变的
    对于P=8时LBP旋转模式
    用途:
    可用于人脸识别和表情识别

    优点:二进制数,可定点化,速度快,而效果可与Haar齐平。因为LBP和Haar检测的准确率,是依赖训练过程中的训练数据的质量和训练参数。

    展开全文
  • 使用局部二进制模式 (LBP) 的纹理匹配 解释代码的相关博客文章 - 用法 执行训练使用 python perform-training.py -t data/lbp/train/ -l data/lbp/class_train.txt 执行测试使用 python perform-testing.py -t ...
  • 局部二进制模式(LBP),最早用于图像纹理的描述,其在描述局部区域的特征方面有着卓越的能力。 1.理论基础 图像多为分区图像,标准的LBP直方图的维数较高,且局部直方图过于稀疏。基于此提出统一化模式的概念。 ...

    本篇文章仅为本人加深图像处理算法的理解,有不严谨的地方,不作为学习的参考。
    参考书籍:精通Matlab数字图像处理与识别,张铮等,人民邮电出版社。

    局部二进制模式(LBP),最早用于图像纹理的描述,其在描述局部区域的特征方面有着卓越的能力。

    1.理论基础

    图像多为分区图像,标准的LBP直方图的维数较高,且局部直方图过于稀疏。基于此提出统一化模式的概念。
    统一化模式:二进制串***循环***变化的次数小于等于2.大于2的为非统一化模式。
    每个统一化模式占一个收集箱,非统一化模式统一占一个收集箱。如8邻域,收集箱的个数为:2+0+56+1=59.
    分为:
    1.统一化LBP算子,即Uniform LBP,如 L B P 8 , 2 u 2 LBP_{8,2}^{u2} LBP8,2u2,表示邻域为8,半径为2.
    2.多块的LBP算子,即Multi-Block LBP算子,可以描述图像的粗粒度。通常用符号 M B S − L B P 8 , 2 u 2 MB_{S}-LBP_{8,2}^{u2} MBSLBP8,2u2表示,块大小为 S × S S\times S S×S L B P 8 , 2 u 2 LBP_{8,2}^{u2} LBP8,2u2
    3.分区的多块LBP算子。先将图像分区,再求各分区的MB-LBP,将直方图聚合。

    2.程序结构

    生成映射表:根据邻域,计算二进制串,判断二进制串为统一化模式还是非统一化模式,将其分别放在相应的收集箱。
    计算图像LBP特征:首先计算各采样点的像素值,不在中心点的像素值,通常采用双线性插值,拟合得到。计算得到LBP响应的图像灰度;得到LBP直方图。

    3.统一化LBP算子matlab程序实现

    3.1生成映射表

    function  vecmapping=getmapping1(sp);
    %生成映射表
    %  sp为采样点个数
    cnt=sp;
    bits=zeros(1,8);
    vecmapping=zeros(1,256);
    ibcnt=1;
    for i=0:255
        num=i;
        icnt=0;
        while(num)
            bits(cnt-icnt)=mod(num,2);
            num=floor(num/2);
            icnt=icnt+1;
        end
        if IsUniform(bits)
            vecmapping(i+1)=ibcnt;
            ibcnt=ibcnt+1;
        else
            vecmapping(i+1)=59;
        end
        end
    save('LBPmapping.mat','vecmapping');
    function result = IsUniform( bits )
    n=length(bits);
    njump=0;
    for i=1:n-1
        if bits(i)~=bits(i+1);
            njump=njump+1;
        end
    end
    if bits(n)~=bits(1);
         njump=njump+1;
    end
    if njump>2
        result=false;
    else
        result=true;
    end
    
    

    3.2 得到图像的LBP81

    function histLBP = getimageLBP( B,r )
    %LBP81
    load 'LBPmapping.mat';
    image=B;
    [m,n]=size(image);
    if (m<=2*r) ||  (n<=2*r)
        error('image is too small');
    end
     imageLBP=zeros(m-2*r,n-2*r);
     image_LBP=zeros(1,8);
     histLBP=zeros(1,59);
    for i=1+r:m-r
        for j=1+r:n-r
            ncn=1;
            image_LBP(ncn)=image(i,j-r);
            ncn=ncn+1;
            value1=image(i-1,j-1)+0.2929*(image(i-1,j)-image(i-1,j-1));
            value2=image(i,j-1)+0.2929*(image(i,j)-image(i,j-1));
            value=value1+0.2929*(value2-value1);
            image_LBP(ncn)=value;
            ncn=ncn+1;
              image_LBP(ncn)=image(i-1,j);
              ncn=ncn+1;
            value1=image(i-1,j)+0.7071*(image(i-1,j+1)-image(i-1,j));
            value2=image(i,j)+0.7071*(image(i,j+1)-image(i,j));
            value=value1+0.2929*(value2-value1);
            image_LBP(ncn)=value;
            ncn=ncn+1;
            image_LBP(ncn)=image(i,j+1);
            ncn=ncn+1;
              value1=image(i+1,j)+0.7071*(image(i+1,j+1)-image(i+1,j));
            value2=image(i,j)+0.7071*(image(i,j+1)-image(i,j));
            value=value1+0.2929*(value2-value1);
            image_LBP(ncn)=value;
            ncn=ncn+1;
             image_LBP(ncn)=image(i+1,j);
              ncn=ncn+1;
            value1=image(i+1,j-1)+0.2929*(image(i+1,j)-image(i+1,j-1));
            value2=image(i,j-1)+0.2929*(image(i,j)-image(i,j-1));
            value=value1+0.2929*(value2-value1);
            image_LBP(ncn)=value;
             for i1=1:ncn
                if   image_LBP(i1)>=image(i,j)
                    imageLBP(i-r,j-r)=imageLBP(i-r,j-r)+2^(ncn-i1);
                end
            end
        end
    end
    for i2=1:m-2*r
        for j2=1:n-2*r
        histLBP(vecmapping(imageLBP(i2,j2)+1))= histLBP(vecmapping(imageLBP(i2,j2)+1))+1;
        end
    end
    end
           
    
    展开全文
  • 该函数实现了 OC-LBP(相反颜色局部二进制模式分析)。 见 OC-LBP 描述:[1] Maenpaa T.“纹理分析的局部二进制模式方法{扩展和应用”; 2003.博士论文,奥卢大学。 [2] Maenpaa T. Matti P. 和 Jaakko V....
  • 使用本地二进制模式轻松进行图像修复
  • 原始的LBP描述子有两个明显的缺点,一是对噪声敏感,是容易把不同的结构模式描述成具有RLBP可以有效的解决这两个问题,首先模版的中央价值被局部均值所代替,局部均值对于噪声和亮度变化是鲁棒的。 LBP算法,此处...
  • 由于接缝雕刻改变了图像中的局部纹理,因此局部纹理描述符(即局部二进制图案(LBP))被用作预处理以突出显示局部纹理伪影。 此外,还定义了六个新的半缝特征,以揭示半图像中的能量变化。 它们与现有的18个能量...
  • 由于接缝雕刻改变了图像中的局部纹理,因此局部纹理描述符即局部二进制图案(LBP)被用作预处理以突出显示局部纹理伪影。 此外,还定义了六个新的半缝特征,以揭示半图像的能量变化。 它们与现有的18个能量偏倚和...
  • 基本LBP: 逐行扫描图像,以图像中的每个像素点得灰度值为阈值,对其周围3*3的8邻域进行二值化,并从左上点开始按照顺时针方向(或逆时针,统一即可)将...生成LBP图像MATLAB代码:%局部二进制模式LBP close all clear

    基本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图像');
    

    运行结果如下:
    这里写图片描述

    展开全文
  • 逐行扫描图像,以图像中的每个像素点得灰度值为阈值,对其周围3*3的8邻域进行二值化,并从左上点开始按照顺时针方向(或逆时针,统一即可)将二值化结果组成一个二进制数,转换为十进制作为中心点的响应。...
  • 结合3D非局部均值和LBP-TOP(三个正交平面上的局部二进制模式)的新降噪方法 代码版本:0.01-alpha 依存关系 Python 2.7 OpenCV(适用于Python) NumPy 科学 scikit图像 bob.ip.base(来自库)。 另请参阅 实验内容 ...
  • 该工具箱提供了一些使用本地二进制模式(和一些变体)和 Haar 特征进行对象/人脸检测的工具。 对象/人脸检测是通过使用增强模型在多扫描窗口上评估训练模型来执行的(例如 Adaboosting、FastAdaboosting 和 ...
  • 1. LBP 用于人脸识别为了...的区域,提取纹理特征(例如局部二模式),再基于该特征利用支持向量机等浅层模型分类。因为局部区域包含信息量有限,往往产生分类错误,因此要对分割后的图像加入平滑和形状先验等约束。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 64,006
精华内容 25,602
关键字:

局部二进制模式