图像教程
工具jupyter notebook
格式首先输入魔法函数
%matplotlib inline
在之前基础上导入模块
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
from PIL import Image
利用Pillow打开图像,并利用Pllow进行处理。
%matplotlib inline
import matplotlib.pyplot as plt
from PIL import Image
import numpy as np
img = Image.open('crop001522.png')
img.thumbnail((64, 64), Image.ANTIALIAS)
print(img.format, img.size, img.mode)#PPM (512, 512) RGB
如果需要利用matplotlib功能,转换图像为数组。Pillow可以使用的唯一数据类型是uint8。
%matplotlib inline
import matplotlib.pyplot as plt
from PIL import Image
import numpy as np
img = Image.open('crop001522.png')
img.thumbnail((64, 64), Image.ANTIALIAS)
print(img.format, img.size, img.mode)#PPM (512, 512) RGB
img_array = np.array(img)
im = Image.fromarray(np.uint8(img_array))
imgplot = plt.imshow(im)
执行结果
接下来另开一个cell,执行matplotlib相关操作。对于RGB和RGBA图像,matplotlib支持Float32和uint8数据类型。对于灰度,matplotlib仅支持Float32。如果数组数据不符合这些描述之一,则需要重新缩放它。为方便计算,将图像值域缩放到0.0-1.0之间,通过ravel碾平。
img_array = np.array(img)[:,:,0]/255.0
plt.hist(img_array.ravel() ,bins=256, range=(0.0, 1.0),fc='k', ec='k')
plt.show()