许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  ArcEngine对影像拉伸显示:遥感图像增强方法

ArcEngine对影像拉伸显示:遥感图像增强方法

阅读数 3
点赞 0
article_banner

最近开始学习ArcEngine对遥感影像处理的方法,对于影像的显示是最基本的。有用过Arcmap的童鞋都会有这样的经验:当一幅影像没有拉伸时其在Arcmap里显示都是一片的灰色,要使其正常显示需要对其拉伸处理,最近在网上也进行相关 信息 的查找,一般都只是针对半波段进行的拉伸,也可以赋予不同的颜色通道,一般单波段通常拉伸到0~255从黑到白,以下是对单波段数据拉伸的代码显示(其他网站上也会找到):


      public IRasterRenderer StretchRenderer_SigleBand(ESRI.ArcGIS.Geodatabase.IRaster raster, esriRasterStretchTypesEnum sketchType)

           {

               try

               {

                   //定义拉伸颜色条

                   IRgbColor pFromColor = new RgbColorClass();


                   pFromColor.Red = 0;

                   pFromColor.Green = 0;

                   pFromColor.Blue = 0;

                   IRgbColor pToColor = new RgbColorClass();



                   pToColor.Red = 255;

                   pToColor.Green = 255;

                   pToColor.Blue = 255;

                   //create the color ramp

                   IAlgorithmicColorRamp pRamp = new AlgorithmicColorRampClass();

                   pRamp. Size = 255;

                   pRamp.FromColor = pFromColor;

                   pRamp.ToColor = pToColor;

                   bool createColorRamp;



                   pRamp.CreateRamp(out createColorRamp);

                   //产生拉伸通道

                   IRasterStretchColorRampRenderer pStrechRenderer = new RasterStretchColorRampRendererClass();

                   IRasterRenderer pRasterRenderer = (IRasterRenderer)pStrechRenderer;



                   //set the renderer properties

                   IRaster pRaster = raster;

                   pRasterRenderer.Raster = pRaster;

                   pRasterRenderer.Update();


                   pStrechRenderer.BandIndex = 0;

                   pStrechRenderer.ColorRamp = pRamp;

                   //set the stretch type

                   IRasterStretch pStretchType = (IRasterStretch)pRasterRenderer;

                   //设置不同的拉伸方法

                   pStretchType.StretchType = sketchType;

                   pStretchType.StandardDeviationsParam = 2;
return pRasterRenderer;



               }

               catch (System.Exception ex)

               {

                   System.Diagnostics.Debug.WriteLine(ex.Message);

                   return null;

               }

           }

实验结果:

拉伸前:


拉伸后:


但遥感也有很多处理多波段的,找了很久,发现使用IRasterRGBRenderer这个接口,以下是具体代码:

//////////////////////////////////////////////////////////////////////////

           public IRasterRenderer StretchRenderer_MultiBand(ESRI.ArcGIS.Geodatabase.IRaster raster, esriRasterStretchTypesEnum sketchType)

           {

               try

               {


                   IRasterRenderer rasterRender = new RasterRGBRendererClass();

                   rasterRender.Raster = raster;

                   IRasterRGBRenderer rasterStretchRender = rasterRender as IRasterRGBRenderer;

                   rasterRender.Update();

                   IRasterStretch2 rasterStretchType = rasterStretchRender as IRasterStretch2;

                   rasterStretchType.StretchType = sketchType;

                   rasterStretchType.StandardDeviationsParam = 2;

                   rasterStretchType.StretchStatsType = esriRasterStretchStatsTypeEnum.esriRasterStretchStats_AreaOfView;

                   return rasterStretchRender as IRasterRenderer;


               }

               catch (System.Exception ex)

               {

                   System.Diagnostics.Debug.WriteLine(ex.Message);

                   return null;

               }

           }

拉伸前:


拉伸后:


结果显示完好。

在这里感谢中国农大的孙家波学长,他给予宝贵的意见和相关代码。希望以后还能各学ArcEngine的学者多多学习,大家提出宝贵意见。


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空