最近修改论文已经到了最后的关口,但是分类精度评估的方法还需要再修改调整。

我原来的方法是利用ArcGIS建立格网,格网中心点作为我的目视解译点,然后利用ArcGIS收集该点的影像分类结果,再把数据属性导出用python计算混淆矩阵。

被质疑之后我使用了分层抽样法,原理我就不赘述了,通过分层抽样法可以计算出一幅影像每个类别需要的抽样点为多少。

之后在分类影像上每个类别的点随机撒在该类别的位置,再人工目视解译,与影像分类结果一起计算混淆矩阵即可。

我首先尝试了Erdas,首先有着ArcGIS的电脑安装erdas后会出现一定的问题,之后我会再写一篇文章概述。并且最后发现erdas抽样的点很难导入ArcGIS或者有个excel表格这样方便计算混淆矩阵,于是我放弃了。

之后网上搜索到ArcMap 10.4以上版本可以较为方便的,进行分层抽样撒点,但是按照高版本的有风险,我目前用10.2

ArcGIS 10.2没有办法让点能够撒到分类影像上那一类的位置上去,但是我最后发现ENVI可以使用这个功能。

正文如下:----------------------------------------不想看我叙述的可以看这里------------------------------

1.分类

首先我的分类结果是tif影像,1、2、3这些值来表示各个类别,tif不能直接在ENVI中进行抽样撒点,要在ENVI中分类,采用决策树,也就是classification-decision tree,首先先建立一个决策树,注意这是让你选b1的波段,先不要选,之前我选了后来换成别的影像存在错误。保存之后,使用classification-decision tree-execute exiting decision tree,选择之前保存的决策树txt。选择你的分类结果影像,然后就可以得到分类影像。

2.抽样撒点

使用envi的classification-post classification-generate random sample-using ground truth image

之后选择你需要的影像,点确定

之后可以选择类(注意这里我给了一个类别给影像上没有分类的,就是none,可以不选它)

点OK后,选择分层抽样,和diproportionnate,然后点击set class sample sizes,就可以设定每个类别撒多少点了

其他选择不变保存roi

之后打开影像

选择overlay-region of interest,就可以看到生成的点(其实就是roi),注意这里的ROI可能存在之前生成的,不是你这次的,删掉。以下窗口选择,选择File-output roi to shapefile这个,

如下,选择你需要的类别保存即可,基本是全选

3.shapefile获取影像分类点+目视解译

将shp文件在ArcGIS打开,之后选择spatial analysis tools-extraction-extract values to points,选择你的shp文件和影像,最后可以得到一个矢量文件,里面有一栏RASTERVALU属性就是影像的值。

之后只要打开属性表,add field增加新的一列,作为目视解译的结果,然后右键使用栅格计算器,使它等于RASTERVALU这一列即可(这一步是为了减小工作量,当然也可以自己赋值),然后就可以目视解译改这个值啦。

4.计算混淆矩阵

得到目视解译后的点的矢量文件,可以使用python打开shp文件自带的dbf文件(其实就是属性表)计算混淆矩阵和kappa系数即可

代码如下

from sklearn.metrics import confusion_matrix
from sklearn.metrics import accuracy_score
from sklearn.metrics import cohen_kappa_score
from sklearn.metrics import precision_recall_fscore_support
from sklearn.metrics import classification_report
from sklearn.metrics import precision_score
from sklearn.metrics import recall_scoreimport pandas
import os
from dbfread import DBFrootdir = "H:\\result_2_type\\points"
list = os.listdir(rootdir)
colnames = ['OID_', 'RASTERVALU', 'true']
true=[]
result=[]
for i in range(0,len(list)):if not list[i].endswith(".dbf"):continuefolder = os.path.join(rootdir,list[i])print(folder)table = DBF(folder, encoding='GBK')df = pandas.DataFrame(iter(table))result_temp = df['RASTERVALU'].tolist()true_temp = df['true'].tolist()score=accuracy_score(true_temp, result_temp)print('score=',score)kappa=cohen_kappa_score(true_temp, result_temp)print('kappa=',kappa)report=classification_report(true_temp, result_temp,digits=4)print('report=',report)true.extend(true_temp)result.extend(result_temp)

ArcGIS+ENVI实现遥感分类精度评估(分层抽样法)相关推荐

  1. 遥感影像非监督分类及其精度评估(基于ERDAS实现)

    遥感影像非监督分类及其精度评估(基于ERDAS实现) 非监督分类法 在没有先验类别(训练区) 作为样本的条件下,即事先不知道类别特征的情况下,仅依靠影像上不同类地物光谱信息(或纹理信息等)进行特征提取 ...

  2. 遥感分类误差矩阵_遥感卫星影像之分类精度评价

    原标题:遥感卫星影像之分类精度评价 对一帧遥感影像进行专题分类后需要进行分类精度的评价,而进行评价精度的因子有混淆矩阵.总体分类精度.Kappa系数.错分误差.漏分误差.每一类的制图精度和拥护精度. ...

  3. 遥感影像分类精度评价指标释义

     对一帧遥感影像进行专题分类后需要进行分类精度的评价,评价精度的因子有混淆矩阵.总体分类精度.Kappa系数.错分误差.漏分误差.每一类的制图精度和用户精度. 1.混淆矩阵(Confusion M ...

  4. QGIS基于多期哨兵2影像遥感指数阈值法提取冬小麦分布(4)-分类精度评价

    本文继续介绍使用QGIS基于多期哨兵2影像遥感指数阈值法提取冬小麦分布,本文为教程的第四部分:分类结果精度评价.所使用的示范数据下载地址为: 链接: https://pan.baidu.com/s/1 ...

  5. 2014年ENVI/IDL遥感应用与开发培训班-11月重庆站 開始报名了

    主办单位: 中国遥感应用协会 Esri中国信息技术有限公司 内容简单介绍: 依据中国遥感应用协会栾恩杰理事长推动国内遥感技术和应用的指示精神,2014年中国遥感应用协会组织培训交流部与Esri中国信息 ...

  6. 土地利用/覆盖遥感分类研究

    遥感数据资料的简介 目前,遥感数据的常用信息源有 NOAA.MSS.TM.SPOT等航天遥感数据及部分不同尺度的航空像片.不同类型的遥感资料具有不同的信息提取精度,从而适应于不同的研究尺度.NOAA气 ...

  7. 分类算法列一下有多少种?应用场景?分类算法介绍、常见分类算法优缺点、如何选择分类算法、分类算法评估

    分类算法 分类算法介绍 概念 分类算法 常见分类算法 NBS LR SVM算法 ID3算法 C4.5 算法 C5.0算法 KNN 算法 ANN 算法 选择分类算法 分类算法性能评估 分类算法介绍 概念 ...

  8. 02_混淆矩阵、准确率(Accuracy)、精确率(Precision)、召回率(Recall)、F值(F-Measure) +Roc曲线和PR曲线+sklearn中分类模型评估API+ 自己补充整理

    此博文参考: 关于ROC绘制参考博文: https://blog.csdn.net/u011630575/article/details/80250177 Python+ROC相关的博文: https ...

  9. windows10使用cuda11搭建pytorch深度学习框架——运行Dlinknet提取道路(三)——模型精度评估代码完善

    重新调试好代码,使用Dinknet34模型对数据集进行训练 数据集大小为1480张图片 运行时间为2022年1月12日16:00 记录下该模型训练时间 但如何评估模型的精度也是一个问题,因此作如下总结 ...

最新文章

  1. gaokao--抓取高校基本信息
  2. 使用 C++ 的 StringBuilder 提升 4350% 的性能
  3. 存储器的保护(一)——《x86汇编语言:从实模式到保护模式》读书笔记18
  4. tp3.2php开启事务,ThinkPHP 3.2.2实现事务操作的方法
  5. 记录第一次使用Texlive+TexStudio写论文时遇到的问题(随时更新)
  6. 《MS SQL Server 2000管理员手册》系列——8. 管理 Microsoft SQL Server 服务
  7. ios 数组越界奔溃库_iOS中防止数组越界之后发生崩溃
  8. mysql varchar 2000能存_mysql 数据库 varchar 到底可以存多少数据呢,长文慎入
  9. debian下安装python虚拟环境
  10. java imap 乱码_php imap/pop3 接收邮件类,解决中文乱码
  11. CSDN 2020博客之星投票进行中:送你喜爱的博主C位出道!
  12. ELK logstash grok匹配失败存另外的es表
  13. 小米平板4刷机win10或linux,小米平板2中Win10/MIUI系统互刷终极教程
  14. GEO数据库中platform信息详解
  15. 网页游戏服务器的源代码武者无敌_仅百元搭建盗版游戏框架,牟利上百万元……私服游戏地下产业链的“生意经”...
  16. 简单易学的机器学习算法——Mean Shift聚类算法
  17. 2021.07.10 存个直播间链接
  18. 2021年B站品牌爆款营销案例盘点
  19. cpu性能测试软件 国际象棋,国际象棋测试
  20. android微博图片上传,安卓开发 新浪微博share接口实现发带本地图片的微博

热门文章

  1. 为什么delphi编译生成的exe文件这么大
  2. android http zlib,利用zlib库对HTTP收到的gzip数据解压
  3. oracle数据库拼接sql语句字符串问题
  4. 不区分大小写的“包含(字符串)”
  5. python3+ffmpeg下载B站视频,附代码
  6. 九九乘法表,java代码实现
  7. Java实现数据库jdbc连接测试
  8. PR,ROC,AUC计算方法
  9. win11搭建Ruoyi框架部署流程(有引用内容)
  10. Python学习笔记之Python之禅