超分辨数据集:Set5 Set14 BSD100 Urban100 Manga109

DIV2K数据集官网上很好找到,但是网上流传的Set5 14 BSD100,Urban100 Manga109都是私人进行处理过的版本,各个处理方式都不同,为了统一方式写了这篇文章。

官方的DIV2K x2、x3、x4的LR图片使用下面matlab代码生成(已经经过测试最后输出为0,就是差异为0)文末给出下载地址

DIV2K_hr = '0002.png';
savepath = 'tmp.png';
DIV2K_lr = '0002_x2.png';scale = 2;
hr_img = imread(DIV2K_hr);
%hr_img = im2double(hr_img);
lr_img = imread(DIV2K_lr);crop_img = modcrop(hr_img ,scale);
crop_lr_img = imresize(crop_img ,1/scale,'bicubic');
imwrite(crop_lr_img,savepath);
crop_lr_img = imread(savepath)
disp(max(crop_lr_img(:)-lr_img(:)))

但是x8的LR图片使用下面代码生成

DIV2K_hr = '0002.png';
savepath = 'tmp.png';
DIV2K_lr = '0002_x2.png';scale = 2;
hr_img = imread(DIV2K_hr);
hr_img = im2double(hr_img);
lr_img = imread(DIV2K_lr);crop_img = modcrop(hr_img ,scale);
crop_lr_img = imresize(crop_img ,1/scale,'bicubic');
imwrite(crop_lr_img,savepath);
crop_lr_img = imread(savepath)
disp(max(crop_lr_img(:)-lr_img(:)))

但是经过测试发现网上流传的很多Set5 14 BSD100,Urban100 Manga109并不是经过上面matlab生成的。也就是说你网络训练输入是matlab的LR,但是测试的时候输入的并不是matlab生成的LR。

为了统一,生成了一套和训练集相匹配格式的测试集。matlab代码使用如下(代码参考SRCNN):

运行代码前的数据目录格式:
  •  Set5
    • HR
      • 这里存放高清图片
  • Set14
    • HR
      • 这里存放高清图片
  •  Urban100
    • HR
      • 这里存放高清图片
  • Managa109
    • HR
      • 这里存放高清图片
  • BSD100
    • image_SRF_3
      • HR
        • 这里存放高清图片(由于x2 x4都是从x3的HR裁剪而来的,懒得更改源数据集格式)

最后生成目录:

  • 公共代码
%创建modcrop.m文件放入代码
function imgs = modcrop(imgs, modulo)if size(imgs,3)==1sz = size(imgs);sz = sz - mod(sz, modulo);imgs = imgs(1:sz(1), 1:sz(2));elsetmpsz = size(imgs);sz = tmpsz(1:2);sz = sz - mod(sz, modulo);imgs = imgs(1:sz(1), 1:sz(2),:);end
end
  • Set5,Set14,Urban100,Manga109 对应x2、x3、x4、x8代码
%主文件main.m
%适用Set5,Set14,Urban100,Manga109,更改对应路径就行了input_folder = '/MATLAB Drive/train/data/Urban100/HR';
save_mod_folder = '/MATLAB Drive/train/data/Urban100/image_SRF_';
filepaths = dir(fullfile(input_folder,'*.*'));for i=2:4lr_path = [save_mod_folder,num2str(i),'/LR'];hr_path = [save_mod_folder,num2str(i),'/HR'];check(lr_path)check(hr_path)for j = 1 : length(filepaths)[paths, img_name, ext] = fileparts(filepaths(j).name);if ext == '.png'img_hr = imread(fullfile(input_folder, [img_name, ext]));%img_hr = im2double(img_hr);crop_hr = modcrop(img_hr,i);imwrite(crop_hr,fullfile(hr_path, [img_name, ext]));img_lr = imresize(crop_hr,1/i,'bicubic');imwrite(img_lr,fullfile(lr_path, [img_name, ext]));endend
endfor i=8:8lr_path = [save_mod_folder,num2str(i),'/LR'];hr_path = [save_mod_folder,num2str(i),'/HR'];check(lr_path)check(hr_path)for j = 1 : length(filepaths)[paths, img_name, ext] = fileparts(filepaths(j).name);if ext == '.png'img_hr = imread(fullfile(input_folder, [img_name, ext]));img_hr = im2double(img_hr);crop_hr = modcrop(img_hr,i);imwrite(crop_hr,fullfile(hr_path, [img_name, ext]));img_lr = imresize(crop_hr,1/i,'bicubic');imwrite(img_lr,fullfile(lr_path, [img_name, ext]));endend
endfunction check(path)if exist(path, 'dir')disp(['It will cover ', path]);elsemkdir(path);end
end
  • 由于BSD使用x3的HR作为x2和x4、x8的裁剪之前的图片所以更改main.m中的代码
% BSD100 Function:
save_folder = '/MATLAB Drive/train/data/BSD100/image_SRF_';
for i=2:4input_folder = '/MATLAB Drive/train/data/BSD100/image_SRF_3/HR';hr_path = [save_folder,num2str(i),'/HR'];lr_path = [save_folder,num2str(i),'/LR'];filepaths = dir(fullfile(input_folder,'*.*'));check(lr_path);check(hr_path);for j = 1 : length(filepaths)[paths, img_name, ext] = fileparts(filepaths(j).name);if ext == '.png'img_hr = imread(fullfile(input_folder, [img_name, ext]));%img_hr = im2double(img_hr);crop_hr = modcrop(img_hr,i);imwrite(crop_hr,fullfile(hr_path, [img_name, ext]));img_lr = imresize(crop_hr,1/i,'bicubic');imwrite(img_lr,fullfile(lr_path, [img_name, ext]));endend
endfor i=8:8input_folder = '/MATLAB Drive/train/data/BSD100/image_SRF_3/HR';hr_path = [save_folder,num2str(i),'/HR'];lr_path = [save_folder,num2str(i),'/LR'];filepaths = dir(fullfile(input_folder,'*.*'));check(lr_path);check(hr_path);for j = 1 : length(filepaths)[paths, img_name, ext] = fileparts(filepaths(j).name);if ext == '.png'img_hr = imread(fullfile(input_folder, [img_name, ext]));img_hr = im2double(img_hr);crop_hr = modcrop(img_hr,i);imwrite(crop_hr,fullfile(hr_path, [img_name, ext]));img_lr = imresize(crop_hr,1/i,'bicubic');imwrite(img_lr,fullfile(lr_path, [img_name, ext]));endend
endfunction check(path)if exist(path, 'dir')disp(['It will cover ', path]);elsemkdir(path);end
end
下载链接

链接:https://pan.baidu.com/s/1qeftNHrWSjLxfhJCjfqNyw?pwd=9ag4 
https://drive.google.com/file/d/1Wk_OXbfFkNuWxIz23Ji56Ju4knH4DeFm/view?usp=drive_link

阿里云盘不支持压缩文件分享,而且一次最多分享200个文件,吐了,国产软件各有利弊吧

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/295456.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

单例模式实现

⭐ 作者:小胡_不糊涂 🌱 作者主页:小胡_不糊涂的个人主页 📀 收录专栏:JavaEE 💖 持续更文,关注博主少走弯路,谢谢大家支持 💖 单例模式 1. 什么是单例模式2. 饿汉模式3.…

帮助谷歌从40人裂变为60000人的OKR是啥?

OKR(Objectives and Key Results)是一种目标管理方法,旨在帮助组织和个人明确目标并衡量成功。在谷歌的发展过程中,OKR扮演了至关重要的角色,帮助公司从40人规模快速成长为60000人的科技巨头。 OKR适用于各种类型的企…

Git安装和使用教程,并以gitee为例实现远程连接远程仓库

文章目录 1、Git简介及安装2、使用方法2.1、Git的启动与配置2.2、基本操作2.2.1、搭建自己的workspace2.2.2、git add2.2.3、git commit2.2.4、忽略某些文件不予提交2.2.5、以gitee为例实现git连接gitee远程仓库来托管代码 1、Git简介及安装 版本控制(Revision cont…

阿里云吴结生:云计算是企业实现数智化的阶梯

云布道师 近年来,越来越多人意识到,我们正处在一个数据爆炸式增长的时代。IDC 预测 2027 年全球产生的数据量将达到 291 ZB,与 2022 年相比,增长了近 2 倍。其中 75% 的数据来自企业,每一个现代化的企业都是一家数据公…

数据校园服务管理系统,教育平台可视化界面(教育资源信息化PS文件)

大屏组件可以让UI设计师的工作更加便捷,使其更高效快速的完成设计任务。现分享大数据校园服务管理系统、科技教育平台大数据可视化界面、教育资源信息化大数据分析等Photoshop源文件,文末提供完整资料,供UI设计师们工作使用。 若需其他 大屏…

【快速开发】使用SvelteKit

自我介绍 做一个简单介绍,酒架年近48 ,有20多年IT工作经历,目前在一家500强做企业架构.因为工作需要,另外也因为兴趣涉猎比较广,为了自己学习建立了三个博客,分别是【全球IT瞭望】,【…

opencv入门到精通——OpenCV4.1.2之性能衡量与优化方法

目录 目标 使用OpenCV衡量性能 OpenCV中的默认优化 在IPython中衡量性能 更多IPython魔术命令 性能优化技术 目标 在图像处理中,由于每秒要处理大量操作,因此必须使代码不仅提供正确的解决方案,而且还必须以最快的方式提供。因此&#…

14、Qt使用Eigen3

一、下载Eigen Eigen 二、创建项目 创建一个"Qt Widget Application"项目,基类选择“QMainWindow“,把Eigen拷贝到项目中 三、更改代码 在.pro中添加 INCLUDEPATH $$PWD\Eigen 在界面上添加一个pushButton,并转到槽&#xff0…

零成本搭建一款博客网站(基于Vercel+Hexo完美实现)【保姆级教程】

文章目录 🐸基于VercelHexo零成本搭建博客网站🐻实现思路 🐮Hexo的配置与安装🐒Hexo的美化与使用🐫Github的推送与部署🐼Vercel部署与网站上线🐛总结 🐸基于VercelHexo零成本搭建博客…

神经网络:机器学习基础

【一】什么是模型的偏差和方差? 误差(Error) 偏差(Bias) 方差(Variance) 噪声(Noise),一般地,我们把机器学习模型的预测输出与样本的真实label…

Spring Boot Admin对SpringBoot服务进行监控

Spring Boot Admin对SpringBoot服务进行监控 前面文章使用 Spring Boot Actuator 监控应用介绍了 Spring Boot Actuator 的使用,Spring Boot Actuator 提供 了对单个 Spring Boot 的监控,信息包含:应用状态、内存、线程、堆栈等等&#xff…

【Proteus仿真】【Arduino单片机】智能垃圾桶设计

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真Arduino单片机控制器,使用报警模块、LCD1602液晶模块、按键模块、人体红外传感器、HCSR04超声波、有害气体传感器、SG90舵机等。 主要功能: 系统运行后&am…