最近写了两个关于遥感图像的简单的非监督分类算法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. Trie模版

    struct Trie{ Trie* nxt[]; int v; Trie(){ ;i<;i++){ nxt[i]=NULL; } v=-; } void insert(char s[],int ...

  2. 计蒜客NOIP2017提高组模拟赛(三)day2-数三角形

    传送门 这题有点坑啊 设A为两边颜色不同的角,B为两边颜色相同的角 那么考虑三种三角形:异色,同色,其他 对于任何一个异色三角形,一定会有三个颜色不同的角, 对于任何一个同色三角形,一定会有零个颜色不 ...

  3. [BZOJ]4162: shlw loves matrix II

    Time Limit: 30 Sec  Memory Limit: 128 MB Description 给定矩阵 M,请计算 M^n,并将其中每一个元素对 1000000007 取模输出. Inpu ...

  4. Excel实现双击插入当前日期时间

    用vba做一个事件驱动程序. 第一步:点击开发工具-visual basic. 第二步:在当前工作表中编制程序如下: Private Sub Worksheet_BeforeDoubleClick(B ...

  5. Frame buffer分析 - fbmem.c【转】

    转自:http://www.cnblogs.com/armlinux/archive/2012/03/01/2396753.html 45 struct fb_info *registered_fb[ ...

  6. Python【第五课】迭代器,生成器,数据序列化

    本节内容 列表生成式,生成器,迭代器 Json & pickle 数据序列化 1.列表生成式,生成器,迭代器 1.1 列表生成式 列表生成式?不就是生成个列表的表达式,恩~~~ 差不多. 一般 ...

  7. mooc-python语言语法week3-6

    week3 1.类型的概念:程序编程不允许有歧义的数据类型存在,所以对数据进行了划分,python语言类型分为,数字类型.字符串类型.元组类型.列表类型.文件类型.字典类型. i:数字类型: pyth ...

  8. vrn:基于直接体积回归的单幅图像大姿态三维人脸重建

    3D面部重建是一个非常困难的基本计算机视觉问题.目前的系统通常假设多个面部图像(有时来自同一主题)作为输入的可用性,并且必须解决许多方法学挑战,例如在大的面部姿势,表情和不均匀照明之间建立密集的对应. ...

  9. CSS3左右间歇晃动效果

    今天在做一个活动页面时,产品想要在页面中添加一个吸引人注意的小图片左右晃动的效果,并且该效果是间歇执行的.我一想应该挺简单的吧,二话没说就答应了,谁知在真正实现的时候才发现还是有些许困难的.于是就在网 ...

  10. Java8 按照类属性去重

    测试po package com.shiwulian.test.po; public class Person {private String id;private String name;priva ...