图像特征提取算法matlab仿真,包括LBP,LDP,LPQ

本文介绍了局部二值模式(LBP)、局部方向模式(LDP)和局部相位量化模式(LPQ)三种图像特征提取方法。这些方法常用于计算机视觉中的图像分类和识别任务,LBP关注纹理信息,LDP增加了方向信息,而LPQ利用傅里叶变换描述相位信息。文章详细阐述了每种方法的数学模型和实现步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、理论基础

1.1局部二值模式(LBP)

1.2局部方向模式(LDP)

1.3局部相位量化模式(LPQ)

1.4实现步骤

二、核心程序

三、仿真结论


一、理论基础

       图像特征提取是计算机视觉领域中的一个重要问题,其目的是从图像中提取出具有代表性的特征,用于图像分类、目标识别等应用。在本文中,我们将介绍三种常用的图像特征提取方法:局部二值模式(Local Binary Pattern, LBP)、局部方向模式(Local Directional Pattern, LDP)和局部相位量化模式(Local Phase Quantization, LPQ)。我们将从数学模型和实现步骤两个方面,详细介绍这三种算法。

1.1局部二值模式(LBP)


       局部二值模式是一种用于图像纹理特征提取的方法,它可以有效地描述图像中局部区域的纹理信息。LBP算法的基本思想是将某个像素点的灰度值与其周围邻域的灰度值进行比较,然后将比较结果编码成二进制数。具体地,对于一个像素点$p$,我们选取一个以$p$为中心的邻域区域,然后比较该区域内每个像素点的灰度值与$p$的灰度值的大小关系,如果该像素点的灰度值大于等于$p$的灰度值,则该像素点的比较结果为1,否则为0。将比较结果按照邻域像素点的顺序连接起来,得到一个二进制数,称为LBP码。LBP算法的数学模型可以表示为:

$$
LBP_{P,R}(p)=\sum_{i=0}^{P-1}s(g_i-g_c)2^i
$$

      其中,P表示邻域像素点的个数,R表示邻域半径,g_i表示第i个邻域像素点的灰度值,g_c表示中心像素点的灰度值,s(x)表示符号函数,当x大于等于0时,s(x)=1,否则s(x)=0。

1.2局部方向模式(LDP)


       局部方向模式是一种用于图像纹理特征提取的方法,它可以描述图像中纹理的方向信息。与LBP算法类似,LDP算法也是基于邻域像素点的灰度值与中心像素点的灰度值进行比较,但是LDP算法还考虑了邻域像素点的方向信息。具体地,对于一个像素点$p$,我们选取一个以$p$为中心的邻域区域,然后计算该邻域像素点与中心像素点的梯度值和方向。将邻域像素点按照方向进行分组,然后对每个方向上的像素点进行灰度值的比较,得到一个二进制数。将所有方向上的二进制数连接起来,得到一个LDP码。LDP算法的数学模型可以表示为:

$$
LDP_{P,R}(p)=\sum_{i=0}^{P-1}s(g_i-g_c)2^i
$$

       其中,P表示邻域像素点的个数,R表示邻域半径,g_i表示第i个邻域像素点的灰度值,g_c表示中心像素点的灰度值,s(x)表示符号函数,当x大于等于0时,s(x)=1,否则s(x)=0。

1.3局部相位量化模式(LPQ)

        局部相位量化模式是一种用于图像纹理特征提取的方法,它可以描述图像中局部区域的相位信息。与LBP和LDP算法不同,LPQ算法是基于图像的傅里叶变换进行计算的。具体地,对于一个像素点p,我们选取一个以p为中心的邻域区域,然后对该区域进行二维傅里叶变换,得到其频率响应。将频率响应按照幅值和相位进行量化,得到一个二进制数。将所有像素点的二进制数连接起来,得到一个LPQ码。LPQ算法的数学模型可以表示为:

$$
LPQ_{P,R}(p)=\sum_{i=0}^{P-1}s(\phi(g_i-g_c))2^i
$$

        其中,P表示邻域像素点的个数,R表示邻域半径,g_i表示第i个邻域像素点的灰度值,g_c表示中心像素点的灰度值,\phi(x)表示x的相位角,s(x)表示符号函数,当x大于等于0时,s(x)=1,否则s(x)=0。

1.4实现步骤

局部二值模式(LBP)
LBP算法的实现步骤如下:

1.1. 对于每个像素点$p$,选取一个以$p$为中心的邻域区域。

1.2. 计算邻域像素点的灰度值与中心像素点的灰度值的大小关系,并将比较结果编码成二进制数。

1.3. 将所有像素点的LBP码连接起来,得到一个LBP特征向量。

局部方向模式(LDP)
LDP算法的实现步骤如下:

2.1. 对于每个像素点$p$,选取一个以$p$为中心的邻域区域。

2.2. 计算邻域像素点与中心像素点的梯度值和方向,然后按照方向进行分组。

2.3. 对每个方向上的像素点进行灰度值的比较,并将比较结果编码成二进制数。

2.4. 将所有方向上的二进制数连接起来,得到一个LDP特征向量。

局部相位量化模式(LPQ)
LPQ算法的实现步骤如下:

3.1. 对于每个像素点$p$,选取一个以$p$为中心的邻域区域。

3.2. 对邻域区域进行二维傅里叶变换,得到其频率响应。

3.3. 将频率响应按照幅值和相位进行量化,并将量化结果编码成二进制数。

3.4. 将所有像素点的二进制数连接起来,得到一个LPQ特征向量。

二、核心程序

......................................................
% pre-processing
I=imread('apples.jpg'); %input image
imshow(I); %display input image
title('原始图像');

I=im2double(I); %convert to double
if size(I,3)==3
    I=rgb2gray(I); %convert to grayscale if rgb
end

figure;
imshow(I); %display grayscale image
title('Gray-Picture');

[m,n]=size(I); %get the size of image


%initialise variable
z=zeros(8,1);
b=zeros(m,n);


% LBP calculation
for i=2:m-1
    for j=2:n-1        
        t=1;
        for k=-1:1
            for l=-1:1                
                if (k~=0)||(l~=0)
                if (I(i+k,j+l)-I(i,j)<0) %threshold to generate bit
                    z(t)=0;
                else
                    z(t)=1;
                end
                t=t+1;
                end
            end
        end
        
        for t=0:7
           b(i,j)=b(i,j)+((2^t)*z(t+1));  %binary to decimal conversion
        end
    end
end

b=uint8(b); %convert decimal 2-d matrix to image
figure;
imshow(b);  %display LBP image
title('LBP-Picture');


%LBP Histogram
H=imhist(b); %find histogram
figure;
bar(H); %display histogram
title('Hist');
up2143

三、仿真结论

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fpga和matlab

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值