当前位置:
首页
文章
后端
详情

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

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。



免责申明:本站发布的内容(图片、视频和文字)以转载和分享为主,文章观点不代表本站立场,如涉及侵权请联系站长邮箱:xbc-online@qq.com进行反馈,一经查实,将立刻删除涉嫌侵权内容。

同类热门文章

深入了解C++中的new操作符:使用具体实例学习

C++中的new操作符是动态分配内存的主要手段之一。在程序运行时,我们可能需要动态地创建和销毁对象,而new就是为此提供了便利。但是,使用new也常常会引发一些问题,如内存泄漏、空指针等等。因此,本文将通过具体的示例,深入介绍C++中的new操作符,帮助读者更好地掌握其使用。


深入了解C++中的new操作符:使用具体实例学习

怎么用Java反射获取包下所有类? 详细代码实例操作

Java的反射机制就是在运行状态下,对于任何一个类,它能知道这个类的所有属性和方法;对于任何一个对象,都能调用这个对象的任意一个方法。本篇文章将通过具体的代码示例,展示如何通过Java反射来获取包下的所有类。


怎么用Java反射获取包下所有类? 详细代码实例操作

了解Java中的volati关键字的作用 以及具体使用方法

本篇文章将和大家分享一下Java当中的volatile关键字,下面将为各位小伙伴讲述volatile关键字的作用以及它的具体使用方法。


了解Java中的volati关键字的作用 以及具体使用方法

Java Map 所有的值转为String类型

可以使用 Java 8 中的 Map.replaceAll() 方法将所有的值转为 String 类型: 上面的代码会将 map 中所有的值都转为 String 类型。 HashMap 是 Java

Java Map 所有的值转为String类型

员工线上学习考试系统

有点播,直播,在线支付,三级分销等功能,可以对学员学习情况的监督监控,有源码,可二次开发。支持外网和局域网私有化部署,经过测试源码完整可用!1、视频点播:视频播放,图文资料,课件下载,章节试学,限时免

员工线上学习考试系统