主要内容

dn2radiance

将数字转换为亮度

描述

例子

newhcube= dn2radiance (hcube将高光谱数据立方体的像素值从数字转换为亮度值。函数返回一个new超立方体对象和数据立方体的像素值是大气(TOA)辐射的顶部。

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

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

例如,dn2radiance (hcube BlockSize, [50 50])将输入图像划分为大小为50x50、互不重叠的块,然后计算每个块中像素的亮度值。

请注意

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

请注意

此函数需要图像处理工具箱™高光谱成像库.您可以安装图像处理工具箱高光谱成像库从附加的探险家。有关安装插件的更多信息,请参见获取和管理插件

例子

全部折叠

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

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

确定坏的光谱带号使用BadBands参数。

bandNumber =找到(~ hcube.Metadata.BadBands);

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

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

方法计算亮度值dn2radiance函数。

newhcube = dn2radiance (hcube);

读取和显示输入和输出亮度数据中的光谱波段图像。

inputBand = hcube.DataCube;radianceBand = newhcube.DataCube;乐队= 80;图subplot(1,2,1) imagesc(inputBand(:,:,band))“输入乐队”)轴次要情节(1、2、2)显示亮度图像(radianceBand(:,:,乐队))标题(“光辉乐队”)轴colormap灰色的

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

输入参数

全部折叠

输入高光谱数据,指定为a超立方体对象。的DataCube财产的超立方体对象存储高光谱数据立方体。若要将数字中的像素值转换为亮度值,则元数据财产的超立方体对象必须包含获得而且抵消字段。

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

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

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

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

输出参数

全部折叠

输出高光谱数据,返回为超立方体对象。输出数据立方体的像素值是指定来自被成像表面的辐射量的辐射度。亮度值由数字计算,公式如下:

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

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

版本历史

介绍了R2020b

Baidu
map