CIFAR10 /CIFAR100数据集的 下载、简介、处理 可视化

目录

 

一、下载数据集

二、数据读取

三、总的程序代码 


一、下载数据集

官网下载地址:http://www.cs.toronto.edu/~kriz/cifar.html

关于数据集的描述,可以参考 CIFAR10/CIFAR100 数据集介绍

.tar.gz 文件的解压,可以参考 Windows环境下如何解压.tar.gz压缩文件

二、数据读取

笔者下载的是 CIFAR100 的 Matlab 版本,这里以读取其中的数据为主,标签基本不用处理。

训练数据 - 一个 50000x3072 uint8 的矩阵。矩阵的每一行存储 32x32 彩色图像即每一行存储 32*32=3072 个数字信息。前 1024 个条目包含红色通道值,下一个 1024 个绿色,最后 1024 个蓝色。图像以行优先顺序存储,即数组的前 32 个条目是图像第一行的红色通道值。

1、以一张图片为例,将图片转换为 32*32*3 的格式,并显示

% 取第一行 -> 第一张图片的 RGB 数据
temp1 = data(1,:);
% 直接转换成 32*32*3 的形式,第一页是红色通道……
temp2 = reshape(temp1,32,32,3);
% 由于 reshape 转换时是按列存放数据,导致前图像第一行红色通道的值变到了第一列,
% 所以这里需要将每一页转置一下
im = permute(temp2,[2,1,3]);

2、将数据转换成图片存储

% 路径 + 文件名
pathdest = strcat('CIFAR-100\TEST\',fine_label_names{fine_labels(i)+1},'\',filenames{i});
% 储存图片
imwrite(im,pathdest,'png');

P.s.:图片的存储可以选择不要,记录这种方法,以便后续使用

三、总的程序代码 

clc;
clear;
load('meta.mat');
% Create folders
for i=1:length(fine_label_names)
    mkdir('CIFAR-100\TEST\',fine_label_names{i});
    mkdir('CIFAR-100\TRAIN\',fine_label_names{i});
end
% Training images
load('train.mat');
trainY = double(fine_labels);
train = cell(50000,1);
for i=1:50000
    
    % 转换成正常的图片数据格式
    temp1 = data(i,:);
    temp2 = reshape(temp1,32,32,3);
    im = permute(temp2,[2,1,3]);
    % 将图片转成灰度图像,并改变数据类型
    train{i} = double(rgb2gray(im));
    
    % 存储图片
    pathdest = strcat('CIFAR-100\TRAIN\',fine_label_names{fine_labels(i)+1},'\',filenames{i});
    imwrite(im,pathdest,'png');
end
% Test images
load('test.mat');
testY = double(fine_labels);
test = cell(10000,1);
for i=1:10000
    
    temp1 = data(i,:);
    temp2 = reshape(temp1,32,32,3);
    im = permute(temp2,[2,1,3]);
    
    test{i} = double(rgb2gray(im));
    
    pathdest = strcat('CIFAR-100\TEST\',fine_label_names{fine_labels(i)+1},'\',filenames{i});
    imwrite(im,pathdest,'png');
end

参考资料:

https://blog.csdn.net/u013555719/article/details/79343353/

https://www.mathworks.com/matlabcentral/answers/329597-save-cifar-100-images

http://www.cs.toronto.edu/~kriz/cifar.html

求助~ 感觉粘贴的 Matlab 代码显示不是很友好,颜色搭配很奇怪,代码类型又没法选 Matlab,有知道怎么处理的吗,麻烦告知一下,谢谢

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值