超分辨数据集: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=sharing

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

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

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

相关文章

Linux构建NFS远程共享存储和ftp配置

NFS架构 NFS介绍 文件系统级别共享(是NAS存储) --------- 已经做好了格式化,可以直接用。 速度慢比如:nfs,samba NFS:Network File System 网络文件系统,NFS 和其他文件系统一样,是在 Linux …

智能优化算法应用:基于卷积优化算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于卷积优化算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于卷积优化算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.卷积优化算法4.实验参数设定5.算法结果6.…

2022第十二届PostgreSQL中国技术大会-核心PPT资料下载

一、峰会简介 本次大会以“突破•进化•共赢 —— 安全可靠,共建与机遇”为主题,助力中国数据库基础软件可掌控、可研究、可发展、可生产,并推动数据库生态的繁荣与发展。大会为数据库从业者、数据库相关企业、数据库行业及整个IT产业带来崭…

OpenAI科学家Hyung Won Chung演讲精华版

文章目录 第一个观点:涌现第二个观点:如何扩大规模1、标记化2、嵌入3、计算4、评估(损失函数)5、反向传播 最近从Google跳槽到OpenAI的AI科学家 Hyung Won Chung 比较拗口,我就简称尚哥了 他最近做了一个技术演讲 …

STM32MP157D-DK1开发板Qt镜像构建

上篇介绍了STM32MP57-DK1开发板官方系统的烧录。那个系统包含Linux系统的基础功能,如果要进行Qt开发,还需要重新构建带有Qt功能的镜像 本篇就来介绍如何构建带有Qt功能的系统镜像,并在开发板中烧录构建的镜像。 1 Distribution包的构建 ST…

mySQL事务与存储引擎

目录 mySQL事务 1.事务的概念 2.事务的ACID特点 3.多客户端同时访问一个表时,出现的一致性问题 4.事务的隔离级别 5.事务的隔离级别作用范围 查询全局事务隔离级别 设置全局事务隔离级别 ​编辑查询会话事务隔离级别 设置会话事务隔离级别 6.事务控制语句…

python 解决手机拍的书籍图片发灰的问题

老师给发的作业经常是手机拍的,而不是扫描,背景发灰,如果二次打印就没有看了,象这样: 如果使用photoshop 处理,有些地方还是扣不干净,不如python 做的好,处理后如下: 具体…

java数据结构与算法刷题-----LeetCode167:两数之和 II - 输入有序数组

java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846 思路 题目要求我们找到两个数相加的和,等于target指定的值。而…

每日一题——LeetCode914

方法一 个人解法: 因为分组后每组里的数字要是相同的,所以先把有几种数字,每种数字有几张都统计出来用group数组保存,并同时记录最少的张数min。按照要求每组至少要有2张牌,所以可以直接排除最少张数为1的。如果整副…

Python深度学习029:pytorch中常用的模块或方法

PyTorch是一个广泛使用的深度学习库,提供了许多用于构建和训练神经网络的模块和方法。下面是一些PyTorch中常用的模块和方法的简要介绍: PyTorch常用模块和方法 torch 用途:PyTorch的基础模块,提供了多种数学运算功能。常用方法: torch.tensor():创建张量torch.randn():…

Grafana高可用-LDAP

一. grafana高可用 1. 迁移之前的 grafana sqlitedump.sh #!/bin/bash DB$1 TABLES$(sqlite3 $DB .tables | sed -r s/(\S)\s(\S)/\1\n\2/g | grep -v migration_log) for t in $TABLES; doecho "TRUNCATE TABLE $t;" done for t in $TABLES; doecho -e ".mode…

Spring Boot学习随笔- 第一个Thymeleaf应用(基础语法th:,request、session作用域取值)

学习视频:【编程不良人】2021年SpringBoot最新最全教程 第十五章、Thymeleaf Thymeleaf是一种现代化的服务器端Java模板引擎,专门用于Web和独立环境。Thymeleaf在有网络和无网络的环境下皆可运行,即可以让美工在浏览器查看页面的静态效果&am…

less 查看文本时,提示may be a binary file.See it anyway?

解决办法 首先使用echo $LESSCHARSET查看less的编码 看情况设置less的编码格式(我的服务器上使用utf-8查看中文) 还要特别注意一下,Linux中存在的文本文件的编码一定要是utf - 8;(这一步很关键) 例如:要保证windows上传到Linux的…

【机器学习】模式识别

1 概述 模式识别,简单来讲,就是分类问题。 模式识别应用:医学影像分析、人脸识别、车牌识别、遥感图像 2 模式分类器 分类器的分类:线性分类器、非线性分类器、最近邻分类器 2.1 分类器的训练(学习)过…

【DevOps 工具链】软件版本号命名规范 - 3种规则(读这一篇就够了)

文章目录 1、简述2、常见软件的版本号命名规则3、版本号命名规范整理3.1、XYZ/MMP3.1.1、规则3.1.2、确定3.1.3、举例3.1.4、详细规则 3.2、XYZD/MMPD3.3、VRC3.3.1、规则3.3.2、对"Vxxx"的说明3.3.3、对"Rxxx"的说明3.3.4、对"LLL"的说明3.3.5、…

MyBatis:Generator

MyBatis Generator附批量操作分页查询存储过程 Generator 介绍网址:Introduction to MyBatis Generator Generator ,一个用于 MyBatis 的代码生成工具,可以根据数据库表结构自动生成对应的实体类、DAO 接口和 SQL 映射文件,提高…

使用Visual Studio调试VisionPro脚本

使用Visual Studio调试VisionPro脚本 方法一 : 修改项目文件 csproj步骤: 方法二 : Visual Studio附加功能步骤: 方法一 : 修改项目文件 csproj 步骤: 开启VisionPro脚本调试功能 创建一个VisionPro程序…

【MySQL学习笔记009】事务

一、事务简介 事务是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。 二、事务操作 1、操作1 查看/设置事务提交方式 select a…

竞赛保研 基于YOLO实现的口罩佩戴检测 - python opemcv 深度学习

文章目录 0 前言1 课题介绍2 算法原理2.1 算法简介2.2 网络架构 3 关键代码4 数据集4.1 安装4.2 打开4.3 选择yolo标注格式4.4 打标签4.5 保存 5 训练6 实现效果6.1 pyqt实现简单GUI6.3 视频识别效果6.4 摄像头实时识别 7 最后 0 前言 🔥 优质竞赛项目系列&#xf…

07 Vue3框架简介

文章目录 一、Vue3简介1. 简介2. 相关网站3. 前端技术对比4. JS前端框架5. Vue核心内容6. 使用方式 二、基础概念1. 创建一个应用2. 变量双向绑定(v-model)3. 条件控制(v-if)4. 数组遍历(v-for)5. 绑定事件…