超分辨率重建数据集制作:生成低分辨率数据集

超分辨率数据集(待填坑版) 超分辨率 阅读详情
AI摘要

该博客介绍了如何使用Python和OpenCV实现图像的超分辨率降质过程,包括Bicubic插值(BI)和高斯模糊+双三次插值(BD)方法。作者提供了可运行的代码示例,用于创建不同倍率的低分辨率图像,并对比了Python实现与MATLAB实现可能存在的差异。此外,还提到了图像采集和裁剪的注意事项,以及相关资源链接。

目录

背景

代码

结果

 其他


注意:

超分主流有两种BI、BD。

1.实际上公认的是使用MATLAB进行插值。

2.Bicubic(双三次插值)方式。(BI方式)

3.高斯模糊+双三次插值是另一种常用方式(BD方式)。

4.目前有使用Python实现的上述BI、BD,但或多或少还是有差异。

这里python实现必定和matlab实现之间有差别,使用时注意。

(希望你务必看一下这一篇文章:图像/视频超分之降质过程)(我写一篇相关的文章,补充一下前者未说明的引文部分图像超分辨率数据集这一篇足够了,你需要注意什么?_Alocus_的博客-优快云博客)

1.背景

超分辨率重建任务需要高清和对应的低质图像。由于需要自己制作超分辨率重建数据集,需要将高分辨率图像制作为低分辨率图像,我根据网上代码,按照我的需要(高斯模糊和双三次插值,基于OPENCV)进行了构造。

2.代码

可运行代码如下:(修改输入和输出路径 ,直接运行即可,路径需要英文)

import os
import argparse
import cv2

#parse args
parser = argparse.ArgumentParser(description='Downsize images at 2x using bicubic interpolation')
parser.add_argument("-k", "--keepdims", help="keep original image dimensions in downsampled images", action="store_true")
parser.add_argument('--hr_img_dir', type=str, default=r'C:\Users\Administrator\Desktop\input',
                    help='path to high resolution image dir')
parser.add_argument('--lr_img_dir', type=str, default=r'C:\Users\Administrator\Desktop\result',
                    help='path to desired output dir for downsampled images')
args = parser.parse_args()

hr_image_dir = args.hr_img_dir
lr_image_dir = args.lr_img_dir

print(args.hr_img_dir)
print(args.lr_img_dir)


#create LR image dirs
os.makedirs(lr_image_dir + "/X2", exist_ok=True)
os.makedirs(lr_image_dir + "/X3", exist_ok=True)
os.makedirs(lr_image_dir + "/X4", exist_ok=True)
os.makedirs(lr_image_dir + "/X6", exist_ok=True)

supported_img_formats = (".bmp", ".dib", ".jpeg", ".jpg", ".jpe", ".jp2",
                         ".png", ".pbm", ".pgm", ".ppm", ".sr", ".ras", ".tif",
                         ".tiff")

#Downsample HR images
for filename in os.listdir(hr_image_dir):
    if not filename.endswith(supported_img_formats):
        continue

    name, ext = os.path.splitext(filename)

    #Read HR image
    hr_img = cv2.imread(os.path.join(hr_image_dir, filename))
    hr_img_dims = (hr_img.shape[1], hr_img.shape[0])

    #Blur with Gaussian kernel of width sigma = 1
    hr_img = cv2.GaussianBlur(hr_img, (0,0), 1, 1)
    #cv2.GaussianBlur(hr_img, (0,0), 1, 1)   其中模糊核这里用的0。两个1分别表示x、y方向的标准差。 可以具体查看该函数的官方文档。
    #Downsample image 2x
    lr_image_2x = cv2.resize(hr_img, (0,0), fx=0.5, fy=0.5, interpolation=cv2.INTER_CUBIC)
    if args.keepdims:
        lr_image_2x = cv2.resize(lr_image_2x, hr_img_dims, interpolation=cv2.INTER_CUBIC)

    cv2.imwrite(os.path.join(lr_image_dir + "/X2", filename.split('.')[0]+'x2'+ext), lr_image_2x)

    #Downsample image 3x
    lr_img_3x = cv2.resize(hr_img, (0, 0), fx=(1 / 3), fy=(1 / 3),
                           interpolation=cv2.INTER_CUBIC)
    if args.keepdims:
        lr_img_3x = cv2.resize(lr_img_3x, hr_img_dims,
                               interpolation=cv2.INTER_CUBIC)
    cv2.imwrite(os.path.join(lr_image_dir + "/X3", filename.split('.')[0]+'x3'+ext), lr_img_3x)

    # Downsample image 4x
    lr_img_4x = cv2.resize(hr_img, (0, 0), fx=0.25, fy=0.25,
                           interpolation=cv2.INTER_CUBIC)
    if args.keepdims:
        lr_img_4x = cv2.resize(lr_img_4x, hr_img_dims,
                               interpolation=cv2.INTER_CUBIC)
    cv2.imwrite(os.path.join(lr_image_dir + "/X4", filename.split('.')[0]+'x4'+ext), lr_img_4x)

    # Downsample image 6x
    lr_img_6x = cv2.resize(hr_img, (0, 0), fx=1/6, fy=1/6,
                           interpolation=cv2.INTER_CUBIC)
    if args.keepdims:
        lr_img_6x = cv2.resize(lr_img_6x, hr_img_dims,
                               interpolation=cv2.INTER_CUBIC)
    cv2.imwrite(os.path.join(lr_image_dir + "/X6", filename.split('.')[0]+'x6'+ext), lr_img_6x)

3.结果

我的目录以及最后生成的截图

 ​

​

 ​

 ​

 4.其他

另外我在前期采集图像以及制作的过程中,需要从pdf中截取图像,以及对图像进行裁剪,裁剪后需要裁剪为2,3,4的倍数,且其中宽或者高需要为2040像素,请查看我的另外文章:

超分辨率重建数据集制作:高分辨率图像采集(从pdf中获取图像)_Alocus的博客-优快云博客

用双三次插值bicubic生成高分辨率图像的代码,可用于论文中的对照实验

超分辨率重建双三次插值上采样生成高分辨率图像_Alocus_的博客-优快云博客

通过MATLAB公认利用bicubic生成低分辨率(BI)方法,公认的模糊(BD)方法,公认的模糊和下采样DN方法。实现代码汇总:

超分辨率重建生成低分辨率图像,生成降质图像公认方法代码_Alocus_的博客-优快云博客

超分辨率——基于SRGAN的图像超分辨率重建(Pytorch实现) 基于SRGAN的图像超分辨率重建 本文偏新手项,因此只是作为定性学习使用,因此不涉及最后的定量评估环节 1 简要介绍 SRGAN的原论文发表于CVPR2017,即《Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network》 SRGAN使用了生成对抗的方式来进行图像的超分辨率重建,同时提出了一个由Adversarial Loss和Content Loss组成的损失函数。 更详细的介绍可以去看看 阅读详情

相关推荐

单图像超分辨率重建总结

单图像超分辨率重建(Single Image Super-resolution Reconstruction,SISR)旨在从给定的低分辨率(LR)图像中,重建含有清晰细节特征的高分辨率(HR)图像,是计算机视觉中较为底层的任务。

weixin_43800577的博客 1万+

超分数据集概述和超分经典网络模型总结

现有的数据集主要分为两种类型1、只采集HR图像的数据集,如DIV2K,DIV8K等数据集,对于此类数据集可采用不同的退化方式获取相应的LR图像,从而构造匹配的LR-HR训练图像对,以这种方式获得的训练数据集一般被称为合成数据集。2、直接采集同一场景不同分辨率的图像,从而获取LR-HR图像对的数据集,如RealSR,DRealSR等数据集,这类训练数据集一般被称为真实数据集。

不要给自己设限,尝试更多可能(思所向 皆可往) 6123

深度学习(6):图像超分辨率(Image Super Resolution)重建

GAN图像超分辨率重建

liuyingshudian的博客 8441

超分辨率重建——SAN训练自己数据集及推理测试(详细图文教程)

超分辨率重建——SAN网络训练自己数据集及推理测试

qq_40280673的博客 3306

超分辨率重建——(一)何为超分和分类

图像超分辨重建 图像超分辨率(SR)是计算机视觉中提高图像和视频分辨率的一类重要技术。图像超分辨率重建( Super-resolution Reconstruction,SR) 是由一张或多张低分辨率图像得到高分辨率图像的过程. 存在问题: 传统图像 SR 算法包括基于重构和基于样例学习的方法,这些方法普遍难以恢复高频细节信息,导致重建图像模糊且计算复杂、实时性不高等问题,不适用于大放大因子( 如 × 4、× 8) 的要求. 为解决这些问题,近年来人们将深度学习用于图像 SR 中. 如今,基于深度学习

victor_fa的博客 8038

SRGAN——使用与超分辨率重建的GAN

  SRGAN数据GAN理论在超分辨率重建(SR)方面的应用。 一、超分辨率技术 1.SR技术介绍   SR技术,是指从观测到的低分辨率图像重建出相对应的高分辨率图像,在监控设备、卫星图像和医学影像等领域都有重要的应用价值,也可以应用于马赛克图片的恢复应用场景。   SR可分为两类:从多张低分辨率图像重建出高分辨率图像;从单张低分辨率图像重建出高分辨率图像。基于深度学习的SR,主要是基于单张低分辨率的重建方法,即Single Image Super-Resolution(SISR)。   SISR是一个逆问

新手的博客 7248

扩散模型算法实战——低分辨率图像超分辨率重建

在众多算法中,基于扩散模型的SRDiff算法在超分辨率重建任务中表现出了优异的性能。下面简要介绍该算法的基本原理。超分辨率重建算法的性能评估依赖于高质量的数据集。

m0_65481401的博客 2628

超分辨率重建:ESPCN与SRGAN技术对比

超分辨率重建:ESPCN与SRGAN技术对比​ 人工智能,计算机视觉,大模型,AI,超分辨率重建是一种通过技术手段,将低分辨率图像转换为高分辨率图像的过程。它的目的是恢复低分辨率图像中丢失的细节信息,使图像具有更高的清晰度和视觉质量。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 7万+

超分辨率——基于SRResNet的图像超分辨率重建(Pytorch实现)

基于SRResNet的图像超分辨率重建 因为事务繁忙,所以博客好久都没有更新了,今天难得有空更新一下。 1. 任务描述 使用Pytorch实现SRResNet模型。 2. 知识准备 2.1 图像超分辨率 像超分辨率是指从低分辨率图像中恢复出自然、清晰的纹理,最终得到一张高分辨率图像,是图像增强领域中一个非常重要的问题。近年来,得益于深度学习技术强大的学习能力,该问题有了显著的进展1。 2.2 SRResNet SRResNet 网络来源于SRGAN的生成器,允许修复更高频的细节。SRResNet上存在两个

Elwin的博客 2万+

超分测试数据集-2、3、4、8倍重建

总共五个超分重建的测试数据集,BSD100、set5、set14、Sun-Hays80、Urban100;大家酌情下载就好,没有积分的话,可以私信我,我发给你们也可以的!

图像超分辨率重建数据集

内含Set5,Set14,91image,General-100,BSD100(test),BSD200(train),BSD500等常见超分辨率重建数据集

超分辨率重建生成低分辨率图像,生成降质图像公认方法代码

目录 1背景 2.BI 3.BD 4.DN 1背景 超分辨率重建中经典的生成降质图像通常使用MATLAB实现的,通常有四种方法: 类型 说明 BI bicubic-down BD blur-down BN bicubic-down+noise DN blur-down+noise 详细参考图像/视频超分之降质过程 其中最常用的是BI,其次是BD,最后是DN。那我将其公认实现和出处总结起来,供大家参考。 2.BI 下面是通过MATLA.

Alocus的博客 4698

【Unity3D】RTS Engine 笔记一

RTS Engine 中配置一个新场景, 初步认识GameManager、设置地形以及配置地形网格搜索

ViYeye的博客 1652

超分辨率重建数据集制作:高分辨率图像采集(从pdf中获取图像)

背景 嗯嗯 代码 ee 其他 ee

Alocus的博客 3223

【学习体会】Lighttools8.4.0:简单光学系统实例

添加球型光源(SphereSource)和表面接收器: 对光线模拟的参数进行设置: 光线追踪-模拟输入 要追踪的光线总数,决定模拟的准确度,总数越多,准确度越高,当然耗时更多 预览光线数量是模拟之后可以看到的示意光线(黑线),一般是100~1000,随意设置 点击,开始模拟: (模拟结果) 如果光线太多,则会出现,可以看到剩余时间 照度分析: 分析-照度显示-光栅图表 ...

LeonJin的博客 1万+

VS Code/TRAE集成Cppcheck并启用MISRA规则

本文探讨了嵌入式开发中Cppcheck工具集成与MISRA规则检查的必要性。详细介绍了安装配置步骤:安装VSCode/TRAE、Cppcheck软件、配置插件参数、安装Python环境,并重点说明了MISRA规则文件的设置方法。通过完整的配置流程,实现了嵌入式开发环境下静态检查与安全标准的落地。

SDFangFang2025的博客 1282

超分辨率重建数据集制作:裁剪过滤

背景 由于获取到的高分辨率图像尺寸不一,不符合公认的要求,因此我对图像进行了裁剪过滤,代码如下 代码 #coding=utf-8 from PIL import Image import random import os dirs = r'C:\Users\Administrator\Desktop\敦煌超分\数据集' result_dir = r'C:\Users\Administrator\Desktop\敦煌超分\数据集2' name= [] num = 1 list = os.listdir

Alocus的博客 2296

【PySide6拓展】初识QChart图表

在 PySide6 中,QtCharts模块提供了一系列强大的类,用于创建和管理图表。QChart是这个模块的核心类,它可以帮助开发者轻松地实现数据的可视化。本篇文章将介绍如何使用 PySide6 的QtCharts模块,并通过一个简单的示例教你如何快速引入QChart。QChart折线图柱状图饼图区域图它能够直观地呈现数据,同时支持交互功能,如缩放、拖拽和工具提示等。通过引入QChart,我们可以轻松实现数据的可视化,提升应用的交互性和用户体验。结合其他QtCharts。

m0_62599305的博客 822

图像超分辨率重建之SRCNN

新版本请访问简书链接:https://www.jianshu.com/p/dfe85a3c2096 图像超分辨率重建:指通过低分辨率图像或图像序列恢复出高分辨率图像。高分辨率图像意味着图像具有更多的细节信息、更细腻的画质,,这些细节在高清电视、医学成像、遥感卫星成像等领域有着重要的应用价值。 Super-Resolution Convolutional Neural Network:本...

Autism_的博客 5万+

C# ScottPlot 5.0 WinForms 十字光标示例:轻松实现动态数值显示,你学会了吗?

ScottPlot是一个免费、开源的.NET交互式绘图库,能够轻松地实现大型数据集的交互式显示。它支持多种图表类型,如折线图、柱状图、饼图、散点图等。ScottPlot的性能非常出色,即使是处理千万级别的数据也游刃有余。

java专栏 2218

混合精度训练与推理:平衡性能与效率

在深度学习领域,模型的训练和推理通常需要大量的计算资源和时间。随着模型规模的不断增大,如大型语言模型、复杂的视觉模型等,对计算资源的需求也呈指数级增长。混合精度训练与推理技术应运而生,它通过在训练和推理过程中同时使用不同精度的数据类型,在保证模型性能的前提下,显著提高计算效率,减少内存占用。本文的目的是全面介绍混合精度训练与推理技术,包括其原理、实现方法、应用场景以及相关工具和资源,帮助读者深入理解并掌握该技术,从而在实际项目中更好地平衡性能与效率。

操作系统内核探秘的博客 1068

SRGAN 图像超分辨率重建(Keras)

SRGAN 网络是用GAN网络来实现图像超分辨率重建的网络。训练完网络后。只用生成器来重建低分辨率图像。网络结构主要使用生成器(Generator)和判别器(Discriminator)。训练过程不太稳定。一般用于卫星图像和遥感图像的图像重建。 这里我们使用的高分辨率的数据集 **(DIV2K)**

__不想写代码__的博客 8385

100天精通Oracle-实战系列(第33天)RHEL 7 安装 Oracle 12CR2 RAC 数据库

100天精通Oracle-实战系列(第33天)RHEL 7 安装 Oracle 12CR2 RAC 数据库

LuciferLiu_DBA 3451

基于图像处理的低分辨率车牌图像超分辨率重建研究

低分辨率场景车牌识别研究与应用运用SRResNet超分辨率重建、YOLOv目标检测和LPRNet车牌识别等技术,解决了低分辨率场景下车牌识别准确率低的问题,实现了从低分辨率图像到清晰车牌识别的完整流程。对于计算机专业、软件工程专业、人工智能专业、大数据专业的毕业生而言,选择一个合适的毕业设计选题至关重要。在这个毕业设计选题合集中,我们精心收集了各种有趣且具有挑战性的选题,旨在帮助学生们在毕业设计中展现他们的技术实力和创新能力。不论是对于对深度学习技术感兴趣的同学,还是希望探索机器学习、算法或人工智能的领域的

2301_79555157的博客 642

Arcgis中的模型构建器(ModelBuilder)技术之批量图层转KML

这段时间全省各地都在开展耕地流出图斑整改恢复工作,期间或多或少都需要村委会协助摸排举证,除了举证软件外,奥维、外业精灵等软件想必大家接触得也很多。这就经常需要我们转kmz文件给业主或者摸排人员,那么有没有什么方法在arcgis下快速批量转kmz文件呢,今天就介绍一下如何在模型构建器(ModelBuilder)构建批量图层转KML的模型。

weixin_44671081的博客 1325

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

深度学习在图像超分辨率重建中的应用

超分辨率技术(Super-Resolution)是指从观测到的低分辨率图像重建出相应的高分辨率图像,在监控设备、卫星图像和医学影像等领域都有重要的应用价值。SR可分为两类:从多张低分辨率图像重建出高分辨率图像和从单张低分辨率图像重建出高分辨率图像。本文介绍几个较新的基于深度学习的SR方法,包括SRCNN,DRCN, ESPCN,VESPCN和SRGAN等。

1万+

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

上一篇: 图像去雾,利用《bringing old photos back to life》 的开源代码
下一篇: 超分辨率重建数据集制作:高分辨率图像采集(从pdf中获取图像)
Alocus_
Alocus_ 新星创作者: 人工智能技术领域 新星创作者: 人工智能技术领域
博客等级 码龄9年 2万+粉丝 184原创
评论 24
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Alocus_

如果我的内容帮助到你,打赏我吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值