如何将Nodata值设置为零

时间:2012-12-08 12:18:31

标签: function matlab

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

1 个答案:

答案 0 :(得分:1)

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

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

其中I是您的图片,x是要替换的所需值(在您的情况下,这是“null”值)。但是,更实用的语法是使用某个阈值而不是精确值:

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

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

I(idx) = 0;

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

I(I > y) = 0;