Python使用scipy保存图片的一些注意点

首先我们载入一张灰度图片,一般灰度图片像素为0-255.

Python使用scipy保存图片的一些注意点_第1张图片

可以发现该图片的最大像素为254,最小像素为2。一般处理图片时会转化为double类型。

我们将图片使用scipy保存为pgm格式。

然后我们重新读取该图片信息。

Python使用scipy保存图片的一些注意点_第2张图片

其像素值发生了变化,自动标准化到了0-255范围,最小值变为0,最大值变为255.

所以,使用scipy保存图像时,加上2个参数,cmin和cmax。就可以了

重新读取图片。结果正确

Python使用scipy保存图片的一些注意点_第3张图片

补充:from scipy import misc 读取和保存图片

from scipy import misc

def imread(name, flatten=False, mode=None)
    pass
"""
读取一张图片返回array,uint8,"""
def imsave(name, arr, format=None):
    pass
"""
Save an array as an image. 自动的调用将图片转成0-255范围内的
arr : ndarray, MxN or MxNx3 or MxNx4
        Array containing image values.  If the shape is ``MxN``, the array
        represents a grey-level image.  Shape ``MxNx3`` stores the red, green
        and blue bands along the last dimension.  An alpha layer may be
        included, specified as the last colour band of an ``MxNx4`` array.
"""

注意上面对图片读取和保存的函数会被弃用,使用如下代替:

import imageio
imageio.imread()
imageio.imwrite()

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

你可能感兴趣的:(Python使用scipy保存图片的一些注意点)