1

我有个问题。如何在图像上将空值设置为 0。在matlab中有什么方法可以做到这一点。图像类型为浮点、32 位、tif 格式。此图像的空值(Nodata)为-3.4028234663e+038。所以这个数字超出了浮点数的范围。所以我想用 0 替换这些值。

4

1 回答 1

1

一般来说,您可以找到所有要替换的元素:

idx = (I == x); % # x is the "null" value

I您的图像在哪里,并且x是要替换的所需值(在您的情况下,即“空”值)。但是,更实用的语法是使用某个阈值而不是精确值:

idx = (I > y);  % # y is a value much lower than x

现在idx保存要归零的元素的逻辑索引。获得后idx,只需执行以下操作:

I(idx) = 0;

PS
实际上,您可以在不创建临时变量的情况下实现相同的结果idx,如下所示:

I(I > y) = 0;
于 2012-12-08T12:22:05.023 回答