我有一个图像矩阵,我缩小,然后缩小回原始值。
首先将图像读入大小(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')
保存的图像看起来像这样......
但是,如果我删除矩阵乘法和转换(中间三行代码)。我保存了一个看起来像这样的图像。这是正确的文件。
我已经验证了矩阵,并且修改后的矩阵与原始矩阵相同,所以我很困惑为什么图像也不一样。
答案 0 :(得分:0)
发现图像数组只有在类型为uint8时才能正确保存。所以改变
image_data = image_data.astype(int)
到
image_data = image_data.astype(np.uint8)