先检查图片格式
from PIL import Image
# 图像格式
def show_image(filepath):
im = Image.open(filepath)
im.show()
print(im.mode)
print(im.size)
根据print(im.mode)内容结合网址给出的信息判断 。
假设是8位深度图像,则采用下列代码读取数据:
def read_pgm(pgmf):
"""Return a raster of integers from a PGM as a list of lists."""
assert pgmf.readline() == 'P5\n'
(width, height) = [int(i) for i in pgmf.readline().split()]
depth = int(pgmf.readline())
assert depth <= 255
raster = []
for y in range(height):
row = []
for y in range(width):
row.append(ord(pgmf.read(1)))
raster.append(row)
return raster
如图所示读取头后,得到宽度(1024)、高度(下一个1024)和深度(255)。要获取像素数据,注意逐字节即‘rb’格式读取!
参考:
读取格式参考!