LBP特征提取

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010874292/article/details/53097773

参考资料:

http://www.cnblogs.com/sdxk/p/4056223.html

http://www.cnblogs.com/mikewolf2002/p/3438698.html

基本原理:

    LBP的基本思想是以图像中某个像素为中心,对相邻像素进行阈值比较。如果中心像素的亮度大于等于它的相邻像素,把相邻像素标记为1,否则标记为0。我们可以用二进制数字来表示LBP图中的每个像素的LBP编码,比如下图中的中心像素,它的LBP编码为:00010011,其十进制值为19。

用公式表示即是:

其中(xc,yc)是中心像素,ic是灰度值,in是相邻像素的灰度值,s是一个符号函数:

image

在OpenCV的LBP算法中,使用圆形的LBP算子:

对于一个点, 它的近邻点 用以下公式计算:


其中R是半径,p是样本点的个数。

如果就算的结果不在像素坐标上,我们则使用双线性插值进行近似处理。

 

双线性插值:

假设一个图像的大小是485x647,放大分别放大1.3倍和1.7倍,即485x1.3=630.5,647x1.7=1099.9,根据四舍五入的原则确定放大后的图像为631x1100,接下来就是计算放大后图像各个位置的像素值,例如计算放大后图像位于(136,345)位置的像素值,则136/1.3=104.615,345/1.7=202.941,这里由于示例的原因取小数点后三位,则原图像中相邻的四个位置分别是(104,202),(104,203),(105,202),(105,203)这四个点,


如图我画出了这个点对应的周围的四个点,203.941-203=0.941

所以f(R1)=(1-0.941)xf(104,203)+0.941xf(104,204),

f(R2)=(1-0.941)xf(105,203)+0.941xf(105,204),

104.615-104=0.615

所以f(P)=(1-0.615)xf(R1)+0.615xf(R2),

其中f表示的那一点的像素值,这样就计算出了f(P),实际上就是放大后图像(136,345)处对应的像素值。

猜你喜欢

转载自blog.csdn.net/u010874292/article/details/53097773