处理图像的第一步是学会读取图像以及保存图像。
这里介绍几种方法
- 利用PIL中的Image函数
利用PIL中的Image函数,保存的图像不是数组形式,需要用 np.asarray(im) 或者np.array()函数转换为数组格式
from PIL import Image
import numpy as np
Img = Image.open('./EXP1B.bmp')
Img.show()
Img.save('./test.bmp')
Img_array = np.array(Img)
.shape可以输出数组的情况,第一个是行,第二个是列,第三个是通道数
- 利用matplotlib.pyplot as plt用于显示图片
这种方法读取出来就是array格式,并且像素值读出来是介于0和1之间的真值。
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import numpy as np
I = mpimg.imread('./EXP1B.bmp')
plt.imshow(I)
print(I.shape,I.dtype,type(I))
由print(I.shape,I.dtype,type(I))可以看到图像的信息
插播一条 假如对上面用PLT方式读取的图片使用print(I.shape,I.dtype,type(I)),他会报错,这是因为读取的不是数组形式。
- scikit-image
用scikit-image中的imread()函数读取numpy ndarray中的图像。图像类型为uint8(8 位无符号整数),因此图像像素值是介于 0 和 255 之间的数,用hsv2rgb()函数从Image.color模块将彩色 RGB 图像转换为 HSV 图像
import matplotlib.pyplot as plt
from scipy import misc
import scipy
I = misc.imread('./EXP1B.bmp')
scipy.misc.imsave('./save1.png', I)
plt.imshow(I)
plt.show()
该方法已经被弃用了,不要再使用了
|