主要内容

dn2reflectance

将数字转换为反射率

描述

例子

newhcube= dn2reflectance (hcube将高光谱数据立方体的像素值从数字数(DN)转换为反射率值。该函数返回一个new超立方体对象和数据立方体的像素值为大气(TOA)反射率值的顶部。有关TOA反射率值的详细信息,请参见从dn计算TOA反射率值

newhcube= dn2reflectance (hcube“BlockSize”,blocksize通过使用名称-值对参数指定用于高光谱数据立方体的块处理的块大小“BlockSize”

该函数将输入图像划分为不同的块,对每个块进行处理,然后将每个块处理后的输出连接起来,形成输出矩阵。高光谱图像是多维数据集,可能太大,无法完全装进系统内存中。方法时,可能导致系统内存不足dn2reflectance函数。如果遇到这样的问题,请使用此语法执行块处理。

例如,dn2reflectance (hcube BlockSize, [50 50])将输入图像分成大小为50 × 50的不重叠块,然后计算每个块中像素的反射率值。

请注意

来执行块处理“BlockSize”名称-值对参数,你必须有MATLAB®R2021a或更高版本。

请注意

此函数需要图像处理工具箱™高光谱成像库.您可以安装图像处理工具箱高光谱成像库从Add-On Explorer。有关安装外接程序的详细信息,请参见获取和管理外接组件

例子

全部折叠

将高光谱数据读入工作空间。

超立方体(“EO1H0440342002212110PY_cropped.hdr”);

方法确定坏的光谱带数BadBands参数。

bandNumber = find(~hcube.Metadata.BadBands);

从数据立方体中去除坏的光谱带。

hcube = removeBands(hcube,“BandNumber”, bandNumber);

将数字数字转换为大气顶部(TOA)反射率。输出数据立方体中的像素值是TOA反射率。

Newhcube = dn2reflectance(hcube);

读取并显示输入和输出反射率数据立方中的第80光谱波段图像。

inputBand = hcube.DataCube;reflectanceBand = newhcube.DataCube;Band = 80;图subplot(1,2,1) imagesc(inputBand(:,:,band)) title(“输入乐队”)轴subplot(1,2,2) imagesc(reflectanceBand(:,:,band))“反射带”)轴colormap灰色的

图中包含2个轴对象。标题为Input Band的坐标轴对象1包含一个图像类型的对象。标题为Reflectance Band的Axes对象2包含一个image类型的对象。

输入参数

全部折叠

输入高光谱数据,指定为超立方体对象。的DataCube的属性超立方体对象存储高光谱数据立方体。的元数据的属性超立方体对象必须包含反射增益值。

数据块的大小,指定为2元素的正整数向量。向量的元素分别对应于每个块中的行数和列数。数据块的大小必须小于输入图像的大小。将高光谱图像划分为更小的块使您可以处理大型数据集,而不会耗尽内存。

  • 如果blocksize值太小,函数的内存使用会减少,但代价是执行时间增加。

  • 如果blocksize值较大或等于输入图像大小,则执行时间减少,代价是增加内存使用。

例子:“BlockSize”,[20]20指定每个数据块的大小为20x20。

输出参数

全部折叠

输出高光谱数据,返回为超立方体对象。输出返回的数据立方体的像素值指定大气(TOA)反射率值的顶部。

更多关于

全部折叠

从dn计算TOA反射率值

给定一个数字(DN), TOA反射率通过使用反射率增益(R获得)和反射率偏移量(R抵消)表示数据立方体中每个光谱波段。

反射 ρ λ D N × R G 一个 n + R O f f 年代 e t

每个光谱波段的反射率增益和反射率偏移值存储在头文件中。

另外,TOA反射率值可以通过以下两步从数字(DN)中估算:

  1. 从数字数(DN)计算辐射值。

    光辉L λ D N × G 一个 n + B 一个 年代

    获得λ而且偏见λ每个光谱波段的增益和偏移值(λ分别)。的元数据的属性超立方体对象包含增益和偏移量值。

  2. 从辐射度值计算TOA反射率值。

    反射 ρ λ π d 2 l λ E 年代 U N λ θ E

    d是地日距离的天文单位,丰德丽λ每个光谱带的平均太阳辐照度,和θE是太阳仰角。

版本历史

R2020b中介绍

Baidu
map