• PIE SDK栅格拉伸控制


     

    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%拉伸效果图

     

    (二)标准差拉伸效果

     

  • 相关阅读:
    Go
    Go
    Go
    Go
    Go
    Go
    爬虫常用相关库
    Go
    python基础第7天(day19)
    python基础第五天(day17)元组,集合,字符串操作 字符编码:
  • 原文地址:https://www.cnblogs.com/PIESat/p/10167601.html
Copyright © 2020-2023  润新知