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

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。