博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PIE SDK栅格拉伸控制
阅读量:5836 次
发布时间:2019-06-18

本文共 1978 字,大约阅读时间需要 6 分钟。

 

1. 功能简介

    在我们的实际应用中,对于一般16bit或者更大比特深度的影像,像元值都是大于255的。这种情况下,RGB的显示器是不能够直接使用像元值进行显示的,需要将像元值换算到0~255的区间内以用于显示。常用的增强方式是通过拉伸来增大栅格显示的视觉对比度,以生成一副更清晰的影像,从而使某些要素变得更容易识别。

    常用的拉伸方式包括标包括最常见的标准差(Standard Deviation),最大最小值( Minimum–Maximum),直方图均衡( Histogram Equalize)等等。对于不同栅格数据情况,应选择最适合其的拉伸方式。

2. 功能实现说明

2.1. 实现思路及原理说明

第一步

获取栅格图层的Render并进行接口转换。

第二步

设置拉伸类型。

第三步

根据拉伸类型进行参数设置。

第四步

触发渲染改变事件,重新绘制。

2.2. 核心接口与方法

接口/类

方法

说明

 

 

Carto. IRasterStretch

StretchType

栅格拉伸类型属性

LinearStretchPercent

拉伸百分比属性

SetMinimumMaximum

设置指定波段拉伸显示的最大值、最小值

2.3. 示例代码

项目路径

百度云盘地址下/PIE示例程序/07图层渲染/11.栅格拉伸控制

数据路径

百度云盘地址下/PIE示例数据/栅格数据/01.GF1/ GF1_PMS1_E116.5_N39.4_20131127_L1A0000117600-MSS1.tif

视频路径

百度云盘地址下/PIE视频教程/07图层渲染/11.栅格拉伸控制.avi

示例代码

1 方法(一)百分比拉伸 2   if (mapControlMain.ActiveView.CurrentLayer == null) return; 3     //获取待拉伸的图层 4     IRasterLayer rasterLayer = mapControlMain.ActiveView.CurrentLayer as IRasterLayer; 5     if (rasterLayer == null) 6         return; 7     //获取拉伸对象 8     IRasterRender render = rasterLayer.Render; 9     IRasterStretch stretch = render as IRasterStretch;10     //设置拉伸类型11     stretch.StretchType = PIE.Carto.RasterStretchType.RasterStretch_PercentMinimumMaximum;12     stretch.LinearStretchPercent = 4.0;13     rasterLayer.RaiseRenderChanged();14     //刷新地图15  mapControlMain.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);16 17 方法(二)标准差拉伸18   if (mapControlMain.ActiveView.CurrentLayer == null)   return;19     //获取待拉伸的图层20     IRasterLayer rasterLayer = mapControlMain.ActiveView.CurrentLayer as IRasterLayer;21     if (rasterLayer == null)  return;22     //获取拉伸对象23     IRasterRender render = rasterLayer.Render;24     IRasterStretch stretch = render as IRasterStretch;25     //设置拉伸类型26     stretch.StretchType = PIE.Carto.RasterStretchType.RasterStretch_StandardDeviations;27     rasterLayer.RaiseRenderChanged();   mapControlMain.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);
View Code

2.4. 示例截图

(一)4%拉伸效果图

 

(二)标准差拉伸效果

 

转载于:https://www.cnblogs.com/PIESat/p/10167601.html

你可能感兴趣的文章
codevs——2822 爱在心中
查看>>
Python基础班---第一部分(基础)---Python基础知识---认识Python
查看>>
JAVA MAC 配置
查看>>
1134 最长上升子序列 (序列型 DP)
查看>>
js冒泡排序
查看>>
第一次作业 4班卢炳武
查看>>
const int * 与 int *const
查看>>
抽象类的调用
查看>>
libjpeg.a exists or that its path is correct
查看>>
使用硬盘,安装双系统,Win7+CentOS
查看>>
Javascript学习总结
查看>>
JS 操作Excel格式
查看>>
php 用正则替换中文字符一系列问题解决
查看>>
ActiveMQ应用笔记一:基本概念&安装
查看>>
SAE+Java+jetty
查看>>
大话数据结构之四(串)
查看>>
加热炉简是新来的整个系统的板
查看>>
Mockito使用注意事项
查看>>
[LeetCode] Palindrome Linked List 回文链表
查看>>
UVA - 825Walking on the Safe Side(dp)
查看>>