17.9. 习题¶
本节介绍了通常在遥感中进行调试的OTB 应用程序的使用,从图像预处理到信息检索。
下面的每个部分都将介绍用于执行公共卫星图像处理操作的工具。在第一部分中,将介绍各种基本工具。 第二部分将介绍从原始遥感图像生成可在空间环境中使用的数据所需的一些预处理工具。 第三部分将介绍一些OTB 应用程序,用于从前处理沉积图像中提取信息。 最后,将展示专门用于机器学习的应用程序。
17.9.1. 基本工具¶
专用于图像处理的软件可以与“黑匣子”进行比较,这意味着所实现的流程并不详细。 例如,实现图像采样的流程经常出现这种情况, 这在地理空间应用程序中至关重要:重新采样方法通常是隐藏的,用户无法更改它。 OTB 的神奇之处在于每个流程都可以被视为几个透明的基本处理块。 因此,许多OTB 应用程序专用于基本操作。
遥感图像处理需要基本但必不可少的功能,例如:
extract a region of interest (ROI) from an image;
extract image channels;
stack images (e.g. to build a time series stack);
resample an image (e.g. to give it the same origin and spatial resolution as a reference image);
perform pixel-wise mathematical operations;
filter an image (e.g. convolution, or morphological operations).
本部分介绍了一些OTB 应用程序,使我们能够执行这些基本操作。
提取图像ROI¶
ExtractRIOR 应用程序提取输入图像的区域(图5.8显示了感兴趣区)。 提取的区域由原点和大小指定(像素坐标:列、行)。 如果输入图像是多光谱的,也可以仅提取指定的通道。

图5.8.感兴趣区域用其原点(startx,starty)和像素坐标中的大小(sizex,sizey)来定义。 有关该图的彩色版本,请参阅www.iste.co.uk/baghdadi/qgis1.zip
或者,可以根据参考图像的空间范围指定感兴趣区。在这种情况下,无需定义区域, 该区域将根据参考图像自动估计。该选项对于限制另一图像覆盖的地理区域上的图像范围特别有用。
在表5.5所示的示例中,应用程序将在图形界面模式下使用,以简化与OTB 应用程序的首次交互。
步骤说明
启动应用程序
打开文件资源管理器并运行 otbgui_ExtractRIO
(图5.9)。

图5.9.文件资源管理器
图形用户界面出现在新窗口中(图5.10)。

图5.10.图形用户界面
选择输入图像
编辑“Input Image”字段或单击 … 按钮通过对话框选择文件(图5.11)。 选择"ROI_1_Bundle_Ortho_GSD2015"多光谱图像。

图5.11.输入图像选择对话框
设置参数
必须以像素坐标定义感兴趣区的原点和大小。
编辑以下字段:
开始X
开始Y
大小X
大小Y
所有参数均在“文档”选项卡中描述(图5.12)。

图5.12.文档选项卡
选择输出图像
编辑“Output Image”字段或单击 … 按钮通过对话框选择文件。
设置“.tif”文件名扩展名,该扩展名对应于GeoTIFF图像格式。 在下面的练习中,我们将使用此格式进行输出。
执行
一旦设置了强制参数,状态就会从“Selectparameters”更改为“ready to run”。 使用 Execute 按钮运行该流程。进度条允许用户跟踪执行并状态更改为“Running”(图5.13)。

图5.13.进度条
表5.5.通过图形用户界面使用应用程序
重新采样图像¶
有多种重新分配方法,通常适合特定的上下文。以下是两个例子:
Digital elevation models ( DEM s): working on these data sometimes involves calculating derivatives or even second derivatives. To perform computations from the slope of the terrain, a bicubic interpolation will be favored in order to limit the artifacts.
Labels (classes, binary masks, etc.): They require a nearest neighbor interpolation in order to preserve the exact value of the pixels.
处理时间根据所选择的插值而异。最近邻插值比线性插值更快。 由于用于内插单个像素的边界大小,双三次插值是最慢的。
基本工具(图像堆栈、栅格计算器等)当输入图像的大小和分辨率不相同时, 软件中包含的图像会隐式地选择预设。在某些情况下,插值的选择不适合上下文,并且用户不知道。
在OTB 中,叠加 应用程序允许用户以与参考图像相同的大小和分辨率对图像进行重新采样。 可以选择插值类型:最近邻插值、线性插值或双三次插值。 对于双三次插值器的情况下,可以改变其半径(默认情况下,这是两个像素), 这对于平滑生成的图像有用:例如,在要重新采样的图像的像素尺寸比参考图像小的情况下, 以避免混叠(图5.14)。

图5.14.重新分配导致的混叠(来源:维基百科)
在下面的示例中,该应用程序将在图形界面模式下使用以简化交互。
步骤说明
启动应用程序 Run otbgui_Superimpress
(图5.15)。

图5.15.叠加应用程序
选择输入参考图像选择输入参考图片。
设置之前使用ExtractRIO应用程序生成的图像。

选择要重新采样的输入图像选择要重新采样的输入图像(“要重新投影的图像”)。 使用“ROI_2_XS_Ortho_GSD2016”图像。

选择插值
选择插值方法。设置最近邻插值。
了解其他参数将其他参数保留为默认值。
Elevation management is used for non-orthorectified images. This parameter group is used to indicate paths to digital terrain models and geoid files.
“Spacing of the deformation field” allows us to change the size of the resampling grid (in map units).
“Mode” allows alternative processing modes, such as the use of a reference image to resample the input image over its extent with the same pixel spacing.
选择输出图像
选择输出图像的文件名。
执行
使用 执行 按钮运行该过程。
分析
将图像(包括输入、参考和输出)导入QGIS,并检查参考和输出的原点、大小和间距是否相同。
表5.6.使用叠加应用程序重新采样图像
连锁图像¶
有时,使用多通道图像而不是使用每个描述一个通道的多个图像会很方便。 ConcatenateImages 应用程序将图像列表作为输入,并将它们连接起来以产生单个多通道图像输出。 但是,输入图像必须具有相同的大小。
在下面的示例中,该应用程序将在窗口模式下使用,以便您可以熟悉输入图像列表的使用。
步骤说明
启动应用程序运行 otbgui_ConcatenateImages
(图5.16)。

图5.16. ConcatenateImages应用程序
选择输入图像通过填写“输入图像列表”选择要连接的图像。
要将图像添加到列表中,请指定其路径,选择它,然后单击“添加”。 要删除它,请选择它,然后单击“删除”。
通过单击“Erase”可以擦除整个输入图像列表(图5.17)。
选择在之前的练习中生成的两个图像(ExtractROI输出图像和叠加输出图像)。 如果这些步骤执行正确,则两个图像应该具有相同的原点、像素大小以及行和列数。

图5.17.处理输入图像列表的按钮
更改输入图像顺序
使用“向上”和“向下”按钮更改输入图像的顺序。它们允许用户移动输入图像。 输出图像通道与输入图像的顺序相同。
选择输出图像
选择输出图像的文件名。
执行
使用 执行 按钮运行该过程。
分析
在QGIS中导入新创建的图像。
检查通道数是否等于所有输入图像的通道数之和。
更改渲染风格以可视化通道并检查其在堆栈中的顺序。
表5.7.使用“ConcatenateImages”应用程序连接图像
像素式算术运算¶
遥感图像处理通常需要对图像的像素应用统计函数。
BandMath OTB 应用程序允许用户对一个或多个图像执行此操作。 所有输入图像必须具有相同的起源、相同的像素大小以及相同的行和列数。 用于计算输出图像的数学表达是应用程序的参数,类型为“字符串”。此公式的语法基于muParser库, 该库允许您解释各种算术运算(逻辑等)。 BandMath 的输入公式的语法提供的可能性在5.3.1.5节中描述。
输入变量(图像像素)可以通过以下语法按图像和每个通道访问:imXbY, 其中X是图像处理器,Y是通道号。以下是一些示例,说明了识别图像和频段(频道)的原则:
im1b1: Image 1, channel 1;
im1b2: Image 1, channel 2;
im4b3: Image 4, channel 3.
图像的顺序与输入列表中的显示顺序相同。
可用的数学函数如表5.8所示。
Name |
Number of arguments |
Description |
---|---|---|
Sin |
1 |
sine function |
cos |
1 |
cosine function |
tan |
1 |
tangens function |
asin |
1 |
arcus sine function |
acos |
1 |
arcus cosine function |
atan |
1 |
arcus tangens function |
sinh |
1 |
hyperbolic sine function |
cosh |
1 |
hyperbolic cosine |
tanh |
1 |
hyperbolic tangens function |
asinh |
1 |
hyperbolic arcus sine function |
acosh |
1 |
hyperbolic arcus tangens function |
atanh |
1 |
hyperbolic arcus tangens function |
log2 |
1 |
binary logarithm |
log10 |
1 |
base 10 logarithm |
log |
1 |
logarithm to base e (2.71828...) |
ln |
1 |
logarithm to base e (2.71828...) |
exp |
1 |
e raised to the power of x |
sqrt |
1 |
square root of a value |
sign |
1 |
sign function –1 if x<0; 1 if x>0 |
rint |
1 |
round to nearest integer |
abs |
1 |
absolute value |
min |
var. |
min of all arguments |
max |
var. |
max of all arguments |
sum |
var. |
sum of all arguments |
avg |
var. |
mean value of all arguments |
表5.8.算术运算符
可用的二元运算符如表5.9所示。
Operator |
Description |
Priority |
---|---|---|
= |
Assignment |
-1 |
&& |
Logical and |
1 |
|| |
Logical or |
2 |
<= |
Less than or equal to |
4 |
>= |
Greater than or equal to |
4 |
!= |
Not equal to |
4 |
== |
Equal to |
4 |
> |
Greater than |
4 |
< |
Less than |
4 |
Addition |
5 |
|
– |
Subtraction |
5 |
* |
Multiplication |
6 |
/ |
Division |
6 |
^ |
Raise x to the power of y |
7 |
表5.9.二元操作符
分配操作符很特殊,因为它会改变其中一个参数,并且只能应用于变量。
muParser还内置对三进制操作符“if thenelse”的支持:
[condition] ? [operation if condition is true] : [operation else]
例如:
im1b1 !=0 ? im2b1/im1b1 : 0
(if im 1b 1与0不同,则计算im 2b 1/im 1b 1,否则返回0)
还有一个类似于 BandMath 的应用程序,提供了扩展的可能性。 另一个应用程序名为 BandMathX,基于muParserX语法,这是muParser的一个更高级版本, 允许您处理数据数组(载体、矩阵)。我们将在本章的后面讨论这个问题。
在表5.10所示的示例中,BandMath 应用程序将在图形模式下使用。 两个图像将用作输入,以便相对于不同输入图像通道的引用操纵语法。
步骤
指令
启动应用程序
执行otbgui_BandMath(图5.18):

图5.18. BandMath应用程序
选择输入图像
通过填写“输入图像列表”选择输入图像。
选择之前的练习中最后生成的两个图像(来自ExtractROI的输出图像和来自Superimate的输出图像)。 与ConcatenateImage应用程序一样,BandMath需要具有相同起源、大小和像素间隔的图像。
设置表达式
输入"muParser"公式来计算两个输入图像之间归一化差异植被指数(NDVI)的变化。
请注意,将NDVI与图像光谱带联系起来的表达是:(NIR-Red)/(NIR + Red), 其中NIR是近红外,Red是可见光域中的红色。
如果输入图像是SPOT-6多光谱4频段,则其中的波段和NIR波段的指数分别为4和1。
因此,可以生成两个图像之间的NDVI差的公式如下:

注:有关muParser语法的帮助可以从“文档”选项卡中获取。
选择输出图像
选择输出图像的文件名。
注意:输出值将是实值数字,介于-2.0和+2.0之间(NSX介于-1.0和1.0之间)。 因此,必须保留像素类型“float”或“double”,以保留计算值的小数点。
执行
使用“执行”按钮运行该过程。
分析
将生成的图像导入QGIS。
为了验证获得的结果,可以执行以下操作:
1)计算图像1上的NDVI;
2)计算图像2上的NDVI;
3)两个结果的减法;
4)与BandMath输出进行比较。
对两个参赛者的自然颜色成分进行照片解释可以帮助了解土地利用变化对诺和诺德指数的影响。
创建地图生成通过用-0.3值对NSX差进行阈值化而产生的二进制图像(对应于两个图像之间植被指数的减少)。
为了实现这一目标,可以直接将诺和诺德差异的表达与-0.3进行比较。
另一种方法是通过输入以下公式来对诺和诺德差异的图像执行阈值化:
im1b1 <-0.3? 1: 0
(这里,im 1b1指的是NDVI图像)。
分析
检查二进制图像的值为零时发生的更改。检查这些地区植被表面是否大幅减少(森林砍伐等)。
表5.10.使用“BandMath”应用程序逐像素计算
形态学运算符¶
BinaryMorphologicalOperation 应用程序对二进制图像执行形态操作。 结构元素(通常是球)和操作类型(扩张、侵蚀、打开、关闭)已指定。
扩张和侵蚀是数学形态学的基本运算符: 输出像素的值取决于以其为中心的结构元素(如果结构元素包含输入图像的像素, 则输出像素设置为真以进行扩张和假侵蚀)。
这些操作符的组合允许进行各种操作,例如:
morphological opening: erosion followed by dilation;
morphological closure: dilation followed by erosion.
对光学图像(图5.19(a))进行阈值化以获得二进制图像(图5.19(b)), 该图像将用于呈现不同的形态学操作(图5.19(c)-5.19(f))。
c)d)e)f)
图5.19. a)光学图像(Spot 6); b)对初始光学图像的一个通道进行阈值处理而产生的二进制图像。在二进制图像中,一系列形态学运算符应用半径为5像素的结构元素; c)应用侵蚀运算符后的二进制图像; d)应用侵蚀运算符后的二进制图像 扩张运算符的应用; e)开放运算符应用后的二进制图像; f)封闭运算符应用后的二进制图像
在表5.11所示的示例中,BinaryMorphologicalOperation 应用程序将在命令行模式下使用, 以便您可以熟悉此界面。
开始使用此类界面的一个有用技巧包括使用文本编辑器复制/粘贴命令行,以方便它们的后续使用。
步骤
指令
显示帮助
不带参数运行 otbcli_BinaryMorphologicalOperation
以显示应用程序描述:
otbcli_BinaryMorphologicalOperation
然后打印应用程序描述:
This is the BinaryMorphologicalOperation application,
version 5.2.1
Performs morphological operations on an input image
channel
Complete documentation: http://www.orfeo�toolbox.org/Applications/BinaryMorphologicalOperation.html
Parameters:
-progress <boolean> Report
progress
MISSING -in <string> Input
Image (mandatory)
MISSING -out <string> [pixel] Feature
Output Image
[pixel=uint8/uint16/int16/uint32/int32/float/double]
(default value is float) (mandatory)
-channel <int32> Selected
Channel (mandatory, default value is 1)
-ram <int32> Available
RAM (Mb) (optional, off by default, default value is 128)
-structype <string>
Structuring Element Type [ball/cross] (mandatory, default
value is ball)
-structype.ball.xradius <int32> The
Structuring Element X Radius (mandatory, default value is
5)
-structype.ball.yradius <int32> The
182 QGIS and Generic Tools
Structuring Element Y Radius (mandatory, default value is
5)
-filter <string>
Morphological Operation [dilate/erode/opening/closing]
(mandatory, default value is dilate)
-filter.dilate.foreval <float>
Foreground Value (mandatory, default value is 1)
-filter.dilate.backval <float>
Background Value (mandatory, default value is 0)
-filter.erode.foreval <float>
Foreground Value (mandatory, default value is 1)
-filter.erode.backval <float>
Background Value (mandatory, default value is 0)
-filter.opening.foreval <float>
Foreground Value (mandatory, default value is 1)
-filter.opening.backval <float>
Background Value (mandatory, default value is 0)
-filter.closing.foreval <float>
Foreground Value (mandatory, default value is 1)
-inxml <string> Load otb
application from xml file (optional, off by default)
Examples:
otbcli_BinaryMorphologicalOperation -in qb_RoadExtract.tif
-out opened.tif -channel 1 -structype.ball.xradius 5 -
structype.ball.yradius 5 -filter erode
选择操作
此操作旨在对先前情况期间生成的二进制图像执行形态学操作,以消除小的孤立像素。 因此,我们将进行形态学开放。
要选择打开操作符,请将值“opening”设置为“-滤镜”参数。
-filter opening
选择结构元素
结构元素的大小确定将删除的隔离像素的大小。从等于1的半径开始,仅消除孤立像素。
-structype.ball.xradius 1 -structype.ball.yradius 1
选择输出图像
选择输出图像的文件名。
执行
通过在终端中验证命令行来运行算法。
otbcli_BinaryMorphologicalOperation -in inputImage.tif
-filter opening -structype.ball.xradius 1
-structype.ball.yradius 1 -out openedImage.tif
可视化
将形态开放的结果与原始的结果进行比较。
通过逐渐增加结构元素的半径,并观察对去除孤立像素组的影响,重复该操作。 通过将等于“opening”的参数“-滤镜”的值替换为“elove”、“dilate”、“clending”来重复该操作, 以测试形态学操作符。形态关闭示例:
otbcli_BinaryMorphologicalOperation -in inputImage.tif
-filter closing -structype.ball.xradius 1
-structype.ball.yradius 1 -out closedImage.tif
表5.11.使用“BinaryMorphologicalOperation”应用程序的形态运算符
过滤:平滑¶
本部分介绍 平滑 应用程序,该应用程序支持对图像进行各种过滤操作(平均、高斯、各向异性扩散)。 平均和高斯过滤器是图像上的卷积,一个具有恒定核,另一个具有高斯核。各向异性扩散, 也称为Perona-Malik扩散,是一种在保持物体轮廓的同时平滑图像的技术[PER 90]。
以下插图显示了这些滤镜对光学图像的影响(图5.20)。
图5.20. a)已应用过滤器的初始图像(Spot ); b)应用均值过滤器后的初始图像; c)应用高斯过滤器后的初始图像; d)应用各向异性扩散后的初始图像
在下面的练习中(表5.12), 我们使用 平滑 应用程序在宽度为7像素的窗口中生成局部像素平均值的图像。
步骤
指令
显示帮助
执行不带参数的 otbSYS_Smooth
以显示应用程序描述。输入以下命令:
otbcli_Smoothing
然后打印应用程序描述:
This is the Smoothing application, version 5.2.1
Apply a smoothing filter to an image
Complete documentation: http://www.orfeo-toolbox.org/Applications/Smoothing.html
Parameters:
-progress <boolean> Report
progress
MISSING -in <string> Input
Image (mandatory)
MISSING -out <string> [pixel] Output
Image
[pixel=uint8/uint16/int16/uint32/int32/float/double]
(default value is float) (mandatory)
-ram <int32>
Available RAM (Mb) (optional, off by default, default
value is 128)
-type <string>
Smoothing Type [mean/gaussian/anidif] (mandatory, default
value is anidif)
-type.mean.radius <int32> Radius
(mandatory, default value is 2)
-type.gaussian.radius <float> Radius
(mandatory, default value is 2)
-type.anidif.timestep <float> Time
Step (mandatory, default value is 0.125)
-type.anidif.nbiter <int32> Nb
Iterations (mandatory, default value is 10)
-type.anidif.conductance <float>
Conductance (mandatory, default value is 1)
-inxml <string> Load otb
application from xml file (optional, off by default)
Examples:
Image smoothing using a mean filter.
otbcli_Smoothing -in Romania_Extract.tif -out
smoothedImage_mean.png uchar -type mean
Image smoothing using an anisotropic diffusion filter.
otbcli_Smoothing -in Romania_Extract.tif -out
smoothedImage_ani.png float -type anidif -
type.anidif.timestep 0.1 -type.anidif.nbiter 5 -
type.anidif.conductance 1.5
选择过滤方法
我们想对图像应用中等滤镜。
将“-类型”参数设置为“平均值”以选择平均值过滤器。
-type mean
设置半径
半径确定平均过滤窗口大小。为了在7 x 7的邻居大小中平均像素,我们将半径设置为3个像素。
-type.mean.radius 3
选择输入图像
将“-in”参数设置为输入图像文件名“ROI_2_XS_Ortho_GSD2016”。
选择输出图像
填写“-out”参数以设置输出文件名。
执行
运行算法:
otbcli_Smoothing -in inputImage.tif -type mean -type.mean.radius 3 -out
meanFilteredImage.tif
可视化
将生成的图像与原始图像进行比较。
使用高斯过滤器重复该操作。为此,请将“类型”参数更改为“高斯”:
otbcli_Smoothing -in inputImage.tif -type gaussian
-type.gaussian.radius 3 -out gaussianFilteredImage.tif
将输出图像与之前过滤的图像进行比较。
表5.12.使用“Smooth”应用程序平滑图像
过滤:扩展像素操作¶
BandMathX 应用程序与 BandMath 类似,只是它能够执行载体和矩阵计算并且具有更丰富的指令集。 例如,可以对像素附近的像素执行操作,或者访问输入图像的统计信息。 表5.13显示了输入公式中可用的新变量。
Variable |
Description |
---|---|
im1 |
A pixel of the first input image, composed of N components (N: number of channels in the first input image) |
im1b1 |
First pixel component of the first input image (similar to BandMath) |
im1b1N3x5 |
Neighborhood of the first component of the first input image, size 3 × 5. The neighborhood is centered on the pixel (its dimensions must be odd numbers) |
im1b1Mini |
Minimum of the first channel of the first input image |
im1b1Maxi |
Maximum of the first channel of the first input image |
im1b1Sum |
Sum of the pixels of the first channel of the first input image |
im1b1Mean |
Average of the pixels of the first channel of the first input image |
im1b1Var |
Variance of the pixels of the first channel of the first input image |
im 1PhyX/im1PhyY |
The physical size of the pixel of the first image in X/Y directions |
idxX/idxY |
Indices of the current pixel (columns/rows) |
表5.13. BandMathX应用程序中可用的变量
启用 BandMath 的新扩展操作,包括隐式处理多个通道的能力。例如:
添加具有多个分量的两个像素(像素必须具有相同数量的分量才能相加,即图像必须具有相同数量的通道):
im1 + im2;
向具有多个分量的像素添加一个纯量:
im1 + {1}: this operation will add the number 1 to all the pixel components of image 1;
向像素添加一个载体(载体必须具有与像素相同数量的分量,即要添加的载体必须具有与图像中通道数量相同的分量):
im1 + {1,2,–1,1}: this operation will add the vector (1,2, –1,1) to the pixel of image 1. The pixel of image 1 must have four components. For example, for a pixel of image 1 valuing {134,34,45,221}, the calculated pixel will be {135, 36,44,222};
将一个像素与多个分量相乘,或者将一个像素与另一个分量相乘。元素的维度必须与操作兼容。组件数量的约束与矩阵计算相同:
im2 * {2,2,2,2}'
这里的字符 '
表示前面的载体的转置。
此操作使得可以计算图像(具有四个通道)的每个像素与载体{2,2,2,2}之间的标量积。
如果该表达是im 2* {2,2,2,2},则会返回错误消息,因为相乘操作会不正确。
{im2b1, im2b2} * {1,2}'
该操作使得可以计算等于第二输入图像的带1和带2的两倍之和的标量积。 如果该公式为{im 2b 1,im 2b 2} * {1,2},则会返回错误消息,因为相乘操作不正确。
BandMathX 还包括可以在载体或矩阵上运行的新操作符:
所有不用于载体(cos、sin等)的 BandMath 运算符现在研究载体。它们逐个组件执行,通过在前面添加字符“v”(vcos、vsin等)。 多个参数运算器(min、max、sum、avg)现在可以处理矩阵。例如, 该公式将给出像素3 x 5附近(即以待处理像素为中心的3 x 5像素附近)的最小值:
min (im1b1N3x5)
在两个分量之间执行计算的运算符,逐个分量:Mult(乘)、Div(除)、pow(功率)。例如, 此公式将为每个组件提供实例1/image 2:
im1 div im2
在一个分量的一个分量之间执行一个分量的计算的运算符:mlt(乘)、dv(除)、pw(功率)。 例如,该公式将图像1像素的每个分量除以2:
im1 dv 2
频段操作员选择图像的特定频段和/或将它们重新分配到新的载体中。 例如,该公式将执行图像1的频段1和2的排列(频段3和4保留在它们的位置):
bands (im1, {2,1,3,4})
此应用程序提供的另一个选项是能够定义常数(矩阵或纯量)。 由于我们不会在本章中讨论这一点,因此我们鼓励您在OTB 官方网站上查阅详细的应用程序文档。 这是OpticalCalibration应用程序,版本5.2.1
在下面的练习中,BandMathX 应用程序以非语言模式使用。 将使用在不同输入通道上执行的表达来处理两个输入图像。
步骤说明
启动应用程序
执行otbgui_BandMathX:

选择图像
编辑“输入图像列表”以选择输入图像。
选择第一个练习中生成的两个图像(ExtractROI的输出图像和叠加图像的输出图像)。
输入载体表达
计算其通道为图像1和2的植被指数的图像:

此公式将生成具有两个分量像素的输出图像,每个分量等于一个输入图像的NDVI值。
注意:muParser是空的,并且区分大小写,因此请小心, 不要在表达之间留下空白(空白被解释为连续)。
选择输出图像
设置“输出图像”字段以选择输出图像的文件名。
执行
单击“执行”以运行处理。
计算一个载体的最大值再次执行处理并修改该表达式, 以创建一张具有两个图像中每个像素的最大NDVI值的图像。
使用muParserX的“vmax”函数:

注意:我们可以使用之前计算的图像并应用函数“vmax”。在这种情况下,该表达只是“vmax(im1)”。
表5.14.使用“BandMathX”应用程序扩展像素计算