编程实现遥感图像彩色合成

编程实现遥感图像彩色合成

ID:39623520

大小:1.86 MB

页数:7页

时间:2019-07-07

编程实现遥感图像彩色合成_第1页
编程实现遥感图像彩色合成_第2页
编程实现遥感图像彩色合成_第3页
编程实现遥感图像彩色合成_第4页
编程实现遥感图像彩色合成_第5页
资源描述:

《编程实现遥感图像彩色合成》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、编程实现遥感图像彩色合成一、实验目的了解图像彩色合成的分类以及它们的特点,掌握真彩色、假彩色和伪彩色合成的基本原理和具体操作。二、实验要求实现对单波段图像进行伪彩色合成,对多波段图像进行真彩色和伪彩色和合成。三、实验原理1.伪彩色合成:把单波段灰度图像中的不同灰度级按特定的函数关系变换成彩色,然后进行彩色图像显示的方法,可通过密度分割法实现;2.假彩色合成:选择多波段图像中的任意三个波段,分别赋予红、绿、蓝三种原色,在屏幕上合成彩色图像的方法,其中标准假彩色选择的三个波段是近红外、绿、蓝波段;3.真彩色合成:彩色合成中选择的波段的波长与红绿蓝的波长相同或近似,得到的图像的颜色与

2、真彩色近似。四、实验思路获取图像文件信息(读取头文件)根据图像数据组织格式读取其数据将图像原始数据通过拉伸方式映射成对应的DN值将指定波段或单波段的不同区域值赋给图像格式R、G、B三原色,合成图像显示五、实验步骤1.新建项目文件:本实验选用的语言是C#,开发工具是VisualStudio2010,通过“文件—新建—项目—C#—Windows窗体应用程序”,命名“彩色合成”即可;2.编写代码:代码的功能模块,方法可根据实验方法的流程组织,具体如下:(1).编写读取头文件代码:直接导入已有的“.cs”类文件即可;(2).编写读取图像数据代码:直接载入前面实验已有的“.cs”类文件即

3、可;(3).编写灰度拉伸代码:灰度拉伸有很多中这里采用最简单的线性拉伸方式,公式为G=Gmin+(Gmax-Gmin)*(F-Fmin)/(Fmax-Fmin)F、G分别表示原始图像数据和原始图像数据,由于在“绘制直方图”实验中已有该代码,直接载入即可;(4).绘制图像代码:这里我采取的是BMP图像格式来显示图像文件可直接调用C#里的相关方法将字节数据显示为图像,具体代码见后文;3.调试编译:通过VS2010断点等调试工具,可查看、排除程序错误,无语法、逻辑错误后,编译生成程序文件即可;4.运行程序查看结果:运行程序,加载实验数据,进行彩色合成,然后再通过ENVI的RGB显示方

4、式,显示图像,对比看是否准确;一、结果与分析1.结果(1)、真彩色合成彩色合成图像灰度图像与上图对比(2).假彩色合成4R、3G、2B假彩色合成2.总结分析(1).真彩色合成图像,颜色接近自然色,容易识别地物;(2).标准假彩色合成可以凸显植被(红色)、水体(黑色或蓝色)、城镇(深色)等信息。一、源代码1.获取灰度图像/// 

    /// 使用byte[]数据,生成256色灰度 BMP 位图    ///     ///     /// 

5、="originalWidth">    ///     ///     public static Bitmap CreateBitmap(byte[] originalImageData, int originalWidth, int originalHeight)    {        //指定8位格式,即256色        Bitmap resultBitmap = new Bitmap(originalWidth, originalHe

6、ight, System.Drawing.Imaging.PixelFormat.Format8bppIndexed);        //将该位图存入内存中        MemoryStream curImageStream = new MemoryStream();        resultBitmap.Save(curImageStream, System.Drawing.Imaging.ImageFormat.Bmp);        curImageStream.Flush();        //由于位图数据需要DWORD对齐(4byte倍数),计算需要补位的个

7、数        int curPadNum = ((originalWidth * 8 + 31) / 32 * 4) - originalWidth;        //最终生成的位图数据大小        int bitmapDataSize = ((originalWidth * 8 + 31) / 32 * 4) * originalHeight;        //数据部分相对文件开始偏移,具体可以参考位图文件格式        int dataOffset = ReadData

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。