MATLAB特征提取代码

for i=1:26

f=strcat('D:\bishe\',num2str(i)); image=strcat(f,'.jpg'); PS=imread(image);

PS=imresize(PS,[300,300],'bilinear');%归一化大小  PS=rgb2gray(PS);

[m,n]=size(PS); %测量图像尺寸参数

GP=zeros(1,256); %预创建存放灰度出现概率的向量

for k=0:255

GP(k+1)=length(find(PS==k))/(m*n); %计算每级灰度出现的概率,将其存入GP中相应位置

end

%直方图均衡化

S1=zeros(1,256);  for i=1:256  for j=1:i

S1(i)=GP(j)+S1(i); %计算Sk

end  end

S2=round((S1*256)+0.5); %将Sk归到相近级的灰度 %图像均衡化

f=PS;

for i=0:255

f(find(PS==i))=S2(i+1); %将各个像素归一化后的灰度值赋给这个像素  end

figure,imshow(f); %边缘检测

f=edge(f,'canny',0.25);  imshow(f);

%二值法锐化图像  f=double(f);

[x,y]=gradient(f);  g=sqrt(x.*x+y.*y);  i=find(g>=0.5);  g(i)=256;

j=find(g<0.5);  g(j)=0;  imshow(g);

title('二值法锐化图像'); %中值滤波 g=medfilt2(g); g=dither(g); imshow(g);

%提取面积,矩形度,圆形度,拉伸度特征

%g=im2bw(g);  [x,y]=size(g);

BW = bwperim(g,8); % 检测边缘跟踪,用于计算周长 %检测垂直方向连读的周长像素点%

P1=0;  P2=0;

Ny=0; % 记录垂直方向连续周长像素点的个数

for i=1:x  for j=1:y

if (BW(i,j)>0)  P2=j;

if ((P2-P1)==1) % 判断是否为垂直方向连续的周长像素点  Ny=Ny+1;  end  P1=P2;  end  end  end

%检测水平方向连读的周长像素点

P1=0;  P2=0;

Nx=0; % 记录水平方向连续周长像素点的个数

for j=1:y  for i=1:x

if (BW(i,j)>0)  P2=i;

if ((P2-P1)==1) % 判断是否为水平方向连续的周长像素点  Nx=Nx+1;  end  P1=P2;  end  end  end

SN=sum(sum(BW)); % 计算周长像素点的总数  Nd=SN-Nx-Ny; % 计算奇数码的链码数目  H=max(sum(g)); % 计算目标的高度

W=max(sum(g')); % 图象g经矩阵转置后,计算宽度  L=sqrt(2)*Nd+Nx+Ny; % 计算周长 %====形态特征值计算===%  A=bwarea(g); % 计算目标的面积  R=A/(H*W); % 计算矩形度

E=min(H,W)/max(H,W); % 计算伸长度  temp1=[A,R,E];

%提取不变矩特征

[M,N]=size(g);

[x,y]=meshgrid(1:N,1:M);  x=x(:);  y=y(:);  g=g(:);

m.m00=sum(g);  if(m.m00==0)  m.m00=eps;  end

m.m10=sum(x.*g);  m.m01=sum(y.*g);  m.m11=sum(x.*y.*g);  m.m20=sum(x.^2.*g);  m.m02=sum(y.^2.*g);  m.m30=sum(x.^3.*g);  m.m03=sum(y.^3.*g);  m.m12=sum(x.*y.^2.*g);  m.m21=sum(x.^2.*y.*g);  xbar=m.m10/m.m00;  ybar=m.m01/m.m00;

e.eta11=(m.m11-ybar*m.m10)/m.m00^2;  e.eta20=(m.m20-xbar*m.m10)/m.m00^2;  e.eta02=(m.m02-ybar*m.m01)/m.m00^2;

e.eta30=(m.m30-3*xbar*m.m20+2*xbar^2*m.m10)/m.m00^2.5;  e.eta03=(m.m03-3*ybar*m.m02+2*ybar^2*m.m01)/m.m00^2.5;

e.eta21=(m.m21-2*xbar*m.m11-ybar*m.m20+2*xbar^2*m.m01)/m.m00^2.5;  e.eta12=(m.m12-2*ybar*m.m11-xbar*m.m02+2*ybar^2*m.m10)/m.m00^2.5;  phi(1)=e.eta20+e.eta02;

phi(2)=(e.eta20-e.eta02)^2+4*e.eta11^2;

phi(3)=(e.eta30-3*e.eta12)^2+(3*e.eta21-e.eta03)^2;  phi(4)=(e.eta30+e.eta12)^2+(e.eta21+e.eta03)^2;

phi(5)=(e.eta30-3*e.eta12)*(e.eta30+e.eta12)*((e.eta30+e.eta12)^2-3*(e.eta21+e.eta03)^2+(3*e.eta21-e.eta03)*

(e.eta21+e.eta03)*(3*(e.eta30+e.eta12)^2-(e.eta21+e.eta03)^2));

phi(6)=(e.eta20-e.eta02)*((e.eta30+e.eta12)^2-(e.eta21+e.eta03)^2)+4*e.eta11*(e.eta30+e.eta12)*(e.eta21+e.eta03);

phi(7)=(3*e.eta21-e.eta03)*(e.eta30+e.eta12)*((e.eta30+e.eta12)^2-3*(e.eta21+e.eta03)^2)+(3*e.eta12-e.eta30)*

(e.eta21+e.eta03)*(3*(e.eta30+e.eta12)^2-(e.eta21+e.eta03)^2);  temp2 = abs(log(phi));%包含七个特征值

temp=[temp1,temp2] end

matlab出现红色括号,想让大家看下标红地方为什么说有括号问题相关推荐

  1. AI:一个20年程序猿的学习资料大全—人工智能之AI/机器学习/深度学习/计算机视觉/Matlab大赛——只有你不想要的,没有你找不到的

    AI:一个20年程序猿的学习资料大全-人工智能之AI/机器学习/深度学习/计算机视觉/Matlab大赛--只有你不想要的,没有你找不到的 目录 (有偿提供,替朋友转载,扫描下方二维码提问,或者向博主扫 ...

  2. 【毕业求职季】-听说你想去大厂看学妹,带你看看字节跳动产品经理面试长啥样?

    前言 毕业求职季,你准备好了吗?希望各位小伙伴能够苦练技术,早日达成自己心仪的offer. 下面是博主收集的一些关于面试的比较帮的面试题目,有需要的小伙伴可自行订阅下载. Spring系列面试题129 ...

  3. wps如何删除括号里的内容_文档中怎么批量去除括号里面的答案 - 卡饭网

    在word2007文档中如何批量删除英文字母? 在word2007文档中如何批量删除英文字母? 在word2007文档中如何批量删除英文字母?          步骤 1.点击office word2 ...

  4. 小括号教学设计导入_丁文丽《含有小括号的混合运算》教学设计

    <含有小括号的混合运算>教学设计 青铜峡市第五小学  丁文丽 教学目标: 1.根据实际情境,让学生体会括号能改变原来运算顺序的作用. 2.在探索与交流中体会含有小括号的混合运算的运算顺序, ...

  5. 一个不错的看电影的地方

    一个不错的看电影的地方  http://www.shuangtv.net/

  6. 年化超额收益计算matlab,超额年化收益率的计算 看了一下雪球上一些雪友贴出的基金或大V的历年收益率,发现一些人统计的不对,想说一下: 1.超额收益率 某基金当年收益率为... - 雪球...

    来源:雪球App,作者: Money_Ball,(https://xueqiu.com/1930958059/167803003) 看了一下雪球上一些雪友贴出的基金或大V的历年收益率,发现一些人统计的 ...

  7. 什么电脑能带动matlab,大三女生想换电脑:轻便(易携带)性能(需要office Matlab AE等软件)好看 求推荐?经济类研究生有没有必要换windows笔记本...

    在上一篇文章中,小编为您详细介绍了关于<笔记本插电池一直接电源?想升级下电脑大家给我推荐一款好的主板>相关知识.本篇中小编将再为您讲解标题大三女生想换电脑:轻便(易携带)性能(需要offi ...

  8. python学起来难不难-python很难学?学起来很吃力,想放弃?看别人是怎样学习的...

    其实吧, 你也没不能接受别人一分钟能赚你一辈子的钱吧- 比尔盖茨动动手指就有一套房子,你不是也没觉得有什么不对吗? 那你为什么不能接受有人一分钟能学你一辈子的知识- 别人用一分钟学你一个小时的事情,不 ...

  9. 想学python看什么书-请问想学python和JAVA得看什么书?

    很多Python大佬都建议去Python官网看documentation,觉得那才是最新最有用的,这点小编并不否认,但是对于英语不太好的小伙伴们或者尚未接触过编程的小白来说,那就相当于看天书一样难啦~ ...

最新文章

  1. CVPR2020:三维实例分割与目标检测
  2. March Library 版本更新
  3. ****CI框架源码阅读笔记7 配置管理组件 Config.php
  4. MindSDK+yolov5部署及python版图像视频推理实现
  5. 大数据时代下的迁移学习_继深度学习后,下一个热点技术是迁移学习
  6. MySQL提供了以下三种方法用于获取数据库对象的元数据
  7. MongoDB固定集合(capped collection)
  8. android系统(9)---Android Sensor 体系架构
  9. 深圳电大计算机等级考试报名时间2015,杭州2015下半年计算机等级考试报名
  10. python again语句_【python笔记 二 】python语句
  11. UE4 Pak 相关知识总结
  12. linux命令行 teamview,linux centos 命令行 安装 teamviewer 启动 停止
  13. 也致第一次安装Rime的你
  14. jenkins 下载 安装 启动教程-通过war的方式
  15. 你一定要狠狠的幸福,那个凶丫头(2)
  16. linux中分号转义字符,Linux职场技术篇-Linux shell中元字符、转义符、通配符的使用方法...
  17. VS2010如何打开VS2012的项目
  18. VM的三种网络连接方式
  19. 【javaScript】原生实现窗口拖动效果
  20. 数学故事(统计学的妙用)

热门文章

  1. 微软推行 Windows 10 更新政策 往后不会太强硬要求升级!
  2. websocket 学习--简单使用,nodejs搭建websocket服务器,到模拟股票,到实现聊天室
  3. Vue页面跳转后不显示问题
  4. abap数据类型转换_ABAP 中JSON格式的转换与解析
  5. 爬虫python能做游戏吗_一入爬虫深似海,从此游戏是路人!总结我的python爬虫学习笔记!...
  6. 如何用python编程制作出表格_使用Python轻松制作漂亮的表格
  7. c语言数组转置原理,为什么这个数组转置不对?
  8. pythonmulti函数_python – 用于使用MultiIndex创建pandas系列的语法糖
  9. c语言程序中必不可少的,C语言程序设计(第3章程序控制语句)2
  10. css 外弧_css 伪类实现弧形