SVNH数据(.mat格式)转为图像(.png)matlab代码
一、获取SVNH数据
数据集集地址-http://ufldl.stanford.edu/housenumbers/
提供两种格式的数据:
1.Format 1,图像形式,压缩包包括train.tar.gz和test.tar.gz。
Format 1 是一些原始的未经处理的彩色图片,如下图所示(不含有蓝色的边框),下载的数据集含有 PNG 的图像和 digitStruct.mat 的文件,其中包含了边框的位置信息,很多图片上有好几个数字
![](/assets/blank.gif)
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)。
![](/assets/blank.gif)
·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
![](/assets/blank.gif)
SVNH数据(.mat格式)转为图像(.png)matlab代码相关推荐
- 将RGB数据转为图片的MATLAB代码
利用MATLAB将R,G,B通道的像素值转换为图片 在进行硬件开发时,通常会产生R,G,B三个通道的像素数值,为了检验产生的像素数值是否正确 ,我们通常采用MATLAB代码将其还原成图像. MATLA ...
- 【图像分割】基于 K-means 聚类算法实现图像区域分割matlab代码
1 简介 对图像进行颜色区域分割.将图像转换到CIE L*a*b颜色空间,用K均值聚类分析算法对描述颜色的a*和b*通道进行聚类分析;通过提取各个颜色区域独立成为单色的新图像,对图像进行分割处理.实验 ...
- Illumina下机数据bcl格式转为fastq
BCL2FASTQ Illumina刚下机的数据为bcl格式文件(per-cycle BCL basecall file),但是下游的分析一般都需要fastq格式文件,所以在进行下游分析之前,需要使用 ...
- Pytorch学习笔记(八)——CWRU(西储大学轴承数据集)数据集如何从mat格式转为CSV文件
2022.4.5增加说明==== 鉴于很多读者询问代码没作用的问题,做一下解释 cwru数据集的目录如这样 子目录 file_path需要修改为自己的CWRU数据集的路径 save_file_path ...
- CWRU(西储大学轴承数据集)数据集如何从mat格式转为CSV文件-----转载
file_path需要修改为自己的CWRU数据集的路径 save_file_path需要修改为转换之后需要保存的转换为csv文件后的保存路径 记得路径后面 '\\' 然后代码运行之后没提示需要等一会转 ...
- 基于 K-means 聚类算法实现图像区域分割matlab代码
1 简介 对图像进行颜色区域分割.将图像转换到CIE L*a*b颜色空间,用K均值聚类分析算法对描述颜色的a*和b*通道进行聚类分析;通过提取各个颜色区域独立成为单色的新图像,对图像进行分割处理.实验 ...
- 图像的 matlab代码,常用的一些图像处理Matlab源代码
#1:数字图像矩阵数据的显示及其傅立叶变换 #2:二维离散余弦变换的图像压缩 #3:采用灰度变换的方法增强图像的对比度 #4:直方图均匀化 #5:模拟图像受高斯白噪声和椒盐噪声的影响 #6:采用二维中 ...
- matlab图像画框,matlab代码-图像上画框
matlab进行图像处理之后,很多时候需要在图像上画出矩形框:如,调用matlab的某个检测函数,得到结果之后,往往需要将检测结果的矩形框画在图像上,直观.方便的进行查看:下面的代码就是这个目的: f ...
- 图像隐藏matlab代码,picture Matlab简单操作实现图像的隐藏加密 联合开发网 - pudn.com...
picture 所属分类:其他 开发工具:Others 文件大小:15KB 下载次数:1 上传日期:2018-07-18 09:50:48 上 传 者:至尊宝物语 说明: Matlab简单操作实现图 ...
最新文章
- Curl 采集乱码 gzip 原因及解决方案 utf-8
- 数据结构实验之链表六:有序链表的建立
- 点击事件为什么会失效_耐高温润滑油脂为什么会失效?
- Unity 2017 Game Optimization 读书笔记 The Benefits of Batching
- React中的各个目录文件功能
- poj 2182 Lost Cows 解题报告
- [Leedcode][JAVA][面试题 01.07][找规律][旋转数组]
- information_schema系列五(表,触发器,视图,存储过程和函数)
- 《R数据可视化手册》——3.8 绘制百分比堆积条形图
- 自学python能做erp吗_erp系统可以自学吗?应该怎么学习?
- 实用目标检测典范PP-YOLOv2 来了!性能超越YOLOv5,推理耗时不变
- java 根据条码字体_barcode4j使用自定义字体生成条形码
- 对九个超级程序员的采访
- Ubuntu跳过开机自检
- echarts 中国地图+穿透
- 手写基于redis实现分布式限流器-pdlr
- arnold渲染器预览窗口打开时保存有可能崩溃,解决方法如下
- linux中lockf的例子,小何讲Linux: 文件锁及其实例
- 「云服务」华为云云耀云服务器介绍
- 各类数值型数据间的混合运算