先說明一下為什么要將數(shù)組轉(zhuǎn)換成Image類。我處理的圖像是FITS (Flexible Image Transport System)文件,是一種灰度圖像文件,也就是單通道圖像。
FITS圖像的特點是灰度值取值為0~65535,這類圖像在python下讀成數(shù)組首先是不能直接轉(zhuǎn)換成位圖,也就不能用OpenCV、Image等方法了。
如果是普通的jpg圖像,用自帶的Image庫就能實現(xiàn)很多功能。
下方的這幅圖就是通過python下的Image庫中的rotate函數(shù)實現(xiàn)的
接下來貼上代碼。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
import Image import numpy as np #生成一個數(shù)組,維度為100*100,灰度值一定比255大 narray = np.array([ range ( 10000 )],dtype = 'int' ) narray = narray.reshape([ 100 , 100 ]) #調(diào)用Image庫,數(shù)組歸一化 img = Image.fromarray(narry * 255.0 / 9999 ) #轉(zhuǎn)換成灰度圖 img = img.covert( 'L' ) #可以調(diào)用Image庫下的函數(shù)了,比如show() img.show() #Image類返回矩陣的操作 imgdata = np.matrix(img.getdata(),dtype = 'float' ) imgdata = imgdata.reshape(narry.shape[ 0 ],narry.shape[ 1 ]) #圖像歸一化,生成矩陣 nmatrix = imgdata * 9999 / 255.0 |
這是剛才代碼生成的圖片,是不是很簡單?
以上這篇Python 實現(xiàn)將數(shù)組/矩陣轉(zhuǎn)換成Image類就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持服務(wù)器之家。
原文鏈接:https://blog.csdn.net/Jum_Tsai/article/details/70337816