基于纹理的特征提取
2015-11-26 21:41
162 查看
[html] view
plaincopy
function [t]=statxture(f,scale)
if nargin==1
scale(1:6)=1;
else
scale=scale(1:6)';
end
p=imhist(f); %p是256*1的列向量
p=p./numel(f);
L=length(p);
[v,mu]=statmoments(p,3);
%计算六个纹理特征
t(1)=mu(1); %平均值
t(2)=mu(2).^0.5; %标准差
varn=mu(2)/(L-1)^2;
t(3)=1-1/(1+varn); %平滑度首先为(0~1)区间通过除以(L-1)^2将变量标准化
t(4)=mu(3)/(L-1)^2; %三阶矩(通过除以(L-1)^2将变量标准化)
t(5)=sum(p.^2); %一致性
t(6)=-sum(p.*(log2(p+eps))); %熵
T=[t(1) t(2) t(3) t(4) t(5) t(6)]
%缩放值,默认为1
t=t.*scale;
end
function [v,unv]=statmoments(p,n)
Lp=length(p);
if (Lp~=256)&(Lp~=65536)
error('p must be a 256- or 65536-element vector.');
end
G=Lp-1;
p=p/sum(p);p=p(:);
z=0:G;
z=z./G;
m=z*p;
z=z-m;
v=zeros(1,n);
v(1)=m;
for j=2:n
v(j)=(z.^j)*p;
end
if nargout>1
unv=zeros(1,n);
unv(1)=m.*G;
for j=2:n
unv(j)=((z*G).^j)*p
end
end
end
f为输入的图片,必须是灰度图像。
因为纹理特征提取是灰度的纹理特征。
matlab中建立一个function的M文件
拷贝上面的代码运行就可以了。
plaincopy
function [t]=statxture(f,scale)
if nargin==1
scale(1:6)=1;
else
scale=scale(1:6)';
end
p=imhist(f); %p是256*1的列向量
p=p./numel(f);
L=length(p);
[v,mu]=statmoments(p,3);
%计算六个纹理特征
t(1)=mu(1); %平均值
t(2)=mu(2).^0.5; %标准差
varn=mu(2)/(L-1)^2;
t(3)=1-1/(1+varn); %平滑度首先为(0~1)区间通过除以(L-1)^2将变量标准化
t(4)=mu(3)/(L-1)^2; %三阶矩(通过除以(L-1)^2将变量标准化)
t(5)=sum(p.^2); %一致性
t(6)=-sum(p.*(log2(p+eps))); %熵
T=[t(1) t(2) t(3) t(4) t(5) t(6)]
%缩放值,默认为1
t=t.*scale;
end
function [v,unv]=statmoments(p,n)
Lp=length(p);
if (Lp~=256)&(Lp~=65536)
error('p must be a 256- or 65536-element vector.');
end
G=Lp-1;
p=p/sum(p);p=p(:);
z=0:G;
z=z./G;
m=z*p;
z=z-m;
v=zeros(1,n);
v(1)=m;
for j=2:n
v(j)=(z.^j)*p;
end
if nargout>1
unv=zeros(1,n);
unv(1)=m.*G;
for j=2:n
unv(j)=((z*G).^j)*p
end
end
end
f为输入的图片,必须是灰度图像。
因为纹理特征提取是灰度的纹理特征。
matlab中建立一个function的M文件
拷贝上面的代码运行就可以了。
相关文章推荐
- Swift如何调用Object-C类
- 黑马程序员——异常的学习笔记和总结
- JNI开发示例
- Mathematica 10 Mac 设置默认工作目录
- 数据结构之红黑树
- 最大流相关
- Java之Jacob调用COM接口DLL-----------------------------------dm。dll
- URL类方法源码解读
- 再谈深度学习文本的表示
- codvs 1163 访问艺术馆 树状动规
- 第十二周--数据结构--图 算法库
- java设计模式之-----单例设计模式
- 跳台阶问题 + 变态跳台阶问题 解法(动态规划递归 + 非递归)
- 在C6455上移植NDK
- 什么是阻抗?什么是阻抗匹配?为什么要阻抗匹配?
- 98 Consider the following scenario for your database: - Backup optimization is enabled in RMAN. - Th
- Delphi窗体最大化按钮不可用情况下的最大化
- leetcode 75:Sort Colors
- 提升工作效率的几个Android Studio插件和工具
- 发布模式编译android签名