最近写了两个关于遥感图像的简单的非监督分类算法KMEAN和ISODATA,发现结果和ENVI的一直有差异,而且还蛮大的,找了好久也没有找到原因。于是用PS自己绘制了一个简单的图像用于测试。如图1所示,该图中共有四个颜色(类别),四个角为绿色,上下为蓝色,左右为红色,中心为黄色。按道理来说,非监督分类应该初始种子点设置为4类应该可以将该图像分为四类。

图1 使用PS绘制的测试图像

首先使用ENVI自带的KMEAN分类,初始类别个数设置为5类,迭代次数为5,其他参数默认。图2是处理的结果。我自己写的KMEAN参数也是初始类别个数为5,迭代次数为5,处理结果见图3。从图2和图3对比可以看出,ENVI的结果就剩下2类,四周全部合并为一类,中间的黄色为另外一类。图3中处理的结果与原图一样,颜色是随机给的,所以颜色和原图不一样,类别个数还是5类。由于KMEAN对初始种子点的选取比较敏感,不知道ENVI的种子点是如何选取的,我自己使用随机数进行选取。

图2 ENVI的KMEAN处理结果

图3 我写的KMEAN处理结果

接下来再看看ISODATA分类的结果,和上面一样,初始类别个数设置为5和10,也就是最小五类,最大十类。迭代次数还是5次,图4是使用ENVI处理的结果,图5是我自己写的结果。对比发现,ISODATA相对KMEAN来说,效果要好一些(仅仅以图1中的数据来说),总共找出了四类,中间的和左右两边的合并为一类了。而我自己写的和原图类别个数保持一致,至少说明我写的没有错误。

图4 ENVI的ISODATA处理结果

图5 我写的ISODATA处理结果

下面是我写KMEAN和ISODATA算法参考的几个资料,有需要的同学可以看看。另外很多开源库里面都有这两个算法的源码,比如OpenCV,RSGIS,OTB等。

参考资料

[1]:k-means clustering  http://en.wikipedia.org/wiki/K-means_clustering
[2]:KMean cluster algorithm  http://blog.sina.com.cn/s/blog_51eea616010091ub.html
[3]:K-Mean Clustering Tutorials  http://people.revoledu.com/kardi/tutorial/kMean/index.html
[4]:深入浅出K-Means算法  http://www.csdn.net/article/2012-07-03/2807073-k-means
[5]:基本Kmeans算法介绍及其实现  http://blog.csdn.net/qll125596718/article/details/8243404

[6]:A Tutorial on Clustering Algorithms  http://home.deib.polimi.it/matteucc/Clustering/tutorial_html/index.html

ENVI自带的非监督分类测试情况的更多相关文章

  1. Github实战测试情况

    测试情况 很久没有熬夜测试程序了,经过测试,没有复现功能的有echo.葫芦娃.火鸡堂.那周余嘉熊掌将得队.为了交项目而干杯.修!咻咻!.云打印和追光的人.据汪老师反应在现场实践课程中大都能实现的,公平 ...

  2. 4分钟apache自带ab压力测试工具使用: 2015.10.4

    2015.10.44分钟apache自带ab压力测试工具使用:win8.1 wampserver2.5 -Apache-2.4.9-Mysql-5.6.17-php5.5.12-64b 可以参考一下部 ...

  3. win8.1上wamp环境中利用apache自带ab压力测试工具使用超简单讲解

    2015.10.4apache自带ab压力测试工具使用:本地环境:win8.1 wampserver2.5 -Apache-2.4.9-Mysql-5.6.17-php5.5.12-64b 可以参考一 ...

  4. sql 邮件发送测试情况

    sql 邮件发送测试情况 select * from msdb.dbo.sysmail_allitems select * from msdb.dbo.sysmail_event_log

  5. 分布式事务之:TCC几个框架的测试情况记录

    国内主要的开源TCC分布式事务框架包括 框架名称 Github地址  star数量  tcc-transaction  https://github.com/changmingxie/tcc-tran ...

  6. 网站服务器压力Web性能测试(1):Apache Bench:Apache自带服务器压力测试工具

    一个网站或者博客到底能够承受多大的用户访问量经常是我们在用VPS或者独立服务器搭建网站了最关心的问题,还有不少人喜欢对LNMP或者LAMP进行一些优化以便提高Web性能,而优化后到底有多大的效果,就需 ...

  7. 装饰器1、无参数的装饰器 2、有参数的装饰器 3、装饰器本身带参数的以及如果函数带return结果的情况

     装饰器分成三种: 1.无参数的: 2.有参数的: 3.装饰器本身带参数的. 装饰器decorator又叫语法糖 定义:本质是函数,器就是函数的意思.装饰其他函数.就是为其他函数添加附加功能. 原则: ...

  8. PHP测试与优化(1)-- Apache自带的压力测试工具ab(apache bench) - 简单使用

    ab是apache自带的网站压力测试工具,能够测试网站在一定时间内的发生高并发时的反应. 使用 1.进入apache的bin文件夹 2.模拟并发级别为100,请求数为1000个的api数据请求数量测试 ...

  9. spring boot web开发 简单的增删改查和spring boot 自带的Junit测试 案例

    创建 web项目 配置pom.xml文件   ------相当于jar包 配置application.yml -----配置文件(spring数据库连接.server服务.logging日志等) 创建 ...

随机推荐

  1. 【USACO】电子游戏 有条件的背包

    题目描述 翰的奶牛玩游戏成瘾!本来约翰是想把她们拖去电击治疗的,但是他发现奶牛们在玩游戏后生产 了更多的牛奶,也就支持它们了. 但是,奶牛在选择游戏平台上的分歧很大:有些奶牛想买 Xbox 360 来 ...

  2. 【bzoj4009 hnoi2015】接水果

    题目描述 风见幽香非常喜欢玩一个叫做 osu!的游戏,其中她最喜欢玩的模式就是接水果.由于她已经DT FC 了The big black, 她觉得这个游戏太简单了,于是发明了一个更加难的版本. 首先有 ...

  3. 【AIM Tech Round 4 (Div. 2) D Prob】

    ·题目:D. Interactive LowerBound ·英文题,述大意:       有一个长度为n(n<=50000)的单链表,里面的元素是递增的.链表存储在一个数组里面,给出长度n.表 ...

  4. 例10-5 uva12716

    题意:gcd(a,b) = a^b,( 1≤ a , b ≤ n) 思路: ① a^b = c, 所以 a^c = b,而且c是a的约数,枚举a,c,再gcd判断 ② 打表可知 a-b = c,而且a ...

  5. [BZOJ]1079 着色方案(SCOI2008)

    相邻色块不同的着色方案,似乎这道题已经见过3个版本了. Description 有n个木块排成一行,从左到右依次编号为1~n.你有k种颜色的油漆,其中第i种颜色的油漆足够涂ci个木块.所有油漆刚好足够 ...

  6. bzoj1493[NOI2007]项链工厂 线段树

    1493: [NOI2007]项链工厂 Time Limit: 30 Sec  Memory Limit: 64 MBSubmit: 1712  Solved: 723[Submit][Status] ...

  7. [51nod1239欧拉函数之和]

    来自FallDream的博客,未经允许,请勿转载,谢谢 --------------------------------------------- 给定n,求$S(n)=\sum_{i=1}^{n}\ ...

  8. 【vijos1943】上学路上

    题目戳这里 描述 小雪与小可可吵架了,他们决定以后互相再也不理对方了.尤其是,他们希望以后上学的路上不会再相遇. 我们将他们所在城市的道路网视作无限大的正交网格图,每一个整数点 (x,y) 对应了一个 ...

  9. Elasticsearch 创建、更新、删除文档、处理冲突

    ----创建新文档---- 1._index,_type和_id的组合可以唯一标识一个文档,所以确保一个新文档的最简单的办法就是,使用索引请求的POST形式让elsticsearch自动生成唯一_id ...

  10. ScalaPB(0): 找寻合适的内部系统微服务集成工具

    前一段时间我们探讨了SDP的一个基于集群的综合数据平台解决方案,由多种数据库组成,包括:JDBC, Cassandra 及MongoDB.其中Cassandra和MongoDB属于分布式数据库,可以在 ...