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