所以我有一个非常大的 Numpy 数组(2560x1920)。它实际上来自灰度图片,其中每个像素都有一个 0-1 的数字,表示其亮度。
我试图用零替换低于阈值的所有值,比如 0.5。
这可能是一项简单的任务,但我是 Numpy 的初学者,我四处搜索,但仍然无法弄清楚。
这是我尝试过的,我知道这是错误的......
for x in np.nditer(Image):
if x < .5:
x == 0
plt.imshow(Image, cmap=plt.cm.gray)
plt.show()
它只是输出正常的图像而不改变任何东西。
数组也看起来像这样(明显缩写):
[[ 0.24565263 0.24565263 0.24902149 ..., 0.27528678 0.27265316
0.27606536]
[ 0.24565263 0.24565263 0.24902149 ..., 0.27870309 0.27606536
0.27948296]
[ 0.24228902 0.24228902 0.24565263 ..., 0.28212482 0.27948296
0.282906 ]
...,
[ 0.29706944 0.29706944 0.29706944 ..., 0.17470162 0.17144636
0.17144636]
[ 0.29362457 0.29362457 0.29362457 ..., 0.17144636 0.16495056
0.16170998]
[ 0.2901852 0.2901852 0.2901852 ..., 0.16819602 0.16170998
0.15847427]]
最佳答案
numpy 的内置索引可用于替换元素。这可以通过以下方式完成:
Image[Image<0.5] = 0