PIE SDK主成分变换
1.算法功能简介
主成分变换(Principal Component Analysis,PCA)又称K-L(Karhunen-Loeve)变换或霍特林(Hotelling)变换,是基于变量之间的相关关系,在尽量不丢失信息前提下的一种线性变换的方法,主要用于数据压缩和信息增强。
主成分正变换,一般意义的K-L变换就是指正变换,该过程通过对图像进行统计,在波段协方差矩阵的基础上计算特征值,构造主成分。根据主成分与特征值的关系,可以选择少数的主成分作为输出结果。
主成分逆变换,如果在正变换中选择的主成分数目与波段/变量数目相同,那么逆变换结果将完全等同于原始影像。如果选择的主成分数目少于波段数逆变换结果相当于压抑了图像中的噪声。受选择的主成分数目的影响,逆变换结果图像的各个“波段”与原始图像波段可能会有较大的差异而不再具有原始图像波段的物理意义。
PIESDK提供了正变换和逆变换的算法,只需要设置对应的参数条件就可以执行,下面介绍下两种算法使用方法。
下面的示例代码需要安装DevExpress三方界面库
2.算法功能实现说明
2.1. 实现步骤
|
第一步 |
算法参数设置 |
|
第二步 |
算法执行 |
|
第三步 |
结果显示 |
2.2. 算法参数
|
算法名称 |
主成分正变换 |
|
|
C#算法DLL |
PIE.CommonAlgo.dll |
|
|
C#算法名称 |
PIE.CommonAlgo.TransformForwardPCAAlgo |
|
|
参数结构体 |
ForwardPCA_Exchange_Info |
|
|
参数说明 |
||
|
m_strInputFile |
String |
输入文件 |
|
m_strOutputResultFile |
String |
输出影像路径 |
|
m_strOutputStatsFile |
String |
输出统计文件 |
|
m_strFileTypeCode |
String |
输出文件类型 |
|
m_nPCBands |
int |
输出波段数量 |
|
m_nOutDataType |
int |
输出文件类型 0、字节型(8位); 1、无符号整形(16位); 2、整形(16位); 3、无符号长整形(32位); 4、长整形(32位); 5、浮点型(32位); 6、双精度浮点型(64位) |
|
m_eigenvalues |
IList<string> |
特征值 -返回 |
|
m_bPCBandsFromEigenvalus |
bool |
根据特征值排序选择PCA波段 |
|
m_bOutputLikeEnvi |
bool |
零均值处理 |
|
m_bCovariance |
bool |
统计使用矩阵 -true- 使用协方差矩阵 -false- 使用相关系数矩阵 |
|
m_accumulate_contribute |
IList<string> |
百分比 -返回 |
|
算法名称 |
主成分逆变换 |
|
|
C#算法DLL |
PIE.CommonAlgo.dll |
|
|
C#算法名称 |
PIE.CommonAlgo.TransformInversePCAAlgo |
|
|
参数结构体 |
InversePCA_Exchange_Info |
|
|
参数说明 |
||
|
m_m_nOutDataType |
int |
输出文件字节类型 0、字节型(8位); 1、无符号整形(16位); 2、整形(16位); 3、无符号长整形(32位); 4、长整形(32位); 5、浮点型(32位); 6、双精度浮点型(64位) |
|
m_strFileTypeCode |
String |
输出文件格式 |
|
m_strInputPcaFile |
String |
输入PCA结果文件 |
|
m_strInputStatsFile |
String |
输入PCA结果统计文件 |
|
m_strOutputResultFile |
String |
输出文件路径 |
2.3. 示例代码
|
项目路径 |
百度云盘地址下/PIE示例程序/10.算法调用/图像处理/ImageTransform |
|
数据路径 |
百度云盘地址下/PIE示例数据/栅格数据/04.World/World.tif |
|
视频路径 |
百度云盘地址下/PIE视频教程/10.算法调用/图像处理/主成分变换.avi |
|
示例代码 |
|
/// <summary> |
|
2.4. 示例截图

图一、主成分正变换

图二:主成分逆变换
PIE SDK主成分变换的更多相关文章
- PIE SDK最小噪声变换
1.算法功能简介 最小噪声分离变换是用于判定图像数据内在的维数(即波段数),分离数据中的噪声,减少随后处理中的计算需求量. MNF 本质上是两次层叠的主成分变换.第一次变换(基于估计的噪声协方差矩阵) ...
- 图像处理中的数学原理具体解释20——主成分变换(PCA)
欢迎关注我的博客专栏"图像处理中的数学原理具体解释" 全文文件夹请见 图像处理中的数学原理具体解释(总纲) http://blog.csdn.net/baimafujinji/ar ...
- PIE SDK主/次要分析
1.算法功能简介 主要分析功能是采用类似卷积滤波的方法将较大类别中的虚假像元归到该类中,首先定义一个变换核尺寸,然后用变换核中占主要地位(像元最多)类别数代替中心像元的类别数,次要分析相反,用变换核中 ...
- PIE SDK彩色空间变换
1. 算法功能简介 使用彩色空间变换工具可以将三波段红.绿.蓝图像变换到一个特定的彩色空间,并且能从所选彩色空间变换回 RGB.两次变换之间,通过对比度拉伸,可以生成一个色彩增强的彩色合成图像.此外, ...
- PIE SDK缨帽变换
1.算法功能简介 缨帽变换是根据多光谱遥感中土壤.植被等信息在多维光谱空间中信息分布结构对图像做的经验性线性正交变换. PIE 支持对 Landsat MSS. Landsat 5 TM.Landsa ...
- PIE SDK傅里叶变换
1.算法功能简介 傅里叶变换能把遥感图像从空域变换到只包含不同频域信息的频域中.原图像上的灰度突变部位(如物体边缘).图像结构复杂的区域.图像细节及干扰噪声等,经傅里叶变换后,其信息大多集中在高频区: ...
- PIE SDK小波变换
1.算法功能简介 小波变换是一种信号的时间——尺度分析方法,具有多分辨率分析的特点,而且在时频两域都具有表征信号局部特征的能力,是一种窗口大小固定不变但其形状可变,时间窗和频率窗都可变的时频局部化分析 ...
- PIE SDK PCA融合
1.算法功能简介 PCA 融合分三步实现,首先将多光谱数据进行主成分变换,然后用高分辨单波段替换第一主成分波段,最后进行主成份逆变换得到融合图像. PIE支持算法功能的执行,下面对PCA融合算法功能进 ...
- PIE SDK Command&&Tool工具命令一览表
PIE SDK Command&&Tool工具命令一览表 编号 模板 名称(中文) Command&Tool 程序集 备注 1 数据管理 加载栅格数据 PIE.Controls ...
随机推荐
- 使用rider做为unity的代码编辑器
使用Rider做的编写Unity代码的IDE,记录一些与VS不相同的笔记 安装和设置方法: 我使用Rider 2019.1 + Unity3D 2018.3.4,在安装完Rider之后,在Unity中 ...
- 3-剑指Offer: 连续子数组的最大和
题目描述 HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学.今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决.但是,如果向量 ...
- 使用IDEA创建Maven项目和Maven使用入门(配图详解)
本文详解的讲解了使用IDEA创建Maven项目,及Maven的基础入门. 1.打开IDEA,右上角选择File->New->Project 2.如图中所示选择Maven(可按自己所需添加, ...
- ASP.NET开发实战——(二)为什么使用ASP.NET
本文主要内容是通过分析<博客系统>需求,确定使用Web应用的形式来开发,然后介绍了HTML.HTTP的概念,并使用IIS搭建了一个静态的HTML“页面”,从而引出“动态”的ASP.NET. ...
- machine_math
1.导数与函数的凹凸性关系: 从下往上看,如果函数是凸出来的就是凸函数,如果是凹的就是凹函数. 函数的凹凸性是二阶函数来判断的. 如果二阶函数大于零,那么就是凸函数,否则就是凹函数. 2.一阶导数为零 ...
- [LeetCode] 6. ZigZag Conversion 之字型转换字符串
The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like ...
- 推荐:python科学计算pandas/python画图库matplotlib【转】
机器学习基础3--python科学计算pandas(上) 地址:https://wangyeming.github.io/2018/09/04/marchine-learning-base-panda ...
- java while 循环
public class Sample { public static void main(String[] args) { ; ) { System.out.print(num + " & ...
- 热情组——项目冲刺 Day7
项目相关 作业相关 具体描述 班级 班级链接 作业要求 链接地址 团队名称 热情组 作业目标 实现软件制作,以及在福大的传播 Github链接 链接地址 SCRUM部分: 成员昵称 昨日目标 开始时间 ...
- CPU、内存、磁盘的瓶颈(转载文)
1.如何判断CPU.内存.磁盘的瓶颈? CPU瓶颈1) 查看CPU利用率.建议CPU指标如下 a) User Time:65%-70% b) System Time:30%-35% c) Idle:0 ...