Python使用scipy保存图片需要注意什么?

猿友 2021-07-30 14:19:14 浏览数 (2365)
反馈

SciPy作为一个著名的开源科学库,我们可以用它来做很多科学处理相关的功能,比如说利用SciPy图片处理。但是在SciPy保存图片的时候需要注意一些细节,不然会导致一些错误。接下来我们就来介绍一下SciPy怎么保存图片吧。

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

图片载入

查看数据

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

转换格式

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

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

获取图片信息

运行结果

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

运行结果

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

重新读取图片。结果正确

运行结果

补充: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()

以上就是SciPy保存图片的一些注意要点,希望能给大家一个参考,也希望大家多多支持W3Cschool



0 人点赞