纹理描述的共生矩阵方法是基于在纹理中某一灰度级结构重复出现的情况;这个结构在精细纹理中随着距离而快速的变化,而在粗糙纹理中则缓慢的变化。

假设待分析在精细纹理图像的一部分是一个M*N的矩形窗口。某一灰度级结构的出现情况可以由相对的频率的矩阵来描述,他描绘了具有灰度级a,b的两个像素,在方向Φ上间隔距离为d,以多大的频率出现在窗口中。

共生矩阵求取方法:

这里有两种定义,书上的是第一种,也就是对称矩阵的定义,如下:

我程序用的是非对称的矩阵的定义,如下:

哦,我想这一大堆公式是不那么容易看明白的,不过下面这个图就让人一目了然了。下图中的Φ=0,d=1.

共生矩阵产生完之后就需要使用其派生出的准则了。

主要有如下六种:

1.能量,或角度二阶矩(图像均匀性的测度——图像越均匀,其值越大):

2.熵:

3.最大概率:

4.对比度(局部图像变化的测度;典型k=2,λ=1):

5.倒数差分矩:

6.相关性(图像线性度的测度,在方向Φ上的线性方向的结构在这个方向上会产生大的相关值):

其中μx,μ是均值,以及σx,σy是标准差,

通用算法如下:

1.给定方向和距离构造共生矩阵。

2.用方向、距离以及六个特征值构成纹理特征向量,这就产生了相关的特征了。

下面是matlab源代码:

main.m

clear all;
close all;
clc;fai=0;
d=1;img=imread('lena.jpg');
[m n]=size(img);
k=1;
for i=1:10:m-10     %取10*10的图像,这里我随便写了,准确的是一个挨一个的取10*10for j=1:10:n-10 re{k}=comatrix(img(i:i+9,j:j+9),fai,d);k=k+1;end
endfor j=1:8s=[];    %存储特征的地方for i=1:k-1s=[s re{i}(j)];endfigure;plot(s)
end

comatrix.m

function re=comatrix(D,fai,d)[m n]=size(D);ma=max(D(:));mi=min(D(:));D=D-mi+1;       %将最小值统一为1k=ma-mi+1;      %产生合适大小的共生矩阵P=zeros(k,k);if fai==0h=0; w=d;       elseif fai==45h=d; w=d;elseif fai==90h=d; w=0;elseh=d; w=-d;endif fai~=135for i=1:m-hfor j=1:n-w P(D(i,j),D(i+h,j+w))=P(D(i,j),D(i+h,j+w))+1;  endendelsefor i=1:m-hfor j=1-w:nP(D(i,j),D(i+h,j+w))=P(D(i,j),D(i+h,j+w))+1;                endendendif sum(P(:))~=0P=P/sum(P(:));  %归一化矩阵end%re为八个特征值re=zeros(1,8);re(1)=fai;              %方向特征re(2)=d;                %步长特征re(3)=sum(P(:).^2);     %能量特征   re(4)=max(P(:));        %最大概率特征miux=sum(double(1:k).*sum(P(1:k,:)));miuy=sum(double(1:k).*sum(P(:,1:k)));sigmax=sum((double(1:k)-miux).^2.*sum(P(1:k,:)));sigmay=sum((double(1:k)-miuy).^2.*sum(P(:,1:k)));for i=1:kfor j=1:kif P(i,j)~=0re(5)=re(5)+P(i,j)*log2(P(i,j)); %熵特征endre(6)=re(6)+(i-j).^2*P(i,j);        %对比度特征if i~=jre(7)=re(7)+P(i,j)/abs(i-j);    %倒数差分矩特征endre(8)=re(8)+i*j*P(i,j);            endendif sigmax*sigmay~=0re(8)=(re(8)-miux*miuy)/(sigmax*sigmay);    %相关性特征end
end

comatirx.m中的re就是当前取的纹理的特征向量,八个描述子。

最后产生的全是曲线,就不贴图了。

参考:

http://matlab.izmiran.ru/help/toolbox/images/graycomatrix.html

转载于:https://www.cnblogs.com/tiandsp/archive/2013/03/23/2977673.html

matlab练习程序(共生矩阵)相关推荐

  1. matlab多元回归程序,多元回归程序MATLAB程序

    <多元回归程序MATLAB程序>由会员分享,可在线阅读,更多相关<多元回归程序MATLAB程序(45页珍藏版)>请在人人文库网上搜索. 1.程序MATLAB多元回归程序matl ...

  2. 无源定位之时差估计的精确时差估计算法(ETDE)及MATLAB实现程序

    精确时差估计算法(ETDE)及MATLAB实现程序 算法原理 算法总结 性能分析 实验结果 算法原理 假设两接收站分别接收的带噪信号为 {x(kT)=s(kT)+ε1(kT)y(kT)=s(kT−D) ...

  3. matlab潮流程序,IEEE33节点matlab潮流程序.doc

    IEEE33节点matlab潮流程序 Bus [1,0,0 ; 2,100, 60; 3,90,40; 4,120,80; 5,60,30; 6,60,20; 7, 200, 100 ; 8,200, ...

  4. matlab有意思程序,matlab有意思的小程序

    10个C++趣味小程序,很有意思的.VIP专享文档 VIP专享文档是百度文库认... 现在很多人使用微信的时间已经非常长了,他们注册的微信号往上可能已经是5年前的事情了,正是由于不少使用者在这个过程当 ...

  5. matlab程序里nbus=x的意思,MATLAB潮流程序(IEEE14 直角坐标 牛拉法)

    MATLAB潮流程序(IEEE14 直角坐标牛拉法)clear baseMVA=100; %功率基值 %%读Data1中数据 load Data1.txt Bus=Data1(:,1); %节点号 V ...

  6. 怎样在matlab q-q图上读出斜率,Q分解法潮流计算matlab小程序

    <Q分解法潮流计算matlab小程序>由会员分享,可在线阅读,更多相关<Q分解法潮流计算matlab小程序(18页珍藏版)>请在人人文库网上搜索. 1.Q分解法潮流计算matl ...

  7. matlab期权风险评估算法,使用 MATLAB 应用程序根据期权价格估算风险中性密度 (risk-neutral density, RND)...

    我们为什么选择 MATLAB 我们决定创建 MATLAB 应用程序估算 RND,因为我们希望研究成果得到广泛应用,而不是仅限于在量化经济学领域或是熟悉 MATLAB 编程的和金融研究人员使用. 我们发 ...

  8. matlab密度特征,关于用MATLAB应用程序估算风险中性密度的性能分析和介绍

    由于场外期权合约的买卖在交易双方间私下进行而非通过公开市场,因而可能很难确定合约的价格有利于买方还是卖方.为对这些合约进行定价,金融分析师往往依据看涨期权或看跌期权价格估算出风险中性密度(RND)值. ...

  9. 10 竞争神经网络与SOM神经网络matlab参考程序

    %% I. 清空环境变量 clear all clc %% II. 训练集/测试集产生 %% % 1. 导入数据 load water_data.mat %% % 2. 数据归一化 attribute ...

  10. 多自由度有阻尼matlab,多自由度阻尼系统固有振型的MATLAB求解程序

    多自由度阻尼系统固有振型的MATLAB求解程序function [v,w,zeta]=vbr_sf(m,d,k) %vbr_sf  vbr_sf(m,d,k) %        [v,w,zeta]= ...

最新文章

  1. 2017年度NLP领域论文TOP10(附链接)
  2. NetBeans 时事通讯(刊号 # 55 - May 06, 2009)
  3. 原来女孩子做电子工程师也很厉害。。
  4. 两个多项式相乘求解系数数组算法
  5. 算法组合 优化算法_算法交易简化了风险价值和投资组合优化
  6. 通用唯一识别码UUID
  7. 远程会议总卡顿?8 个“小白”办法一看就会!
  8. 计算机系统访问控制的功能,访问控制是为了限制访问主体对访问客体的访问权限,从而使计算机系统在合法范围内使用的安全措施,以下关于访问控制的叙述中,()是不正确的 - 信管网...
  9. Redis学习手册(主从复制)
  10. 《现代通信原理学习》(二)随机信号分析
  11. 360随身wifi2驱动 v5.3.0.1035 官方版
  12. 2022年12月最新快速批量删除微博内容_新版本如何批量删除微博以前发过的博文内容
  13. java mail eml_使用JavaMail解析EML文件
  14. 科比历年全部比赛合集【百度网盘高清分享】
  15. 树莓派外接网卡实现监听wifi
  16. [linux虚拟机] 使用yum命令时,解析不了yum源,Cannot find a valid baseurl for repo: base/7/x86_6
  17. 解决服务器发回了不可路由的地址。使用服务器地址代替的问题
  18. 神经网络实现鸢尾花分类(Tensorflow2.0)
  19. python汇率换算程序_Python第六课 汇率兑换4.0
  20. Flink State 深度讲解

热门文章

  1. 谈话《百度搜索引擎的网页质量白皮书》
  2. Android笔记——Windows环境下Android Studio v1.0安装教程
  3. 【MVC 过滤器的应用】ASP.NET MVC 如何统计 Action 方法的执行时间
  4. HTTP Error 503与.NET 3.5 SP1 X64
  5. Item 39. 异常安全之函数(Exception Safe Functions)
  6. SpringMVC入门笔记
  7. elastic集群单节点停机维护
  8. http响应状态码大全
  9. (原创) cocos2d-x 3.0+ lua 学习和工作(4) : 公共函数(8): 生成只读table
  10. 【转】Android android listview的HeadView左右切换图片(仿新浪,网易,百度等切换图片)...