首先我們載入一張灰度圖片,一般灰度圖片像素為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()
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
您可能感興趣的文章:- 淺談python下tiff圖像的讀取和保存方法
- python讀取和保存圖片5種方法對比
- Python 讀取圖片文件為矩陣和保存矩陣為圖片的方法