一、获取SVNH数据

数据集集地址-http://ufldl.stanford.edu/housenumbers/

提供两种格式的数据:

1.Format 1,图像形式,压缩包包括train.tar.gz和test.tar.gz。

Format 1 是一些原始的未经处理的彩色图片,如下图所示(不含有蓝色的边框),下载的数据集含有 PNG 的图像和 digitStruct.mat 的文件,其中包含了边框的位置信息,很多图片上有好几个数字

2.Format 2, .mat格式的数据,包括train_32x32.mat和 test_32x32.mat

·10 classes, 1 for each digit. Digit '1' has label 1, '9' has label 9 and '0' has label 10.

(注意0的标签是10,在后续处理需要修改为0,保持与mnist数据集一致方便使用。)

·73257 digits for training, 26032 digits for testing, and 531131 additional, somewhat less difficult samples, to use as extra training data。4-D数据格式对应(width, height, channels, samples),大小为(32*32*3*73257)。

·Comes in two formats:

1. Original images with character level bounding boxes.

2. MNIST-like 32-by-32 images centered around a single character (many of the images do contain some distractors at the sides).

二、将.mat形式数据转换为'.png'图像

图像分别存在1-10命名的10个文件夹中,并以原始的序号命名。10在保存完图后改为0。

注:这步的操作主要是为了方便后续dataset.ImageFolder处理,其要求数据存储的文件路径格式为

├── svhn

├── trainset

│ ├── subfolders for 1 ~ 10

├── testset

具体转换的matlab代码如下:

%将SVHN数据的.mat形式转换为图像并分别存在trainset和testset文件夹下
%这两个文件夹中分别包含1-10命名的10个文件夹,其中存图像
clear;clc;
%1.创建trainset和testset文件夹
train_filename = 'trainset';
if exist(train_filename)==0 %该文件夹不存在,则直接创建mkdir(train_filename);
end
test_filename = 'trainset';
if exist(test_filename)==0 %该文件夹不存在,则直接创建mkdir(test_filename);
end
% mkdir('trainset');
% mkdir('testset');%2.分别在trainset和testset文件夹下创建1-10命名的文件夹,用于存图
load train_32x32.mat;
labels = unique(y);
fileNums = length(labels);
savepath = './trainset';
makefile(fileNums, savepath);savepath = './testset';
makefile(fileNums, savepath);% 3.分别在对应标签的文件夹下存图
% for traindata
load train_32x32.mat;
savepath = './trainset/';
img_num = length(y);%size(X,4);
for i = 1:img_numimg = X(:,:,:,i);imshow(img);n = y(i);choosensaveimg(img,n,i,savepath);
end% for testdata
load test_32x32.mat;
savepath = './testset/';
img_num = length(y);%size(X,4);
for i = 1:img_numimg = X(:,:,:,i);imshow(img);n = y(i);choosensaveimg(img,n,i,savepath);
end% fun2:在文件1-10保存图片
function choosensaveimg(img,n,i,savepath)
switch ncase 1imwrite(img,strcat(savepath,'1/',num2str(i),'.png'));case 2imwrite(img,strcat(savepath,'2/',num2str(i),'.png'));%该数据集本身是.png.mnist是'.jpg'case 3imwrite(img,strcat(savepath,'3/',num2str(i),'.png'));case 4imwrite(img,strcat(savepath,'4/',num2str(i),'.png'));case 5imwrite(img,strcat(savepath,'5/',num2str(i),'.png'));case 6imwrite(img,strcat(savepath,'6/',num2str(i),'.png'));case 7imwrite(img,strcat(savepath,'7/',num2str(i),'.png'));case 8imwrite(img,strcat(savepath,'8/',num2str(i),'.png'));case 9imwrite(img,strcat(savepath,'9/',num2str(i),'.png'));case 10 %原始数据 0 的标签是 10,将转换的图像存在文件夹0,相当于标签转化成 0imwrite(img,strcat(savepath,'0/',num2str(i),'.png'));
end
end% fun1:创建1-10的文件夹
function makefile(fileNums, savepath)
for i=1:fileNumsfile_name = sprintf('%s',num2str(i));file_path_name_ = strcat(savepath,'/',file_name,'');if exist(file_path_name_)==0 %该文件夹不存在,则直接创建mkdir(file_path_name_);else %该文件夹存在,则先删除再创建rmdir(file_path_name_, 's'); %该文件夹中有没有文件均可mkdir(file_path_name_);end
end
end

SVNH数据(.mat格式)转为图像(.png)matlab代码相关推荐

  1. 将RGB数据转为图片的MATLAB代码

    利用MATLAB将R,G,B通道的像素值转换为图片 在进行硬件开发时,通常会产生R,G,B三个通道的像素数值,为了检验产生的像素数值是否正确 ,我们通常采用MATLAB代码将其还原成图像. MATLA ...

  2. 【图像分割】基于 K-means 聚类算法实现图像区域分割matlab代码

    1 简介 对图像进行颜色区域分割.将图像转换到CIE L*a*b颜色空间,用K均值聚类分析算法对描述颜色的a*和b*通道进行聚类分析;通过提取各个颜色区域独立成为单色的新图像,对图像进行分割处理.实验 ...

  3. Illumina下机数据bcl格式转为fastq

    BCL2FASTQ Illumina刚下机的数据为bcl格式文件(per-cycle BCL basecall file),但是下游的分析一般都需要fastq格式文件,所以在进行下游分析之前,需要使用 ...

  4. Pytorch学习笔记(八)——CWRU(西储大学轴承数据集)数据集如何从mat格式转为CSV文件

    2022.4.5增加说明==== 鉴于很多读者询问代码没作用的问题,做一下解释 cwru数据集的目录如这样 子目录 file_path需要修改为自己的CWRU数据集的路径 save_file_path ...

  5. CWRU(西储大学轴承数据集)数据集如何从mat格式转为CSV文件-----转载

    file_path需要修改为自己的CWRU数据集的路径 save_file_path需要修改为转换之后需要保存的转换为csv文件后的保存路径 记得路径后面 '\\' 然后代码运行之后没提示需要等一会转 ...

  6. 基于 K-means 聚类算法实现图像区域分割matlab代码

    1 简介 对图像进行颜色区域分割.将图像转换到CIE L*a*b颜色空间,用K均值聚类分析算法对描述颜色的a*和b*通道进行聚类分析;通过提取各个颜色区域独立成为单色的新图像,对图像进行分割处理.实验 ...

  7. 图像的 matlab代码,常用的一些图像处理Matlab源代码

    #1:数字图像矩阵数据的显示及其傅立叶变换 #2:二维离散余弦变换的图像压缩 #3:采用灰度变换的方法增强图像的对比度 #4:直方图均匀化 #5:模拟图像受高斯白噪声和椒盐噪声的影响 #6:采用二维中 ...

  8. matlab图像画框,matlab代码-图像上画框

    matlab进行图像处理之后,很多时候需要在图像上画出矩形框:如,调用matlab的某个检测函数,得到结果之后,往往需要将检测结果的矩形框画在图像上,直观.方便的进行查看:下面的代码就是这个目的: f ...

  9. 图像隐藏matlab代码,picture Matlab简单操作实现图像的隐藏加密 联合开发网 - pudn.com...

    picture 所属分类:其他 开发工具:Others 文件大小:15KB 下载次数:1 上传日期:2018-07-18 09:50:48 上 传 者:至尊宝物语 说明:  Matlab简单操作实现图 ...

最新文章

  1. Curl 采集乱码 gzip 原因及解决方案 utf-8
  2. 数据结构实验之链表六:有序链表的建立
  3. 点击事件为什么会失效_耐高温润滑油脂为什么会失效?
  4. Unity 2017 Game Optimization 读书笔记 The Benefits of Batching
  5. React中的各个目录文件功能
  6. poj 2182 Lost Cows 解题报告
  7. [Leedcode][JAVA][面试题 01.07][找规律][旋转数组]
  8. information_schema系列五(表,触发器,视图,存储过程和函数)
  9. 《R数据可视化手册》——3.8 绘制百分比堆积条形图
  10. 自学python能做erp吗_erp系统可以自学吗?应该怎么学习?
  11. 实用目标检测典范PP-YOLOv2 来了!性能超越YOLOv5,推理耗时不变
  12. java 根据条码字体_barcode4j使用自定义字体生成条形码
  13. 对九个超级程序员的采访
  14. Ubuntu跳过开机自检
  15. echarts 中国地图+穿透
  16. 手写基于redis实现分布式限流器-pdlr
  17. arnold渲染器预览窗口打开时保存有可能崩溃,解决方法如下
  18. linux中lockf的例子,小何讲Linux: 文件锁及其实例
  19. 「云服务」华为云云耀云服务器介绍
  20. 各类数值型数据间的混合运算

热门文章

  1. 十大排序算法思想和代码总结(Python版)
  2. JcJc 中文错别字在线检查服务
  3. Android Studio中sqlite的使用
  4. 突发事件应急通信保障系统解决方案
  5. CentOS 8.3 VNC
  6. ITeye,还IT淫一个简洁的首页吧!
  7. 【事件图谱】事件图谱的应用
  8. ReleaseMutex用法
  9. Profile 是什么意思
  10. 基于JAVA高校后勤保修系统计算机毕业设计源码+数据库+lw文档+系统+部署