矩阵乘法输出不正确的图像

时间:2016-08-12 01:32:10

标签: python arrays image numpy matrix

我有一个图像矩阵,我缩小,然后缩小回原始值。

首先将图像读入大小(150,200,3)的数组中。

image_data = ndimage.imread(image_file,mode='RGB').astype(float)

接下来,我将像素值缩小,然后再缩回原始值。另外,我将float数组转换回整数数组。

  image_data = (image_data - (255.0 / 2)) / 255.0
  image_data = (image_data * 255.0) + (255.0 / 2)
  image_data = image_data.astype(int)

现在我将图像保存在initial.jpg文件中。

  image0 = PILImage.fromarray(image_data,mode='RGB')
  image0.save('Tests/Initial.jpg')

保存的图像看起来像这样......

enter image description here

但是,如果我删除矩阵乘法和转换(中间三行代码)。我保存了一个看起来像这样的图像。这是正确的文件。

enter image description here

我已经验证了矩阵,并且修改后的矩阵与原始矩阵相同,所以我很困惑为什么图像也不一样。

1 个答案:

答案 0 :(得分:0)

发现图像数组只有在类型为uint8时才能正确保存。所以改变

image_data = image_data.astype(int)

image_data = image_data.astype(np.uint8)