资源简介
用lbp实现纹理特征提取,并分类说明:
一共有三个m文件,一个是lbp.m, 存放主要的lbp算法,
一个是getmapping,用以做算法的辅助函数,
一个是lbptest.m,存放测试代码。
这三个文件需要放到同一个文件夹,并在文件夹中添加相应的图片, 具体的图片名字见lbptest.m的代码,运行lbptest.m可以查看结果。代码最后给出效果图 。这三个文件是最传统的LBP方法,有256种。
代码片段和文件信息
% GETMAPPING returns a structure containing a mapping table for LBP codes.
% MAPPING = GETMAPPING(SAMPLESMAPPINGTYPE) returns a
% structure containing a mapping table for
% LBP codes in a neighbourhood of SAMPLES sampling
% points. Possible values for MAPPINGTYPE are
% ‘u2‘ for uniform LBP
% ‘ri‘ for rotation-invariant LBP
% ‘riu2‘ for uniform rotation-invariant LBP.
%
% Example:
% I=imread(‘rice.tif‘);
% MAPPING=getmapping(16‘riu2‘);
% LBPHIST=lbp(I216MAPPING‘hist‘);
% Now LBPHIST contains a rotation-invariant uniform LBP
% histogram in a (162) neighbourhood.
%
function mapping = getmapping(samplesmappingtype)
% Version 0.1.1
% Authors: Marko Heikkil?and Timo Ahonen
% Changelog
% 0.1.1 Changed output to be a structure
% Fixed a bug causing out of memory errors when generating rotation
% invariant mappings with high number of sampling points.
% Lauge Sorensen is acknowledged for spotting this problem.
table = 0:2^samples-1;
newMax = 0; %number of patterns in the resulting LBP code
index = 0;
if strcmp(mappingtype‘u2‘) %Uniform 2
newMax = samples*(samples-1) + 3;
for i = 0:2^samples-1
j = bitset(bitshift(i1samples)1bitget(isamples)); %rotate left
numt = sum(bitget(bitxor(ij)1:samples)); %number of 1->0 and
%0->1 transitions
%in binary string
%x is equal to the
%number of 1-bits in
%XOR(xRotate left(x))
if numt <= 2
table(i+1) = index;
index = index + 1;
else
table(i+1) = newMax - 1;
end
end
end
if strcmp(mappingtype‘ri‘) %Rotation invariant
tmpMap = zeros(2^samples1) - 1;
for i = 0:2^samples-1
rm = i;
r = i;
for j = 1:samples-1
r = bitset(bitshift(r1samples)1bitget(rsamples)); %rotate
%left
if r < rm
rm = r;
end
end
if tmpMap(rm+1) < 0
tmpMap(rm+1) = newMax;
newMax = newMax + 1;
end
table(i+1) = tmpMap(rm+1);
end
end
if strcmp(mappingtype‘riu2‘) %Uniform & Rotation invariant
newMax = samples + 2;
for i = 0:2^samples - 1
j = bitset(bitshift(i1samples)1bitget(isamples)); %rotate left
numt = sum(bitget(bitxor(ij)1:samples));
if numt <= 2
table(i+1) = sum(bitget(i1:samples));
else
table(i+1) = samples+1;
end
end
end
mapping.table=table;
mapping.samples=samples;
mapping.num=newMax;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 108338 2013-10-21 17:02 LBP1\a.fig
文件 41779 2013-10-21 17:02 LBP1\a.jpg
文件 2759 2013-10-21 17:02 LBP1\getmapping.m
文件 159094 2013-10-21 17:02 LBP1\lbp.docx
文件 6076 2013-10-21 17:02 LBP1\lbp.m
文件 2003 2013-10-21 17:02 LBP1\lbptest.m
文件 313 2013-10-21 17:02 LBP1\readme.txt
目录 0 2013-10-21 17:02 LBP1\
相关资源
- 利用四元数对彩色图像作图像处理
- 织物疵点检测和识别系统
- SAO星表数据
- 粒子群算法路径规划动画演示
- 新型的配电网潮流计算的matlab源码
- 雷达交叉定位精度分析
- 磁流变减震器模型
- D2D的自适应链路仿真
- matlab实现的读取视频和音频
- matlab平台DCT算法压缩视频
- Softmax 函数处理
- 《精通Matlab数字图像处理与识别》(
- 5阶WENO有限差分法求解Sod型激波管问题
- foa 果蝇优化算法matlab程序
- CA元胞自动机源代码
- 应用条件随机场CRF 知识分割图像
- PSOGSA_v3
- 发动机悬置系统解耦率、固有频率以
- G-S算法matlab程序源代码
- DATCOM弹道计算工具
- matlab实现节点定位的三边定位算法
- CLAHE的matlab实现算法
- chan算法的源代码
- calculateuserposition 用MATLAB编写求解伪距
- ELM算法进行遥感图像分类
-
3电平光伏并网逆变器matlab/simuli
nk仿 - 极化SAR图像分类数据
- matlab量化择时模型回测
- 求解四步相移法的光栅相位的matlab程
- 多目标跟踪时的逻辑航迹起始算法
评论
共有 条评论