PIE SDK彩色空间变换

1. 算法功能简介

使用彩色空间变换工具可以将三波段红、绿、蓝图像变换到一个特定的彩色空间,并且能从所选彩色空间变换回 RGB。两次变换之间,通过对比度拉伸,可以生成一个色彩增强的彩色合成图像。此外,颜色亮度值波段或亮度波段可以被另一个波段(通常具有较高的空间分辨率)代替,生成一幅合成图像(将一幅图像的色彩特征与另一幅图像的空间特征相结合)。

彩色变换的一般工作流程:选择波段进行 RGB 合成显示→进行彩色变换→进行其他的图像处理→进行彩色逆变换→RGB 合成显示。

PIE SDK支持算法功能的执行,下面对彩色空间变换算法功能进行介绍。

2.算法功能实现说明

2.1. 实现步骤


第一步


算法参数设置


第二步


算法执行


第三步


结果显示

2.2. 算法参数


算法名称


彩色空间正变换


C#算法DLL


PIE.CommonAlgo.dll


C#算法名称


PIE.CommonAlgo.TransformRGB2IHSAlgo


参数结构体


RGBTrans_Exchange_Info


参数说明


m_strInputFile


String


输入文件

(*.tif;*.tiff;*.bmp;*.img;*.jpg;*.ldf)


m_strOutputFile


String


输出文件

(*.tif;*.tiff; *.img)


m_strFileTypeCode


String


输出文件类型,默认GTiff

.tif/.tiff——GTiff

.img—————HFA

其他—————ENVI


m_vecBandIndex


IList<Int>


通道设置


m_vecBandOutIndex


IList<Int>


输出影像波段向量

2.3. 示例代码


项目路径


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


数据路径


百度云盘地址下/PIE示例数据/栅格数据/World/ World.tif

TransformRGB2IHS.tif


视频路径


百度云盘地址下/PIE视频教程/10.算法调用/图像处理/彩色空间变换算法avi


示例代码


 1         //(一) 彩色空间正变换
 2        /// <summary>
 3         /// 彩色空间正变换算法测试,本算法实现了将World.tif进行彩色空间正变换
 4         /// </summary>
 5         public override void OnClick()
 6         {
 7             #region 1、参数设置
 8             PIE.CommonAlgo.RGBTrans_Exchange_Info info = new PIE.CommonAlgo.RGBTrans_Exchange_Info();
 9
10             info.m_strInputFile = @"D:\Data\World.tif";
11             info.m_strOutputFile = @"D:\Data\ TransformRGB2IHS.tif ";
12             info.m_strFileTypeCode="GTiff";
13             info.m_vecBandIndex = new List<int> { 1,2,3 };
14             info.m_vecBandOutIndex = new List<int> { 0,1,2 };
15
16             PIE.SystemAlgo.ISystemAlgo algo = PIE.SystemAlgo.AlgoFactory.Instance().CreateAlgo("PIE.CommonAlgo.dll", "PIE.CommonAlgo.TransformRGB2IHSAlgo"); //正变换
17             //PIE.SystemAlgo.ISystemAlgo algo = PIE.SystemAlgo.AlgoFactory.Instance().CreateAlgo("PIE.CommonAlgo.dll", "PIE.CommonAlgo.TransformIHS2RGBAlgo"); //逆变换
18             if (algo == null) return;
19             #endregion
20
21             //2、算法执行
22             PIE.SystemAlgo.ISystemAlgoEvents algoEvents = algo as PIE.SystemAlgo.ISystemAlgoEvents;
23             algo.Name = " 彩色空间正变换";
24             algo.Params = info;
25             bool result = PIE.SystemAlgo.AlgoFactory.Instance().ExecuteAlgo(algo);
26
27             //3、结果显示
28             ILayer layer = PIE.Carto.LayerFactory.CreateDefaultLayer(strOutputFile);
29             m_HookHelper.ActiveView.FocusMap.AddLayer(layer);
30             m_HookHelper.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);
31
32         }
33         //(二) 彩色空间逆变换
34         /// <summary>
35         /// 彩色空间逆变换算法测试,本算法实现了将World.tif进行彩色空间逆变换
36         /// </summary>
37         public override void OnClick()
38         {
39             #region 1、参数设置
40             PIE.CommonAlgo.RGBTrans_Exchange_Info info = new PIE.CommonAlgo.RGBTrans_Exchange_Info();
41
42             //info.m_strInputFile = @"D:\Data\World.tif"; //正变换
43             info.m_strInputFile = @"D:\Data\ TransformRGB2IHS.tif"; //正变换
44             info.m_strOutputFile = @"D:\Data\ip_result20.tif";
45             info.m_strFileTypeCode="GTiff";
46             info.m_vecBandIndex = new List<int> { 1,2,3 };
47             info.m_vecBandOutIndex = new List<int> { 0,1,2 };
48
49             //PIE.SystemAlgo.ISystemAlgo algo = PIE.SystemAlgo.AlgoFactory.Instance().CreateAlgo("PIE.CommonAlgo.dll", "PIE.CommonAlgo.TransformRGB2IHSAlgo"); //正变换
50             PIE.SystemAlgo.ISystemAlgo algo = PIE.SystemAlgo.AlgoFactory.Instance().CreateAlgo("PIE.CommonAlgo.dll", "PIE.CommonAlgo.TransformIHS2RGBAlgo"); //逆变换
51             if (algo == null) return;
52             #endregion
53
54             //2、算法执行
55             PIE.SystemAlgo.ISystemAlgoEvents algoEvents = algo as PIE.SystemAlgo.ISystemAlgoEvents;
56             algo.Name = " 彩色空间逆变换";
57             algo.Params = info;
58             bool result = PIE.SystemAlgo.AlgoFactory.Instance().ExecuteAlgo(algo);
59
60             //3、结果显示
61             ILayer layer = PIE.Carto.LayerFactory.CreateDefaultLayer(info.m_strOutputFile);
62             m_HookHelper.ActiveView.FocusMap.AddLayer(layer);            m_HookHelper.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);
63         }

2.4. 示例截图

彩色空间正变换

彩色空间逆变换

原文地址:https://www.cnblogs.com/PIESat/p/10213285.html

时间: 2024-11-09 00:12:23

PIE SDK彩色空间变换的相关文章

PIE SDK主成分变换

1.算法功能简介   主成分变换(Principal Component Analysis,PCA)又称K-L(Karhunen-Loeve)变换或霍特林(Hotelling)变换,是基于变量之间的相关关系,在尽量不丢失信息前提下的一种线性变换的方法,主要用于数据压缩和信息增强. 主成分正变换,一般意义的K-L变换就是指正变换,该过程通过对图像进行统计,在波段协方差矩阵的基础上计算特征值,构造主成分.根据主成分与特征值的关系,可以选择少数的主成分作为输出结果. 主成分逆变换,如果在正变换中选择的

PIE SDK Command&amp;&amp;Tool工具命令一览表

PIE SDK Command&&Tool工具命令一览表 编号 模板 名称(中文) Command&Tool 程序集 备注 1 数据管理 加载栅格数据 PIE.Controls.RasterCommand PIE.Controls.dll 2 加载矢量数据 PIE.Controls.VectorCommand 3 加载科学数据集数据 PIE.Controls.ScientificDatasetCommand 4 加载环境数据 PIE.Controls.LoadHJDataComma

PIE SDK傅里叶变换

1.算法功能简介 傅里叶变换能把遥感图像从空域变换到只包含不同频域信息的频域中.原图像上的灰度突变部位(如物体边缘).图像结构复杂的区域.图像细节及干扰噪声等,经傅里叶变换后,其信息大多集中在高频区:而原图像上灰度变化平缓的部位,如植被比较一致的平原.沙漠和海面等,经傅里叶变换后,大多集中在频率域中的低频区.在频率域平面中,低频区位于中心部位,而高频区位于低频区的外围,即边缘部位. 傅里叶变换是可逆的,即对图像进行傅里叶变换后得到的频率函数再做反向傅里叶变换,又可以得到原来的图像.从纯粹的数学意

PIE SDK同态滤波

1.算法功能简介 同态滤波是减少低频增加高频,从而减少光照变化并锐化边缘或细节的图像滤波方法. 同态滤波的流程为:空间域图像→对数运算→傅里叶正变换→同态滤波――傅里叶逆变换→指数运算→同态滤波结果.不同空间分辨率的遥感图像,使用同态滤波的效果不同.如果图像中的光照可以认为是均匀的,那么,进行同态滤波产生的效果不大.但是,如果光照明显是不均匀的,那么同态滤波有助于表现出图像中暗处的细节. PIE SDK支持算法功能的执行,下面对同态滤波算法功能进行介绍. 2.算法功能实现说明 2.1. 实现步骤

PIE SDK灾前灾后对比

灾前灾后对比功能是GIS软件中常用的功能之一,指利用多时相获取的覆盖同一地表区域的遥感影像及其它辅助数据来确定和分析地表变化.它利用计算机图像处理系统,对不同时段目标或现象状态的变化进行识别.分析:它能确定一定时间间隔内地物或现象的变化,并提供地物的空间分布及其变化的定性与定量信息.现在呢,具体介绍下基于我们PIE SDK是如何实现这基本工具灾前灾后对比功能的基本实现. [在前灾后功能界面图] 要实现灾前灾后对比功能主要就是通过两个mapControl控件,灾前地图控件是mapControl_l

PIE SDK组件式开发综合运用示例

1. 功能概述 关于PIE SDK的功能开发,在我们的博客上已经分门别类的进行了展示,点击PIESat博客就可以访问,为了初学者入门,本章节将对从PIE SDK组件式二次开发如何搭建界面.如何综合开发进行详细的讲解. 2. 功能实现 2.1.界面搭建 最终的界面如下图所示: 图1最终结果图 2.1.1 新建项目 选择“Window窗体应用程序”,设置程序的名称和保存路径即可.(新建完成后可以将程序的窗体名称右键重命名为“FormMain”,,将窗体界面的属性的Text设置名称为“PIE应用程序”

PIE SDK与GeoServer结合说明文档

1.  GeoServer简介 GeoServer是OpenGIS Web服务器规范的J2EE实现的社区开源项目,利用GeoServer可以方便的发布地图数据,允许用户对特征数据进行更新.删除.插入操作,通过GeoServer可以容易的在用户之间迅速共享空间地理信息.它能兼容WMS和 WFS 特性:支持 PostGIS.Shapefile.ArcSDE.Oracle.VPF.MySQL.MapInfo:支持上百种投影:能够将网络地图输出为 jpeg.gif.png.SVG.KML等格式:支持AJ

不同分割方法应用的彩色空间

人类的眼睛能识别上千种颜色和强度但是只能识别two-dozen(24?)种灰度,经常利用灰度提取不到目标但是用颜色却能提取,所以颜色在模式识别和计算机视觉中有着很重要的作用.但是应用在彩色图像上的分割方法不如在灰度图像上的分割方法多.现在来说应用在彩色图像上的分割方法一般如下所示: Fig. 4. Commonly used color image segmentation approaches. 彩色图像可以看作一种特殊的多光谱图像,任何可以用在分割多光谱图像上的分割方法都可以用来分割彩色图像

OpenGL中的空间变换

OpenGL中的空间变换 在使用OpenGL的三维虚拟程序中,当我们指定了模型的顶点之后,在屏幕上显示它们之前,一共会发生3种类型的变换:视图变换.模型变换.投影变换. 视图变换:指定观察者(摄像机)的位置: 模型变换:在场景中移动物体: 投影变换:改变可视区域的大小: 视口变换:这是一种伪变换,它对窗口上的最终输出进行缩放. 视觉坐标 它表示一种虚拟的固定坐标系统,通常作为一种参考系使用.它是根据观察者(摄像机)的角度而言的,与可能发生的变换无关.我们接下来所讨论的所有变换都是根据它们相对于视