1.算法功能简介

  遥感图像分类精度分析通常把分类图与标准数据进行比较,然后用正确分类的百分比来表示分类的精度。

  PIE SDK支持算法功能的执行,下面对精度分析算法功能进行介绍。

2.算法功能实现说明

2.1. 实现步骤

第一步

算法参数设置

第二步

算法执行

第三步

结果显示

2.2. 算法参数

算法名称

精度分析

C#算法DLL

PIE.CommonAlgo.dll

C#算法名称

PIE.CommonAlgo.ImgClassPostPAAlgo

参数结构体

StImgClassPostPA

参数说明

RealName

String

输入真实地面分类文件(*.tif;*.tiff; *.img)

ClassName

String

输入分类数据文件(*.tif;*.tiff; *.img)

RealIndex

IList<Int>

真实类别索引集合(正整数)

ClassIndex

IList<Int>

分类类别索引集合(正整数)

strRealInfo

IList<String>

真实地面信息

strClassInfo

IList<String>

分类数据信息

Fileinfo

String

精度结果

IsShp

bool

是否矢量

FuncName

String

功能名称

SelIndex

Int

选中索引

2.3. 示例代码

项目路径

百度云盘地址下/PIE示例程序/10.算法调用/图像处理/ PrecisionAnalysisDemo

数据路径

百度云盘地址下/PIE示例数据/栅格数据/08.图像分类/ distanceClassify-Julei.tif

视频路径

百度云盘地址下/PIE视频教程/10.算法调用/图像处理/精度分析.avi

示例代码

         /// <summary>
/// 分类后处理-精度分析
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void toolStripButton1_Click(object sender, EventArgs e)
{
//用分类后的结果distanceClassify-Julei.tif和真实的文件进行比对,得到精度分析结果
//参数设置
PIE.CommonAlgo.StImgClassPostPA info = new PIE.CommonAlgo.StImgClassPostPA();
info.FuncName = "精度分析";
info.ClassName = @"D:\data\图像分类2\distanceClassify-Julei.tif";//分类后数据文件
info.RealName = @"D:\data\图像分类2\roi-shp.shp";//地面真实文件(矢量或者是影像)
IList<int> listRealIndex = new List<int> { , , , };//此处没有处理索引为0的未分类数据,若处理可以加上0;
IList<int> listClassIndex = new List<int> { ,,, };
info.RealIndex = listRealIndex;//真实地面索引集合 匹配的左侧索引
info.ClassIndex = listClassIndex;//分类类别索引集合 匹配的右侧索引
info.IsShp = true; //如果是roi文件 则为true IList<string> listClassNameInfo = new List<string>();
IList<string> listRealNameInfo = new List<string>();
listRealNameInfo.Add("Unclassified");
IFeatureDataset realFeatureDataset = DatasetFactory.OpenFeatureDataset(info.RealName);
if (realFeatureDataset == null) return;
IFeature feature = realFeatureDataset.GetNextFeature();
while (feature != null)
{
string str = feature.GetValue().ToString();//默认选择索引为0的字段的值
int nSize = listRealNameInfo.Count;
if (nSize == )
{
listRealNameInfo.Add(str);
continue;
}
int isz = ;
for (isz = ; isz < nSize; isz++)
{
if (listRealNameInfo[isz] == str) break;
} if (isz == nSize)
{
listRealNameInfo.Add(str);
}
feature = realFeatureDataset.GetNextFeature();
} //分类数据的类别
IRasterDataset rasterDataset = DatasetFactory.OpenRasterDataset(info.ClassName, OpenMode.ReadOnly);
listClassNameInfo = rasterDataset.GetRasterBand().GetCategoryNames();//获取分类信息
if (listClassNameInfo == null)
{
IColorTable colTable = rasterDataset.GetRasterBand().Table;
if (colTable != null)
{
int count = colTable.GetColorEntryCount();
for (int i = ; i < count; i++)
{
listClassNameInfo.Add("Class" + i);
}
}
}
info.strClassInfo = listClassNameInfo; //分类数据类别信息
info.strRealInfo = listRealNameInfo; //真实地面信息
info.SelIndex = ; //选中的属性索引 ClassName //2、创建算法对象
ISystemAlgo algo = AlgoFactory.Instance().CreateAlgo("PIE.CommonAlgo.dll", "PIE.CommonAlgo.ImgClassPostPAAlgo");
if (algo == null) return;
algo.Params = info; //3、执行算法
bool result = AlgoFactory.Instance().ExecuteAlgo(algo);
PIE.CommonAlgo.StImgClassPostPA info1 = algo.Params as PIE.CommonAlgo.StImgClassPostPA;
string str1 = info1.Fileinfo;
MessageBox.Show(str1,"精度分析结果:");
}

2.4. 示例截图

图1:分类前数据

图2:距离分类结果(聚类调整)

图3:精度分析结果

注意:示例中的分类数据是距离分类数据distanceClassify.img;

分类之后会出现斑点问题,可以采用聚类进行消除得到distanceClassify-Julei.tif数据。

 

PIE SDK 精度分析(分类后处理)的更多相关文章

  1. PIE SDK 距离分类和最大似然分类

       1.算法功能简介 监督分类,也叫训练场地法.训练分类法,是遥感图像分类的一种,用被确认类别的样本像元去识别其他未知类别像元的过程.监督分类算法有平行算法.平行六面体法.最小距离法.最大似然法.马 ...

  2. PIE SDK ISODATA分类

    1.算法功能简介 ISODATA(IterativeSelf-OrganizingDataAnalysisTechniqueAlgorithm)即迭代式自组织数据分析技术, 其大致原理是首先计算数据空 ...

  3. PIE SDK K-Means分类

    1.算法功能简介 K-Means 算法的基本思想是:以空间中 k 个点为中心进行聚类,对最靠近他们的对象归类.通过迭代的方法,逐次更新各聚类中心的值,直至得到最好的聚类结果. 算法首先随机从数据集中选 ...

  4. PIE SDK分类合并

    1. 算法功能简介 分类合并功能是将分类文件中所设置的对应类别进行合并. PIE SDK支持算法功能的执行,下面对分类合并算法功能进行介绍. 2. 算法功能实现说明 2.1. 实现步骤 第一步 算法参 ...

  5. PIE SDK Command&&Tool工具命令一览表

    PIE SDK Command&&Tool工具命令一览表 编号 模板 名称(中文) Command&Tool 程序集 备注 1 数据管理 加载栅格数据 PIE.Controls ...

  6. PIE SDK 文章目录索引

    1.PIE SDK介绍 1.1.  PIE软件介绍 1.2.  PIE SDK介绍 1.3.  PIE支持项目介绍 1.4.  PIE.NET-SDK插件式二次开发介绍 1.5.  PIE.NET-S ...

  7. PIE SDK分类统计

    1. 算法功能简介 分类统计功能是将分类后的结果统计输出. PIE SDK支持算法功能的执行,下面对分类统计算法功能进行介绍. 2. 算法功能实现说明 2.1. 实现步骤 第一步 算法参数设置 第二步 ...

  8. PIE SDK过滤

    1. 算法功能简介 过滤功能使用斑点分组方法来消除分类文件中被隔离的分类像元,用以解决分类图像中出现的孤岛问题. PIE SDK支持算法功能的执行,下面对过滤算法功能进行介绍. 2. 算法功能实现说明 ...

  9. PIE SDK聚类

    1.算法功能简介 聚类处理时运用形态学算子将临近的类似分类区域聚类并合并. PIE SDK支持算法功能的执行,下面对聚类算法功能进行介绍. 2.算法功能实现说明 2.1. 实现步骤 第一步 算法参数设 ...

随机推荐

  1. 实时人流量监测——海康威视sdk初体验

    本文主要是博主使用海康SDK进行人流量统计的摸索过程,在这里简单记录一下. 查询文档,能实现人流量统计大概有两种方式,报警或者监听, 这边我选择了监听方式,NET_DVR_StartListen_V3 ...

  2. Arbitrage POJ - 2240

    题目链接:https://vjudge.net/problem/POJ-2240 思路:判正环,Bellman-ford和SPFA,floyd都可以,有正环就可以套利. 这里用SPFA,就是个板子题吧 ...

  3. LNK1104 无法打开文件“xxx.lib”

    尝试解决方法: 1.找到这个库,把这个库移动到特定的文件夹下,在属性中添加这个库: 具体来说:打开VS项目->项目属性->配置属性->C/C+±>附加包含目录->编辑-& ...

  4. chm帮助文档显示字体过小

    问题描述: 在查看chm帮助文档时,发现默认显示字体过小,阅读吃力 解决方案: 1. 点击选项按钮->Internet 选项 2. 点击辅助功能 3. 选中 忽略网页上指定的字号,点击确定 最后 ...

  5. LG1640 「SCOI2010」连续攻击游戏 二分图最大匹配

    问题描述 LG1640 题解 一开始以为是把\((a,b)\)作为左右部点,发现\(n \le 1000000\),建图是\(O(n^2)\)的,会爆掉 属性值向\(i\)建边. \(\mathrm{ ...

  6. NeuHub图像垃圾分类api和百度图像识别api

    京东 NeuHub图像垃圾分类申请:http://neuhub.jd.com/gwtest/init/242 文档:https://aidoc.jd.com/image/garbageClassifi ...

  7. vue项目的安装与启动

      第一步:安装Node 检测Node是否安装成功 node -v 第二步:安装vue-cli     命令:npm install vue-cli -g 第三步:搭建项目命令 vue init we ...

  8. mpich安装

    1.简介与下载 MPICH是一种高性能的.可广泛移植的实现来自阿尔贡国家实验室的MPI-3.1标准. https://www.mpich.org/downloads/ 2.解压安装 tar xzvf ...

  9. 第02组 Beta冲刺(2/4)

    队名:十一个憨批 组长博客 作业博客 组长黄智 过去两天完成的任务:了解整个游戏的流程 GitHub签入记录 接下来的计划:继续完成游戏 还剩下哪些任务:完成游戏 燃尽图 遇到的困难:没有美术比较好的 ...

  10. AtCoder Grand Contest 036题解

    传送门 爆炸的比较厉害--果然还是菜啊-- \(A\) 我们强制一个点为\((0,0)\),那么设剩下两个点分别为\((a,b),(c,d)\),根据叉积可以计算出面积为\(ad-bc=S\),那么令 ...