模式识别实习报告new_第1页
模式识别实习报告new_第2页
模式识别实习报告new_第3页
模式识别实习报告new_第4页
模式识别实习报告new_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、模 式 识 别实习报告实习目的1.习使用erdas软件对遥感影像进行监督分类和非监督分类。2.编程实现k-均值算法基本原理(一)非监督分类非监督分类思想:非监督分类是指人们事先对分类过程不施加任何的先验知识,而仅凭数据遥感影像地物的光谱特征的分布规律,即自然聚类的特性进行“盲目”的分类。其分类的结果只是对不同类别达到了区分,但并不能确定类别的属性。其类别的属性是通过分类结束后目视判读或实地调查确定的。非监督法是边学习边分类,通过学习找到相同的类别,然后将该类与其他类区分开(二)监督分类监督分类思想:根据已知的样本类别和类别的先验知识,确定判别函数和相应的判别准则,其中利用一定数量的已知类别函数

2、中求解待定参数的过程称之为学习或训练,然后将未知类别的样本的观测值代入判别函数,再依据判别准则对该样本的所属类别作出判定。监督分类过程:1. 选择样区:根据已知的样本类别和先验知识;2. 学习或训练:利用一定数量的已知类别函数中求解待定参数;3. 确定每一类的判别函数和相应的判别准则;4. 计算未知类别的样本观测值的在每一类函数值;5判别:按一定准则对该样本作出判定。 (三)k均值算法k均值算法思想:基于使聚类性能指标最小化,所用的聚类准则函数是聚类集中每一个样本点到该类中心的距离平方之和,并使其最小化。k均值算法步骤:1任选k个初始聚类中心 。一般以开头k个样本作为初始中心。2将模式样本集的

3、每一样本按最小距离原则分配给k个聚类中心,即在第m次迭代时,若: 则 , 表示第m次迭代时,以第j个聚类中心为代表的聚类域。 3由步骤(2),计算新的聚类中心,即: 式中ni为第i个聚类域 中的样本个数。其均值向量作为新的聚类中心,因为这样可以使误 差平方和准则函数: 达到最小值。4若 ,算法收敛,计算完毕。否则返回到步骤(2),进行下一次迭代。 k均值算法流程图:开始选择m个中心z1,z2,,zm所有像元分到m个集群中心计算新的集群中心聚类中心不变结束ny 实习步骤1在erdas中进行监督分类1 )viewer,并载入待分类的img图像2 )击classifier并选择signature e

4、ditor并点出raster工具栏。3 )用多边形工具选择样区并点击create new signature(s) from aoi来建立新类,为类别取上地物名称,并选择希望在分类后图像上显示的颜色。依此方法一次选择出长江,新城区,老城区,植被,农田,清洁水,污染水,汉江,桥这几类。4 )择classify下的supervised classification,选择9 best classes per pixel,取消output distance file,其他宝石默认,点击ok便生成了分类后的图像。2在erdas中进行非监督分类1 )开viewer,并载入待分类的img图像2 )击clas

5、sifier,选择unsupervised classification3 )input raster file中载入原影像,在output cluster layer filename中选择输出图像位置。number of class选择6,其余保持默认,点ok便生成了分类后的图像。3 编成实现k均值算法核心代码:#include <iostream.h>#define k 3#define n 10void main()int i=0,j=0;float samplesn3=0,0,0,3,8,0,2,2,0,1,1,0,5,3,0,4,8,0,6,3,0,5,4,0,6,4,

6、0,7,5,0;float zk2;/聚类中心初始化for(i=0;i<k;i+)for(j=0;j<2;j+)zij=samplesij;bool go_on=true;while(go_on)/根据当前聚类中心分类for(i=0;i<n;i+)float distancek;/计算到各个聚类中心的距离for(j=0;j<k;j+)distancej=(samplesi0-zj0)*(samplesi0-zj0) +(samplesi1-zj1)*(samplesi1-zj1);/比较距离,判断样本所属类别float min=distance0;samplesi2=1

7、;for(j=1;j<k;j+)if(distancej<min)min=distancej;samplesi2=j+1;else continue;/重新计算聚类中心int equals=0;float zzk2;for(i=0;i<k;i+)zzi0=0;zzi1=0;int n=0;for(j=0;j<n;j+)if(samplesj2=i+1)n+;zzi0+=samplesj0;zzi1+=samplesj1;zzi0=zzi0/n;zzi1=zzi1/n;if(zzi0-zi0)<0.00001)&&(zzi1-zi1)<0.00001)equals+;elsezi0=zzi0;zi1=zzi1;if(equals=k)go_on=false;/结果输出for(i=0;i<k;i+)cout<<"属于第"<<i+1<<"类的有:"<<endl;for(j=0;j<n;j+)if(samplesj2=i+1)cout<<j+1<<""cout<<endl;实习体会 经过这次实习,我感到

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论