机器视觉----LBP
最近一直在做多视图的聚类与分裂,想要图片有更多的视图,就得对图片的特征进行抽取,那我们来聊聊图片的LBP特征。
Local binary patterns (局部二值模式),是机器视觉中重要的一种特征,它属于一个纹理问题。其核心是将各个元素与其他附近的像素进行比较,然后把结果保存为二进制数。LBP最重要的属性是对诸如光照变化等造成的灰度变化的鲁棒性。它的另外一个重要特性是它的计算简单,这使得它可以对图像进行实时分析。、
LBP算子的计算流程:
首先如下图1:每个点的像素值表示出来,如果比中心的点大或者等于则为1,小则为0.得到图2为:其中以这个3x3的矩阵最上面最左边第一个为1,然后顺时针依次变成2,4,8,16,32,64,125



图1 图2 图3
此处的LBP=1+16+32+64+128=251
以上就是传统LBP的计算过程。当然还有周围16个的,还有用圆去标注的。如下图:本质上的计算方法都一样,这里就不做赘述了。

Matlab实现:
function [ LBPHistogram ] = LBP( OrgIm,DoUniform)% if DoUniform = true -> return hisogram of 10 bin, if DoUniform = false -> return hisogram of 256 bin
Row=size(OrgIm,1);
Col=size(OrgIm,2);
for i=2:Row-1
for j=2:Col-1
Uniform = true;
MidPixelValue=OrgIm(i,j);
EncodedVec(1)=OrgIm(i-1,j-1)>MidPixelValue;
EncodedVec(2)=OrgIm(i-1,j)>MidPixelValue;
EncodedVec(3)=OrgIm(i-1,j+1)>MidPixelValue;
EncodedVec(4)=OrgIm(i,j+1)>MidPixelValue;
EncodedVec(5)=OrgIm(i+1,j+1)>MidPixelValue;
EncodedVec(6)=OrgIm(i+1,j)>MidPixelValue;
EncodedVec(7)=OrgIm(i+1,j-1)>MidPixelValue;
EncodedVec(8)=OrgIm(i,j-1)>MidPixelValue;
EncodedVecShift = circshift(EncodedVec,[0,1]);
if DoUniform
if sum(xor(EncodedVec,EncodedVecShift)) > 2 % more than 2 transition of 0 -> 1
Uniform = false;
LBPImage(i,j)=9;
end
end
if or(Uniform == true , DoUniform == false) % if LBP not uniform mode , or the texture is uniform -> 8 bits assign
MinLbp = EncodedVec(1)*2^7+EncodedVec(2)*2^6+EncodedVec(3)*2^5+EncodedVec(4)*2^4+EncodedVec(5)*2^3+EncodedVec(6)*2^2+EncodedVec(7)*2^1+EncodedVec(8)*2^0;
MinVector = EncodedVec;
for k = 1 : 7
EncodedVec = circshift(EncodedVec,[0,1]);
CurrLbpValue =EncodedVec(1)*2^7+EncodedVec(2)*2^6+EncodedVec(3)*2^5+EncodedVec(4)*2^4+EncodedVec(5)*2^3+EncodedVec(6)*2^2+EncodedVec(7)*2^1+EncodedVec(8)*2^0;
if CurrLbpValue < MinLbp
MinLbp = CurrLbpValue;
MinVector = EncodedVec;
end
end
LBPImage(i,j)=MinVector(1)*2^7+MinVector(2)*2^6+MinVector(3)*2^5+MinVector(4)*2^4+MinVector(5)*2^3+MinVector(6)*2^2+MinVector(7)*2^1+MinVector(8)*2^0;
end
end
end
if DoUniform
LBPImage(LBPImage ~=9) = log2(LBPImage(LBPImage ~=9)+1);
LBPHistogram=zeros(1,10);
for i =1:size(LBPImage,1)
for k = 1:size(LBPImage,2)
LBPHistogram(1,LBPImage(i,k)+1)=LBPHistogram(1,LBPImage(i,k)+1)+1;
end
end
else
LBPHistogram=zeros(1,256);
for i =1:size(LBPImage,1)
for k = 1:size(LBPImage,2)
LBPHistogram(1,LBPImage(i,k)+1)=LBPHistogram(1,LBPImage(i,k)+1)+1;
end
end
end
end
机器视觉----LBP的更多相关文章
- 机器视觉 Local Binary Pattern (LBP)
Local binary pattern (LBP),在机器视觉领域,是非常重要的一种特征.LBP可以有效地处理光照变化,在纹理分析,纹理识别方面被广泛应用. LBP 的算法非常简单,简单来说,就是对 ...
- 机器视觉: LBP-TOP
之前介绍过机器视觉中常用到的一种特征:LBP http://blog.csdn.net/matrix_space/article/details/50481641 LBP可以有效地处理光照变化,在纹理 ...
- 特征描述之LBP
LBP 在数字图像处理和模式识别领域,LBP指局部二值模式,英文全称:Local Binary Patterns.最初功能为辅助图像局部对比度,并不是一个完整的特征描述子. 后来提升为一种有效的纹理描 ...
- C#机器视觉入门系列1-转化为灰度图&&3*3模糊
这是我入门机器视觉的系列学习经验之开篇,本来想着依靠opencv快速实现一些功能,但是想了一下既然是学数学的,还是应该自己多算算,写一些自己理解的东西才好. 入门篇很简单,就只是实现了转化成灰度图以及 ...
- 常用机器视觉工具----图像分析工具(blob分析)
http://blog.sina.com.cn/s/blog_67cc4eb70100ivnt.html Blob分析:Blob分析目的在于对图像中的2-D形状进行检测和分析,得到诸如目标位置.形状. ...
- 图像特征提取之LBP特征
LBP(Local Binary Pattern,局部二值模式)是一种用来描述图像局部纹理特征的算子:它具有旋转不变性和灰度不变性等显著的优点.它是首先由T. Ojala, M.Pietik?inen ...
- 人脸识别经典算法二:LBP方法
与第一篇博文特征脸方法不同,LBP(Local Binary Patterns,局部二值模式)是提取局部特征作为判别依据的.LBP方法显著的优点是对光照不敏感,但是依然没有解决姿态和表情的问题.不过相 ...
- halcon学习笔记——机器视觉工程应用的开发思路【转】
转自:http://www.cnblogs.com/hanzhaoxin/archive/2013/02/15/2912879.html 机器视觉工程应用主要可划分为硬件和软件两大部分. 硬件:工程应 ...
- 图像特征提取三大法宝:HOG特征,LBP特征,Haar特征(转载)
(一)HOG特征 1.HOG特征: 方向梯度直方图(Histogram of Oriented Gradient, HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子.它通过计算和 ...
随机推荐
- Notification弹出实现
Notification的几种基本使用方法,大家肯定都已经烂熟于心,我也不必多说.给一个链接:https://zhuanlan.zhihu.com/p/25841482 接下来我想说的是android ...
- 环境配置-云服务器jdk与tomcat配置
我所实践的主机是麻花疼云的主机,第一次试用30天,装了个centos6.5,其实已经用商用专用镜像配置好环境了,包括jdk.tomcat等常用的内容,但是我实在是找不到他们安装在哪个目录下了,我就自己 ...
- 数据结构之R进制转换
废话不多说,直接上代码 #include <stdio.h> int exchange(int a) { char c='A'; if(a>=10) { printf("% ...
- [js高手之路]node js系列课程-创建简易web服务器与文件读写
web服务器至少有以下几个特点: 1.24小时不停止的工作,也就是说这个进程要常驻在内存中 2.24小时在某一端口监听,如: http://localhost:8080, www服务器默认端口80 3 ...
- jmeter 实现登录一次,多次操作登录后的某一个功能
- HDU 6184 Counting Stars 经典三元环计数
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6184 题意: n个点m条边的无向图,问有多少个A-structure 其中A-structure满足V ...
- html5 响应式布局(媒体查询)
响应式布局 响应式布局,简而言之,就是一个网站能够兼容多个终端--而不是为每个终端做一个特定的版本.这个概念是为解决移动互联网浏览而诞生的. 响应式布局可以为不同终端的用户 ...
- 有var和没有var的本质区别
我们创建一个变量: var a = 100: 同时,大家也知道,就是不写var关键字也可以创建.在很多教程和说法中,将没有var 的这个名称称之为“全局变量”.如果我在全局直接写一个var abc = ...
- JAVA基础第七组(5道题)
31.题目:将一个数组逆序输出. 1.程序分析:用第一个与最后一个交换. package com.niit.homework1; /** * @author: Annie * ...
- 个人作业3——个人总结(Alphe)
小结: 1.软件工程的第一阶段终于结束了,说实话,每个人的课程都很紧张,在这么紧张的时期我们都每周抽出一些时间来开个小会总结或者计划软件工程的相关任何非常难得,大家的态度都诚恳认真,我亦是如此,只是我 ...