from PIL import image
图片摄取像素值:im=image.putpixel(int(struct.pack('>I,byte))
显示图片im.show()
图片大小:im.size()
图片旋转:im.rotate(45)#逆时针旋转 45 度角 使用struct读取字节文件:
import struct
struct.unpack('>I',bytes)#从字节串bytes解析一个为I(unsighed char,python int)
struct.pack('>II',12,13)#将12,13解析为字节串
struct.unpack_from('>II',buf,index)#从buf字节流解析两个int型,起始位置index
-----------------------------------------------------------------------------------------------------------
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from PIL import Image
import struct
def read_image(filename):
#读取图片十张,并将其放在list中
f = open(filename, 'rb')
index = 0
buf = f.read()
f.close()
magic, images, rows, columns = struct.unpack_from('>IIII' , buf , index)#返回magic,图片数,行数,列数
#print(magic, images, rows, columns)
index += struct.calcsize('>IIII')#下移图片集读取位置
imagelist=[]
for i in range(10):
image = Image.new('L', (columns, rows))
for x in range(rows):
for y in range(columns):
#print(struct.unpack_from('>B', buf, index))
#print(repr(struct.unpack_from('>B', buf, index)))
image.putpixel((y, x), int(struct.unpack_from('>B', buf, index)[0]))#向图片(y,x)位置存放像素值
index += struct.calcsize('>B')
#print ('save ' + str(i) + 'image')
#image.save('E:\\study\\dataset\\t10k-labels-idx1-ubyte\\test' + str(i) + '.png')
imagelist.append(image)
return imagelist
def read_label(filename, saveFilename):
#读取label十个并将其放在一个list中返回
f = open(filename, 'rb')
index = 0
buf = f.read()
f.close()
magic, labels = struct.unpack_from('>II' , buf , index)#标签数据集的头部为magic和labels(标签数)
index += struct.calcsize('>II')#下移字节集读取位置
labelArr = [0] * labels
#labelArr = [0] * 2000
for x in range(10):
labelArr[x] = int(struct.unpack_from('>B', buf, index)[0])
index += struct.calcsize('>B')
return labelArr
if __name__ == '__main__':
il=read_image('E:\\study\\dataset\\t10k-images-idx3-ubyte\\t10k-images.idx3-ubyte')
la=read_label('E:\\study\\dataset\\t10k-labels-idx1-ubyte\\t10k-labels.idx1-ubyte', 'E:\\study\\dataset\\t10k-labels-idx1-ubyte\\test\\label.txt')
for i in range(len(la):#使用循环显示标签值和图片
print('the',la[i],':')
il[i].show()
图片摄取像素值:im=image.putpixel(int(struct.pack('>I,byte))
显示图片im.show()
图片大小:im.size()
图片旋转:im.rotate(45)#逆时针旋转 45 度角 使用struct读取字节文件:
import struct
struct.unpack('>I',bytes)#从字节串bytes解析一个为I(unsighed char,python int)
struct.pack('>II',12,13)#将12,13解析为字节串
struct.unpack_from('>II',buf,index)#从buf字节流解析两个int型,起始位置index
-----------------------------------------------------------------------------------------------------------
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from PIL import Image
import struct
def read_image(filename):
#读取图片十张,并将其放在list中
f = open(filename, 'rb')
index = 0
buf = f.read()
f.close()
magic, images, rows, columns = struct.unpack_from('>IIII' , buf , index)#返回magic,图片数,行数,列数
#print(magic, images, rows, columns)
index += struct.calcsize('>IIII')#下移图片集读取位置
imagelist=[]
for i in range(10):
image = Image.new('L', (columns, rows))
for x in range(rows):
for y in range(columns):
#print(struct.unpack_from('>B', buf, index))
#print(repr(struct.unpack_from('>B', buf, index)))
image.putpixel((y, x), int(struct.unpack_from('>B', buf, index)[0]))#向图片(y,x)位置存放像素值
index += struct.calcsize('>B')
#print ('save ' + str(i) + 'image')
#image.save('E:\\study\\dataset\\t10k-labels-idx1-ubyte\\test' + str(i) + '.png')
imagelist.append(image)
return imagelist
def read_label(filename, saveFilename):
#读取label十个并将其放在一个list中返回
f = open(filename, 'rb')
index = 0
buf = f.read()
f.close()
magic, labels = struct.unpack_from('>II' , buf , index)#标签数据集的头部为magic和labels(标签数)
index += struct.calcsize('>II')#下移字节集读取位置
labelArr = [0] * labels
#labelArr = [0] * 2000
for x in range(10):
labelArr[x] = int(struct.unpack_from('>B', buf, index)[0])
index += struct.calcsize('>B')
return labelArr
if __name__ == '__main__':
il=read_image('E:\\study\\dataset\\t10k-images-idx3-ubyte\\t10k-images.idx3-ubyte')
la=read_label('E:\\study\\dataset\\t10k-labels-idx1-ubyte\\t10k-labels.idx1-ubyte', 'E:\\study\\dataset\\t10k-labels-idx1-ubyte\\test\\label.txt')
for i in range(len(la):#使用循环显示标签值和图片
print('the',la[i],':')
il[i].show()