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

news2024/9/21 22:40:48

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)==1
        sz = size(imgs);
        sz = sz - mod(sz, modulo);
        imgs = imgs(1:sz(1), 1:sz(2));
    else
        tmpsz = 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:4
    lr_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]));
        end
    end
end

for i=8:8
    lr_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]));
        end
    end
end

function check(path)
    if exist(path, 'dir')
        disp(['It will cover ', path]);
    else
        mkdir(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:4
    input_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]));
        end
    end
end

for i=8:8
    input_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]));
        end
    end
end

function check(path)
    if exist(path, 'dir')
        disp(['It will cover ', path]);
    else
        mkdir(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.coloradmin.cn/o/1325511.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

精细经营:为 Web3 游戏长期卓越奠定基石

作者:lesleyfootprint.network 随着越来越多的人涌入 Web3 游戏世界,构建精细化运营体系成为保持项目长期发展的关键。充分利用数据分析对于明智的决策至关重要,它能揭示用户行为、交易模式和市场趋势的内在奥秘。 基于数据驱动的决策、风险…

汤晓鸥:以科技改变世界,以教育照亮未来

原创 | 文 BFT机器人 汤晓鸥是我国人工智能领域的杰出代表,也是商汤科技的创始人。他在AI领域有着深厚的研究背景和丰富的实践经验,其主要研究方向是计算机视觉(CV)、模式识别和视频处理。 汤晓鸥积极推动AI技术的发展&#xff0…

uniapp实现豆瓣电影微信小程序(附源码)

演示 运行 基于本地代理1 npm run dev:proxy1基于本地代理2 npm run dev:proxy2基于nginx 代理 npm run dev:nginx目录结构 |__ douban # 本地代理|__ app.js # 方式 1|__ proxy.js …

深度学习的十大核心算法

引言 深度学习是人工智能领域中最热门和最具影响力的分支之一。其核心在于通过构建复杂的神经网络模型,从大量的数据中自动学习并提取出有用的特征,从而实现各种高级的任务,如图像识别、自然语言处理等。本文将介绍深度学习中的十大核心算法…

Linux之进程(五)(进程控制)

目录 一、进程创建 1、fork函数创建进程 2、fork函数的返回值 3、fork常规用法 4、fork调用失败的原因 二、进程终止 1、进程终止的方式 2、进程退出码 3、进程的退出方法 三、进程等待 1、进程等待的必要性 2、wait函数 3、waitpid函数 四、进程程序替换 1、概念…

c++11特性:右值引用的作用以及使用

右值: C11 增加了一个新的类型,称为右值引用( R-value reference),标记为 &&。在介绍右值引用类型之前先要了解什么是左值和右值: 1. lvalue 是locator value的缩写,rvalue 是 read v…

Swagger2接口测试文档

目录 一、Swagger简介 1.1 Swagger是什么? 1.2 为什么要用Swagger 1.3 Swagger注解 二、Spring集成Swagger 三、测试环境配置 一、Swagger简介 1.1 Swagger是什么? Swagger是一款RESTFUL接口的文档在线自动生成功能测试功能软件。Swagger是一个规…

(自适应手机版)英文外贸网站模板 - 带三级子目录

(自适应手机版)英文外贸网站模板 - 带三级子目录 PbootCMS内核开发的网站模板,该模板适用于外贸网站、英文网站类等企业,当然其他行业也可以做,只需要把文字图片换成其他行业的即可; 自适应手机版,同一个后台&#x…

数据安全扫描仪荣膺网络安全优秀创新成果大赛优胜奖 - 凸显多重优势

近日,由中国网络安全产业联盟(CCIA)主办、CCI数据安全工作委员会中国电子技术标准化研究院等单位承办的“2023年网络安全优秀创新成果大赛”获奖名单公布。天空卫士数据安全扫描仪(DSS)产品获得创新成果大赛优胜奖。 本…

从源码到实践:深入了解鸿鹄电子招投标系统与电子招投标

在数字化采购领域,企业需要一个高效、透明和规范的管理系统。通过采用Spring Cloud、Spring Boot2、Mybatis等先进技术,我们打造了全过程数字化采购管理平台。该平台具备内外协同的能力,通过待办消息、招标公告、中标公告和信息发布等功能模块…

JetBrains AI Assistant 最佳平替方案来了

先看看官方推荐 JetBrains IDE 中的 AI 助手 除了你自己,谁最了解你的项目?你的IDE!这就是为什么 AI Assistant 可以如此具有上下文感知能力和帮助性的原因。 JetBrains AI 服务采用不同的大型语言模型 (LLM)&#xf…

ChatGPT助力Excel数据分析:让你的工作事半功倍!

文章目录 一、ChatGPT简介二、ChatGPT在Excel数据分析中的应用1. 数据清洗2. 数据处理3. 数据分析4. 数据可视化 三、如何使用ChatGPT进行Excel数据分析1. 安装ChatGPT插件2. 输入问题或命令3. 查看结果并调整参数4. 导出结果并分享四、总结与展望 《巧用ChatGPT高效搞定Excel数…

想将电脑屏幕共享到iPhone上,但电脑是Linux系统,可行吗?

常见Windows系统或macOS系统的电脑投屏到手机,难道Linux系统的电脑要投屏就是个难题吗? 想要将Linux系统投屏到iPhone、iPad、安卓设备、鸿蒙设备,其实你可以利用软件AirDroid Cast和Chrome浏览器!连接同一网络就可以直接投屏。 第…

CSS自适应分辨率 amfe-flexible 和 postcss-pxtorem:大屏高宽自适应问题

前言 继上篇《CSS自适应分辨率 amfe-flexible 和 postcss-pxtorem》。 发现一个有趣的问题,文件 rem.js 中按照宽度设置自适应,适用于大多数页面,但当遇到大屏就不那么合适了。 问题 使用宽度,注意代码第2 和 4 行:…

Linux笔记---系统信息

🍎个人博客:个人主页 🏆个人专栏:Linux学习 ⛳️ 功不唐捐,玉汝于成 目录 前言 命令 1. uname - 显示系统信息 2. hostname - 显示或设置系统主机名 3. top - 显示系统资源使用情况 4. df - 显示磁盘空间使用情…

go语言函数二、init函数定义与作用

go语言init函数定义与作用 在go语言中,每一个源文件都可以包含一个init函数,这个函数会在main函数执行前,被go运行框架调用,注意是在main函数执行前。 package main import ("fmt" )func init() {fmt.Println("i…

【C++高阶(八)】单例模式特殊类的设计

💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:C从入门到精通⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你学习C   🔝🔝 单例模式 1. 前言2. 设计一个不能被拷贝/继承的…

顶级加密混淆混淆工具测评:ipagurd

摘要 JavaScript代码安全需求日益增长,因此JavaScript混淆工具的使用变得广泛。本文将对专业、商业JavaScript混淆工具ipagurd进行全面评估,通过比较其功能、操作便捷性、免费试用、混淆效果等方面,帮助开发者选择适合自己项目需求的工具。 …

stm32学习总结:4、Proteus8+STM32CubeMX+MDK仿真串口收发

stm32学习总结:4、Proteus8STM32CubeMXMDK仿真串口收发 文章目录 stm32学习总结:4、Proteus8STM32CubeMXMDK仿真串口收发一、前言二、资料收集三、STM32CubeMX配置串口1、配置开启USART12、设置usart中断优先级3、配置外设独立生成.c和.h 四、MDK串口收发…

在windows上如何干净的卸载一个软件及其快捷方式

可以在控制面板里面卸载,可以卸载掉文件夹及其快捷方式,具体操作如下: 找到-》控制面板\程序\程序和功能 然后右键某一项,即可出现卸载功能项。 卸载不干净的方法:利用软件商店卸载,有可能卸载失败&#x…