正是由于这些优势,再加上当然高光谱技术的成熟,所以对高光谱数据库建立的需求也变得尤为急迫和重要。高光谱数据库的建立,是通过遥感采样,对物质大量波段数的测量,测量数据以一定的格式储存,形成大量的数据文件。这些数据,对独特物质的区分和确定提供了大量的波谱信息。譬如矿物的区分和勘测,农作物和气象的应用等。
1.4 论文的组织结构
本文通过对高光谱相关内容的了解,实现高光谱数据库的设计,自己动手完成一些相关的功能。该软件使用很简单方便,该软件读取的高光谱数据格式是一定格式的txt文件。
本文主要内容包括:
(1)介绍高光谱的基本知识和相关概念。
(2)对本文设计实现的高光谱数据库的设计与实现进行需求分析,并完成系统设计。该软件包括两个大模块:读取特定格式的高光谱图像和高光谱特文件的线性表示。
(3)对该软件实现的详细分析,展示界面效果,给出关键代码,并对其分析。
(4)对工作的总结。
2 相关概念及技术
2.1 高光谱图像基础
通常用波长描述光线和其他形式的电磁辐射。 例如,可见光的波长为0.4和0.7微米之间,而无线电波的波长大于30厘米左右(图2-1)。
图2-1 电磁频谱
反射是指部分光的撞击一种材料而被那种材料反射出去(而不是被吸收或传播)。 一个反射光谱显示了一种材料在一定波长测量范围内的反射率(图2-2)[6]。 一些材料反射特定波长的光,而其他材料会吸收相同的波长的光。 可以通过反射和吸收跨波长光的这些模式来唯一确定某些材料。
图2-2 反射光谱测量实验室光谱仪三种材料:
绿色的海湾月桂叶,矿物滑石,和粉质壤土土壤。
通常利用野外和实验室光谱测量仪测量在很多狭窄封闭的空间的波段的反射率,以至于所产生的光谱出现连续曲线(图2-2)。 当在图像传感器使用分光仪时,所产生的图像可以记录图像中每个像素的反射光谱(图2-3)。
图2-3 高光谱图像的概念。 在图像测量
许多狭窄的连续波段,为每一个完整的频谱像素。
2.2 基于VC++的文件系统操作
同其他文件系统一样,vc对文件系统的操作包括文件的查找、文件的打开/保存对话框、文件的读写、临时文件的使用等,下面一一说明。
1、文件的查找
当对一个文件操作时,如果不知道该文件是否存在,就要首先进行查找。MFC中有一个专门用来进行文件查找的类CFileFind,使用它可以方便快捷地进行文件的查找。
2、文件的打开/保存对话框
让用户选择文件进行打开和存储操作时,就要用到文件打开/保存对话框。MFC的类CFileDialog用于实现这种功能。使用CFileDialog声明一个对象时,第一个BOOL型参数用于指定文件的打开或保存,当为TRUE时将构造一个文件打开对话框,为FALSE时构造一个文件保存对话框。在构造CFileDialog对象时,如果在参数中指定了OFN_ALLOWMULTISELECT风格,则在此对话框中可以进行多选操作。此时要重点注意为此CFileDialog对象的m_ofn.lpstrFile分配一块内存,用于存储多选操作所返回的所有文件路径名,如果不进行分配或分配的内存过小就会导致操作失败。
3、文件的读写
文件读写的最普通的方法是直接使用CFile进行,虽然这种方法最为基本,但是它的使用繁琐,而且功能非常简单。也可以使用CArchive,它的使用方法简单且功能十分强大。首先还是用CFile声明一个对象,然后用这个对象的指针做参数声明一个CArchive对象,你就可以非常方便地存储各种复杂的数据类型了。 典型地物光谱库系统设计与实现(3):http://www.youerw.com/jisuanji/lunwen_6449.html