我正在尝试在python代码中读取多波段图像。我的要求是形成一个邻域矩阵。所以我需要用一些数字填充矩阵,以便能够为每个元素形成邻域。 防爆。 a是一个矩阵,填充0
a= |1 2 3 |
|4 5 6 |
|7 8 9 |
neighborhood matrix = |0 0 0|
|0 1 2|
|0 4 5|
我正在使用numpy.pad(below)
,它与单频段完美配合。但对于多频段,它将noDataValue转换为0-255中的等效值,并用它填充,这是我不想要的。
pixels = np.pad(a, (padding,padding), mode='constant', constant_values=(noDataValue))
其中padding = 1
,noDataValue = -999.0
但它会自动将其转换为125.这只发生在多频段。所以任何帮助都会受到赞赏。
或者
如果我可以用字符串填充矩阵,那就太棒了。我找不到任何有助于使用String填充的函数。
更新1 :
答案 0 :(得分:1)
将a
转换为可以是值noDataValue
e.g。
import numpy as np
# ....
a = [[1,2,3],[4,5,6],[7,8,9]]
a = np.array(a).astype(np.float32)
padding = 2
noDataValue = -999.0
pixels = np.pad(a, (padding,padding), mode='constant', constant_values=(noDataValue))
它可以在这里工作