超分辨重建-Bicubic双三次线性插值opencv实现

2023-05-16

论文实验中经典方法Bicubic的Python实现 

 使用时更改文件夹、保存路径、重建倍数即可

import os
import argparse
import cv2

# parse args
parser = argparse.ArgumentParser(description='Upsize images using bicubic interpolation')
parser.add_argument("-k", "--keepdims", help="keep original image dimensions in downsampled images",
                    action="store_true")
##############################需要修改的部分#############################
parser.add_argument('--lr_img_dir', type=str, default=r'D:\PythonUtils\RCAN_TestCode\LR\LRBI\B100\x4',
                    help='path to low resolution image dir')  # 待上采样图片文件夹
parser.add_argument('--hr_img_dir', type=str, default=r'D:\PythonUtils\RCAN_TestCode\LR\LRBI\B100',
                    help='path to desired output path for Upsampled images')  # 结果保存路径,会自动生成存储结果的文件夹,如  X2result
parser.add_argument('--scale', type=int, default=4,
                    help='path to desired output dir for Upsampled images')  # 上采样倍率
##########################################################
args = parser.parse_args()

lr_image_dir = args.lr_img_dir
hr_image_dir = args.hr_img_dir

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

# create LR image dirs
os.makedirs(hr_image_dir + f"\Bicubic-x{args.scale}-result", exist_ok=True)  # 创建保存结果的文件夹

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

# Upsample LR images
for filename in os.listdir(lr_image_dir):
    if not filename.endswith(supported_img_formats):
        continue

    name, ext = os.path.splitext(filename)
    # Read LR image
    lr_img = cv2.imread(os.path.join(lr_image_dir, filename))
    hr_img_dims = (lr_img.shape[1], lr_img.shape[0])

    # Upsample image
    lr_image = cv2.resize(lr_img, (0, 0), fx=int(f"{args.scale}"), fy=int(f"{args.scale}"),
                          interpolation=cv2.INTER_CUBIC)
    if args.keepdims:
        lr_image = cv2.resize(lr_image, hr_img_dims, interpolation=cv2.INTER_CUBIC)

    cv2.imwrite(os.path.join(hr_image_dir + f"\Bicubic-x{args.scale}", f"x{args.scale}_" + filename.split('.')[0] + ext),
                lr_image)  # 保存高分辨率图像

4x下的重建效果

 Bicubic

RCAN 

 Bicubic

RCAN 

 Bicubic

RCAN

和现在的方法相比,Bicubic确实效果太差,不过实验中会经常用到进行对比 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

超分辨重建-Bicubic双三次线性插值opencv实现 的相关文章

  • Python使用OpenCV按自定义帧率提取视频帧并保存

    在做室外语义分割 视觉导航与定位的时候 xff0c 通常会用对一个连续的视频帧进行测试 xff0c 除去常用数据集外 xff0c 也经常会自己制作一些数据集 xff0c 这个工具类可以按需求对视频进行分帧提取 xff0c 封装好了直接可以使
  • 悲观锁与乐观锁详解

    悲观锁 悲观锁顾名思义是从悲观的角度去思考问题 xff0c 解决问题 它总是会假设当前情况是最坏的情况 xff0c 在每次去拿数据的时候 xff0c 都会认为数据会被别人改变 xff0c 因此在每次进行拿数据操作的时候都会加锁 xff0c
  • 亚像素卷积网络(ESPCN)学习与Pytorch复现

    论文内容 论文地址 xff1a Real Time Single Image and Video Super Resolution Using an Efficient Sub Pixel Convolutional Neural Netw
  • Lock锁和ReentrantLock锁

    前言 JDK 1 5中提供的锁的接口java util concurrent locks Lock xff0c 其提供了一些ReentrantLock ReentrantReadWriteLock实现类 参考JDK文档 xff1a Java
  • 面试题--JVM垃圾回收及内存管理

    选择题 1 以下哪些内存区域属于 JVM 规范 xff1f xff08 xff09 A 方法区 B 实例变量 C 静态变量 D 程序计数器 E 虚拟机栈 正确答案 xff1a A D E 解析 xff1a Java虚拟机规范划分了七个内存区
  • Pytorch维度操作-unsqueeze、squeeze、view与permute

    view 在pytorch中view函数的作用为重构张量的维度 相当于numpy中resize 的功能 a 61 1 2 3 b 61 2 3 4 c 61 3 5 5 d 61 4 5 6 e 61 np array a b c d e
  • 长假余额为零!我用Python做了个中秋国庆双节拼图游戏

    点击上方 菜鸟学Python xff0c 选择 星标 公众号 重磅干货 xff0c 第一时间送达 今年的国庆长假非常长 xff0c 不知不觉已经余额为零 xff01 朋友圈很多晒出游的照片 xff0c 聚会的照片 xff0c 吃吃喝喝真舒服
  • Redis系列学习1-Redis安装启动与基础概念

    Remote Dictionary Server Redis 是一个由 Salvatore Sanfilippo 写的 key value 存储系统 xff0c 是跨平台的非关系型数据库 Redis 是一个开源的使用 ANSI C 语言编写
  • Redis系列学习2-五大类型(String,List,Hash,Set,ZSet)及其常规操作

    Redis的基本操作 Redis默认是有16个数据库 xff0c 默认使用的是第0个数据库 xff0c 可以通过select 切换数据库 xff0c Redis的命令大小写不敏感的 切换数据库 切换数据库 格式 xff1a select i
  • Redis系列学习3-geospatial地理空间

    geospatial 地理空间 可以用来实现定位 附近的人 打车APP上距离计算 距离的实现主要基于经纬度 xff0c 城市的经纬度查询 xff1a http www jsons cn lngcode geoadd 添加地址位置 格式 xf
  • 遗传算法求解TSP旅行商问题

    旅行商问题 旅行商问题 traveling salesman problem TSP 可描述为 已知N个城市之间的相互距离 现有一个商人必须遍访这N个城市 并且每个城市只能访问一次 最后又必须返回出发城市 如何安排他对这些城市的访问次序 使
  • 剑指Offer-面试算法题

    1 二分查找 xff08 递归与非递归实现 xff09 基本算法 xff0c 掌握好循环条件 package com company Description 二分查找 xff08 递归与非递归实现 xff09 Created by Wanb
  • Python爬虫-抓取PC端网易云音乐评论(GUI界面)

    歌曲搜素 网易云音乐网址为 xff1a https music 163 com 思路是进入后输入一个歌曲名 xff0c 点击搜索按钮 xff0c 通过开发者调试工具捕获搜索请求 xff0c 捕获到的数据信息如下 xff1a 所有的歌曲相关信
  • Package cmake is not available, but is referred to by another package.

    inux环境下安装Cmake报错 xff1a Package cmake is not available but is referred to by another package This may mean that the packa
  • 完美数问题

    题目描述 对于一个十进制正整数 xff0c 如果z的每一位数字只可能是1 2 3中的其中一个 xff0c 则称 是完美数 如 123 1 3321都是完美数而5 1234则不是 牛牛想写一个函数f n xff0c 使得其返回最大的不大于n的
  • 围圈抽牌报数问题

    问题描述 米免参加公司司建 xff0c 100个同事围坐圈 xff0c 裁判开始顺时针从头发牌 xff0c 每发3张白牌就会发出1张黑 牌 xff0c 抽到黑牌的人出局 xff0c 每局第N个抽到黑牌的将获得奖励 问如果米免想获得奖品 xf
  • RTX30系列-Ubuntu系统配置与深度学习环境Pytorch配置

    本文完成RTX3090Windows 43 Ubuntu双系统配置 xff0c 并配置深度学习环境 硬件环境为RTX3090 43 Z590主板 xff0c 64GB RAM xff0c 2TB固态 xff0c 8TB存储 Ubuntu系统
  • 【rotors】多旋翼无人机仿真(一)——搭建rotors仿真环境

    rotors 多旋翼无人机仿真 xff08 一 xff09 搭建rotors仿真环境 rotors 多旋翼无人机仿真 xff08 二 xff09 设置飞行轨迹 rotors 多旋翼无人机仿真 xff08 三 xff09 SE3控制 roto
  • JVM内存管理

    JVM内存管理 Java 虚拟机在执行 Java 程序的过程中会把它管理的内存划分成若干个不同的数据区域 xff0c JDK 1 8 和之前的版本的数据区域有所差异 xff0c JDK1 6如下图所示 图片来源 xff1a JavaGuid
  • AQS、Semaphore、CountDownLatch与CyclicBarrier原理及使用方法

    AQS AQS 的全称为 AbstractQueuedSynchronizer xff0c 翻译过来的意思就是抽象队列同步器 这个类在 java util concurrent locks 包下面 xff0c AQS 就是一个抽象类 xff

随机推荐

  • 滑动窗口框架算法

    最长覆盖子串 xff0c 异位词 xff0c 最长无重复子串等等许多子串问题用常规暴力法费时费力 xff0c 一些大佬的解法虽然很强效率很高 xff0c 但是太难想到了 xff0c 这类问题用滑动窗口算法解决非常的快捷简便 滑动窗口算法思想
  • Python-深度学习常用脚本

    记录一些因为在网络训练 xff0c 测试过程中经常用到的一些脚本 1 视频按帧提取 可以从一段视频中截取不同帧的图片 xff0c 并保存至文件夹 需要自己更改视频路径和图片保存路径 import os import cv2 import s
  • Java面试基础(一)

    1 重载与重写 重载就是同样的一个方法能够根据输入数据的不同 xff0c 做出不同的处理 重写就是当子类继承自父类的相同方法 xff0c 输入数据一样 xff0c 但要做出有别于父类的响应时 xff0c 你就要覆盖父类方法不同类型的对象 x
  • 网络篇-传输控制协议TCP

    TCP协议 传输控制协议 xff08 TCP xff0c Transmission Control Protocol xff09 用一句话概括的话 xff0c 它是一种面向连接的 可靠的 基于字节流的传输层通信协议 TCP xff08 传输
  • 阻塞队列-BlockingQueue

    对于Queue而言 xff0c BlockingQueue是主要的线程安全的版本 xff0c 具有阻塞功能 xff0c 可以允许添加 删除元素被阻塞 xff0c 直到成功为止 xff0c blockingqueue相对于Queue而言增加了
  • 线程池-ThreadPoolExecutor

    如果并发的线程数量很多 xff0c 并且每个线程都是执行一个时间很短的任务就结束了 xff0c 这样频繁创建线程就会大大降低系统的效率 xff0c 因为频繁创建线程和销毁线程需要时间 那么有没有一种办法使得线程可以复用 xff0c 就是执行
  • MySQL索引

    基础知识 索引是创建在表上的 xff0c 对数据库表中一列或多列的值进行排序的一种结构 xff0c 可以提高查询的速度 通俗的来说 xff0c 数据库中存储的数据比作字典的话 xff0c 索引就相当于是字典中的目录 如果没有索引 xff0c
  • ThreadPoolExecutor任务提交与停止流程及底层实现

    ThreadPoolExecutor任务提交 executor任务提交流程 通过查看源码可知 xff0c JUC下的Excutor接口仅提供了一个可执行方法executor public interface Executor Execute
  • RoboMaster步兵机器人简介

    RoboMaster步兵机器人简介 湖北工业大学 蔡饶 如下图所示 xff0c 设计的是一个基于麦克纳姆轮的四轮全向越障平台 xff0c 纵臂式独立悬挂 xff0c 搭载两轴云台和弹丸发射机构 xff0c 是大疆承办的RoboMaster机
  • makefile 完美教程

    简介 Makefile 是和 make 命令一起配合使用的 xff0c 很多大型项目的编译都是通过 Makefile 来组织的 我建立工程的方法有以下三点 xff1a 1 makefile xff1a 优点 xff1a 使用非常广泛 xff
  • Arrays与Collection中自定义Comparator接口配合lambda实现自定义sort

    问题 刷到一个算法题需要拼接数字组成一个最大数 xff0c 基本思想是高位比较 xff0c 相等比较下一位 xff0c 然后根据大小先拼接大的 xff0c 再拼接小的 xff0c 但是发现当存在多个数字高位相同时面临一个问题 xff0c 比
  • SpringBoot2常见问题总结帖

    1 启动Springboot主程序类后报错This application has no explicit mapping for error so you are seeing this as a fallback 解决办法 xff1a
  • 设计模式-五大创建型模式概念与实现

    设计模式 xff08 Design pattern xff09 代表了最佳的实践方案 xff0c 可以说它是一套被反复使用的 多数人知晓的 经过分类编目的 代码设计经验的总结 xff0c 通常被有经验的面向对象的软件开发人员所采用 Desi
  • 雪花算法原理及实现

    背景 分布式高并发的环境下 xff0c 最常见的就是每年双十一的十二点 xff0c 大量用户同时抢购同一商品 xff0c 毫秒级的时间下可能生成数万个订单 xff0c 此时确保生成订单ID的唯一性变得至关重要 此外 xff0c 在秒杀环境下
  • Nacos注册中心-服务注册、分级存储与配置管理

    项目代码 xff1a resumebb springcloud nacos 码云 开源中国 gitee com Nacos注册中心 SpringCloudAlibaba 推出了一个名为 Nacos 的注册中心 xff0c 在国外也有大量的使
  • Feign远程调用-自定义配置与性能优化

    介绍 利用RestTemplate发起远程调用的代码 xff1a String url 61 34 http userservice user 34 43 order getUserId User user 61 restTemplate
  • Ribbon负载均衡

    Ribbon介绍 Spring Cloud Ribbon是一个基于HTTP和TCP的客户端负载均衡工具 xff0c 它基于Netflix Ribbon实现 通过Spring Cloud的封装 xff0c 可以让我们轻松地将面向服务的REST
  • RabbitMQ消息队列

    同步异步通讯 微服务间通讯有同步和异步两种方式 同步通讯 xff1a 就像打电话 xff0c 需要实时响应 异步通讯 xff1a 就像发邮件 xff0c 不需要马上回复 两种方式各有优劣 xff0c 打电话可以立即得到响应 xff0c 但是
  • Spring Boot集成Spring Security

    Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架 它提供了一组可以在Spring应用上下文中配置的Bean xff0c 充分利用了Spring IoC xff0c DI xf
  • 超分辨重建-Bicubic双三次线性插值opencv实现

    论文实验中经典方法Bicubic的Python实现 使用时更改文件夹 保存路径 重建倍数即可 import os import argparse import cv2 parse args parser 61 argparse Argume