PIL image模块处理图片,struct从mnist文件集读取十张图片并分别显示标签和图片
2017-12-21 17:16
447 查看
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()
相关文章推荐
- Python-----PIL Image模块 show函数不能正常显示图片
- PIL Image模块 show函数不能正常显示图片
- PIL中Image模块的show函数无法正常显示图片
- PIL Image模块 show函数无法正常显示图片
- win 7 下 PIL python Image模块 show函数不能正常显示图片
- win7环境下python PIL Image模块 show函数不能正常显示图片
- PIL Image模块 show函数无法正常显示图片
- python图片处理模块PIL(pillow)(1)
- Python图片处理模块PIL(pillow)(2)
- 在Python中使用PIL模块对图片进行高斯模糊处理的教程
- WPF <Image/>标签预览可以显示图片运行后不显示
- nginx图片过滤处理模块http_image_filter_module安装配置笔记
- 使用universalimageloader图片加载框架,正确加载却无法显示图片问题的处理
- 读取数据库Image格式图片并显示
- 在Python中使用PIL模块对图片进行高斯模糊处理的教程
- nginx图片过滤处理模块http_image_filter_module安装配置
- Python图像处理库PIL的ImageStat模块介绍
- BitmapImage 读取内存流和显示图片
- Python图像处理库:PIL中Image,ImageDraw等基本模块介绍
- python处理图片之PIL模块简单使用