【发布时间】:2020-03-14 11:19:14
【问题描述】:
我正在做一个图像分割项目,我有一个大小为 (224,224) 的二维数组,其值介于 0-20 之间,每个数字代表数据集的一个类别。我想将此二维数组存储到灰度图像中,并使用相同的 0-20 值将其读回。我找不到合适的方法来做到这一点。我尝试如下,但虽然它存储为灰度图像,但从图像中读取数组时,我无法读回实际的二维数组。
#arr is the 2D array of size (224,224) with values from 0-20
rescaled = (255.0 / arr.max() * (arr - arr.min())).astype(np.uint8)
img = PIL.Image.fromarray(rescaled)
img.save(filename)
但是当我读回I = np.asarray(PIL.Image.open('filename.png')) 时,我只能看到 0 和 255。我需要 0-20 的值。我怎样才能做到这一点?我试着用cv2.imwrite(filename,arr) 来做,但它给出的只是一张空白图片。
【问题讨论】:
标签: python-3.x opencv png python-imaging-library cv2