第三篇:显示cifar-10中的图片
2017-09-19 19:45
267 查看
问题
因为在学习使用cifar-10的过程中,一直对着矩阵进行操作,不知道具体的图片是什么样的需要将三个32x32的矩阵转化为32x32x3矩阵
因为最后会使用plt.imshow这个函数显示图片,imshow的参数需要是(n,m)or (n,m,3) or (n,m,4)的矩阵具体参考代码:
# --coding:utf-8 -- import tensorflow as tf import numpy as np import matplotlib.pyplot as plt # 读取单个的batch文件 def unpickle(file): import cPickle with open('./cifar-10-batches-py/'+file,'rb') as fo: dict = cPickle.load(fo) return dict mydata = unpickle('data_batch_1') X = mydata['data'] label = mydata['labels'] X = np.array(X) np.set_printoptions(threshold='nan') new = X.reshape(10000,3,32,32) # 因为使用imshow将一个矩阵显示为RGB图片,需要 # 将三个32*32的矩阵合成一个32*32*3的三维矩阵 # 下面就是先将这三个矩阵(32*32)转化为1024*1的向量 # 然后使用hstack的功能将每个矩阵上相同位置的值合成 # 一个RGB像素点--->[r,g,b] # 最后得到 1024*3的矩阵 red = new[99][0].reshape(1024,1) green = new[99][1].reshape(1024,1) blue = new[99][2].reshape(1024,1) pic = np.hstack((red,green,blue)) # 打印最开始的32*32的矩阵, # 因为为RGB图像,所以为有三个32*32的矩阵 print(new[0][0]) print(new[0][1]) print(new[0][2]) # 重新设置pic的形状 pic_rgb = pic.reshape(32,32,3) # imshow显示的图片格式应该是 # (n,m) or (n,m,3) or (n,m,4) # 显示最后得到的rgb图片 plt.imshow(pic_rgb) plt.legend() plt.show()这只是其中一种简单的方法,其实我感觉在numpy里边估计都有将三个32x32的矩阵转化为32x32x3的函数,但是对numpy不是很熟悉,没有找到相关的功能函数。
最后贴出上边取的第100张图片的效果:
其实有点超乎我的预想,图片有点模糊,但是还是能看得出是一个车。
相关文章推荐
- 用Python3.x解析CIFAR-10数据集图片
- PyTorch读取Cifar数据集并显示图片的实例讲解
- 经验分享:C/C++做cifar-10转换成图片
- 用Python3.x解析CIFAR-10数据集图片
- 用KNN算法分类CIFAR-10图片数据
- cifar-10数据转为图片(jpg,png)
- 将图片保存为cifar-10类似的格式
- 显示cifar图片
- Android学习小Demo(10)ToDoList的改进版之ViewPager显示多个图片
- CIFAR-10和CIFAR-100数据集读取显示
- 【深度学习】笔记4_caffe第二个比较经典的[小图片]识别例子CIFAR_10的运行,网络模型的详解
- 将当前目录下cifar-10-batches-py转换成train图片和test图片,并同时生成train.txt 和 test.txt
- 使用PyTorch对cifar-10图片分类
- arcgis server 10和win7地图不显示,显示空白,toc控件图片不显示
- 猫猫学iOS 之微博项目实战(10)微博cell中图片的显示以及各种填充模式简介
- 【深度学习】针对CIFAR-10模型所写的进行图片size,图片名,后缀图片格式写的预处理程序
- 计算机视觉caffe之路第三篇:CIFAR-10数据集训练及预测实例
- 练习10: 在windows MFC窗口中用CImage显示图片
- Windows 10 UWP/Windows 10 Mobile GIF图片显示
- AJ学IOS 之微博项目实战(10)微博cell中图片的显示以及各种填充模式简介