我导入了一个有三个波段的图像。 我把每一个乐队都编入了一个纽比阵列。在
现在我尝试修改带1的值,条件是频带3。在
但是,我的图像有许多零值,必须计算零以外的值以加快操作速度。在
我认为在排除0值之后找到值会更快。在
下面是我以前的代码。在
cols = 0
rows = 0
[cols,rows] = test.shape
i= 0
i2 = 0
while i < cols:
k = 0
k2 =0
while k <rows:
if 0.15>test[i,k]>0.05089 and 30> test3[i,k]>29.8 :
test[i,k] = 1
....
看起来你想要的是选择一个“蒙版”并分配给它。您的示例有点奇怪和不完整,但是您可以通过将循环替换为:
这是怎么回事:
(0.15>test)
创建一个与test大小相同的布尔数组,所有元素都设置为True
,其余元素False
。在&
运算符与其他布尔数组一起执行元素逻辑“与”操作,以生成一个新的布尔数组(同样大小与test和test3相同)test[XXX] = 1
表示“取XXX的所有元素为true,并将test
的对应元素设置为1”(假设XXX与test具有相同的形状(或者可以广播到相同的形状))相关问题 更多 >
编程相关推荐