首先我们载入一张灰度图片,一般灰度图片像素为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()
以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/wuhaibin12/article/details/90734008