MultivariateAlterationDetector

基于多变量变化检测(MAD)算法的变化检测

描述

这个应用程序使用多变量变化检测器(MAD)执行两个多光谱图像之间的变化检测 [1] 算法。

MAD算法生成一组N个更改图(其中N是第一个和第二个输入图像中的最大波段数),具有以下属性:

  • 变化图是来自图像1的频带和来自图像2的频带的一对线性组合的差值,
  • 每个更改图都与其他更改图相互垂直。

这是一种统计方法,可以处理不同的模式,甚至不同的波段和图像之间的波段数量。

该应用程序将所有的变化地图输出到一个单一的多波段图像。更改图按相关性递增进行排序。

该应用程序还将打印以下信息:

  • Mean1和Mean2是两个输入图像的带的平均值,
  • V1和V2是应用于输入图像1和输入图像2以构建变化图的两个线性变换,
  • Rho,与每个变化图相关联的相关性向量。

本应用程序中使用的OTB滤波器是从作者在此处提供的MatLab代码中实现的 [2] 。两种情况(相同和不同的频段数)都通过比较输出图像和由MatLab代码产生的输出进行了验证,并使用Octave从MatLab代码生成了用于测试的参考图像。

参数

Input Image 1 -in1 image Mandatory
Multiband image of the scene before perturbations

Input Image 2 -in2 image Mandatory
Mutliband image of the scene after perturbations.

Change Map -out image [dtype] Mandatory
Multiband image containing change maps.

Available RAM (MB) -ram int Default value: 256
Available memory for processing (in MB).

实例

从命令行执行以下操作:

otbcli_MultivariateAlterationDetector -in1 Spot5-Gloucester-before.tif -in2 Spot5-Gloucester-after.tif -out detectedChangeImage.tif

来自Python的评论:

import otbApplication

app = otbApplication.Registry.CreateApplication("MultivariateAlterationDetector")

app.SetParameterString("in1", "Spot5-Gloucester-before.tif")
app.SetParameterString("in2", "Spot5-Gloucester-after.tif")
app.SetParameterString("out", "detectedChangeImage.tif")

app.ExecuteAndWriteOutput()

局限性

输入图像1和2应共享完全相同的原点、间距、大小和投影(如果有)。

另请参阅

[1] 尼尔森,A.和康拉德森,K.(1997)。多光谱、双时相图像数据的多变量变化检测:变化检测研究的一种新方法。