数组/矩阵转换成Image类

Posted 吃饭了吗

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组/矩阵转换成Image类相关的知识,希望对你有一定的参考价值。

Python下将数组/矩阵转换成Image类

原创 2017年04月21日 19:21:27

先说明一下为什么要将数组转换成Image类。我处理的图像是FITS (Flexible Image Transport System)文件,是一种灰度图像文件,也就是单通道图像。FITS图像的特点是灰度值取值为0~65535,这类图像在python下读成数组首先是不能直接转换成位图,也就不能用OpenCV、Image等方法了。如果是普通的jpg图像,用自带的Image库就能实现很多功能。 
技术分享图片

技术分享图片
下方的这幅图就是通过python下的Image库中的rotate函数实现的 
接下来贴上代码。


import Image
import numpy as np
#生成一个数组,维度为100*100,灰度值一定比255大
narray=np.array([range(10000)],dtype=‘int‘)
narray=narray.reshape([100,100])
#调用Image库,数组归一化
img=Image.fromarray(narry*255.0/9999)
#转换成灰度图
img=img.covert(‘L‘)
#可以调用Image库下的函数了,比如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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

技术分享图片

这是刚才代码生成的图片,是不是很简单?




以上是关于数组/矩阵转换成Image类的主要内容,如果未能解决你的问题,请参考以下文章

Image与byte[]数组的相互转换

MATLAB中单元数组能转换成矩阵吗

如何将此 JavaScript 代码片段翻译成 Parenscript?

c#怎么把byte数组转换成图像

java中图像与数组转换

Python使用np.c_和np.r_实现数组转换成矩阵