当前位置: 首页 > news >正文

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

一、获取SVNH数据

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

提供两种格式的数据:

1.Format 1,图像形式,压缩包

2.Format 2, .mat格式的数据

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

·73257 digits for training, 26032 digits for testing, and 531131 additional, somewhat less difficult samples, to use as extra training data

·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个文件夹中,并以原始的序号命名

注:这步的操作主要是为了方便后续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);
savepath = './trainset';
fileNums = length(labels);
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 10imwrite(img,strcat(savepath,'10/',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

http://www.lryc.cn/news/11222.html

相关文章:

  • 【总结】vim教程与详细命令总结,该来的躲不掉啊晕
  • git基础使用
  • 基于 RANSAC 的地面分割与聚类算法
  • JVM内存模型深度剖析与优化
  • 软件性能测试定义中文
  • 2023情人节正经性生活调研报告
  • 22- 隐马尔科夫HMM (NLP自然语言算法) (算法)
  • gRPC是什么,怎么用
  • linux基本功系列之fdisk命令实战
  • Mysql UDF提权复现Raven2
  • 枚举类(enum)
  • 腾讯云架构师亲码“redis深度笔记”,从入门到精通,面面俱到
  • 萌新应该如何开始学习走向自动化测试高薪岗位?
  • -bash: pip: command not found
  • 使用HTTP隧道代理,请求超过频率要怎么办?
  • paddle 49 ODConv的可部署调整
  • C++ STL 学习之【string】
  • 使用开源 MaxKey 与 APISIX 网关保护你的 API
  • Linux之Xshell工具使用
  • 【数据结构与算法】时间复杂度与空间复杂度
  • Nginx如何配置Http、Https、WS、WSS的方法步骤
  • 【博客621】iptables -J动作总结
  • Chrome开发者工具:利用网络面板做性能分析
  • SpringCloud系列(十三)[分布式搜索引擎篇] - ElasticSearch 的概念及 Centos 7 下详细安装步骤
  • 04_Docker 镜像和仓库
  • postman-enterprise-API
  • 【ESP 保姆级教程】玩转emqx MQTT篇② ——保留消息和遗嘱消息
  • 开启慢查询日志方法
  • 宝塔搭建实战人才求职管理系统admin前端vue源码(二)
  • SpringMVC——基础知识