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