引导滤波器联合上采样代码

  • 引导滤波器联合上采样代码

引导滤波器联合上采样代码

代码片.

// 盒型滤波器代码
import torch
from torch import nndef diff_x(input, r):assert input.dim() == 4left   = input[:, :,         r:2 * r + 1]middle = input[:, :, 2 * r + 1:         ] - input[:, :,           :-2 * r - 1]right  = input[:, :,        -1:         ] - input[:, :, -2 * r - 1:    -r - 1]output = torch.cat([left, middle, right], dim=2)return outputdef diff_y(input, r):assert input.dim() == 4left   = input[:, :, :,         r:2 * r + 1]middle = input[:, :, :, 2 * r + 1:         ] - input[:, :, :,           :-2 * r - 1]right  = input[:, :, :,        -1:         ] - input[:, :, :, -2 * r - 1:    -r - 1]output = torch.cat([left, middle, right], dim=3)return outputclass BoxFilter(nn.Module):def __init__(self, r):super(BoxFilter, self).__init__()self.r = rdef forward(self, x):assert x.dim() == 4return diff_y(diff_x(x.cumsum(dim=2), self.r).cumsum(dim=3), self.r)// 引导滤波器代码
from torch import nn
from torch.nn import functional as F
from torch.autograd import Variablefrom .box_filter import BoxFilterclass FastGuidedFilter(nn.Module):def __init__(self, r, eps=1e-8):super(FastGuidedFilter, self).__init__()self.r = rself.eps = epsself.boxfilter = BoxFilter(r)def forward(self, lr_x, lr_y, hr_x):  #x_lr, w_lr, x_hrn_lrx, c_lrx, h_lrx, w_lrx = lr_x.size()n_lry, c_lry, h_lry, w_lry = lr_y.size()n_hrx, c_hrx, h_hrx, w_hrx = hr_x.size()assert n_lrx == n_lry and n_lry == n_hrxassert c_lrx == c_hrx and (c_lrx == 1 or c_lrx == c_lry)assert h_lrx == h_lry and w_lrx == w_lryassert h_lrx > 2*self.r+1 and w_lrx > 2*self.r+1## NN = self.boxfilter(Variable(lr_x.data.new().resize_((1, 1, h_lrx, w_lrx)).fill_(1.0)))## mean_xmean_x = self.boxfilter(lr_x) / N## mean_ymean_y = self.boxfilter(lr_y) / N## cov_xycov_xy = self.boxfilter(lr_x * lr_y) / N - mean_x * mean_y## var_xvar_x = self.boxfilter(lr_x * lr_x) / N - mean_x * mean_x## AA = cov_xy / (var_x + self.eps)## bb = mean_y - A * mean_x## mean_A; mean_bmean_A = F.upsample(A, (h_hrx, w_hrx), mode='bilinear')mean_b = F.upsample(b, (h_hrx, w_hrx), mode='bilinear')return mean_A*hr_x+mean_b

引导滤波器联合上采样代码相关推荐

  1. 基于Opencv--图像上采样

    基于Opencv-图像上采样 文章目录 基于Opencv-图像上采样 代码实现 代码实现 // 图像上采样.cpp 主要应用于图像像素扩增技术#include <opencv2/opencv.h ...

  2. 三种上采样的方式总结

    三种上采样方式总结 在GAN,图像分割等等的网络中上采样是必不可少的.这里记录一下自己学到的三种上采样方式:反卷积(转置卷积),双线性插值+卷积,反池化. 反卷积(转置卷积) 卷积只会减小或不变输入的 ...

  3. opencv——上采样与降采样

    目录 图像金字塔 为什么要使用图像金字塔 上采样与降采样 高斯金字塔 高斯不同 拉普拉斯金字塔 相关API 上采样 降采样 上采样与降采样代码实现 代码 效果 先降采样再上采样代码实现 高斯不同代码实 ...

  4. 利用联合双边滤波或引导滤波进行升采样(Upsampling)技术提高一些耗时算法的速度。...

    这十年来,在图像处理领域提出了很多新的图像分析和处理方法,包括是自动的以及一些需要有人工参与的,典型的比如stereo depth computations.image colorization.to ...

  5. JBU联合双边上采样

    很多图像处理算法,如立体视觉中的深度估计,图像上色,高动态范围HDR中的tone mapping,图像分割,都有一个共性的问题:寻找一个全局的解,这个解是指一个分段的piecewise平滑含糊,描述了 ...

  6. 【三维深度学习】点云上采样网络PU-Net 代码分析

    PU-Net的代码是基于Tensorflow code,并从PointNet++和PointSetGeneration中进行了诸多借鉴.PU-Net是一个点云上采样模型,可以将非规则的点云输入通过点云 ...

  7. 上采样 介绍 + Bilinear pytorch代码解析

    上采样 上采样,任何可以让你的图像变成更高分辨率的技术. 最简单的方式是重采样和插值:将输入图片input image进行rescale到一个想要的尺寸,而且计算每个点的像素点,使用如双线性插值bil ...

  8. PU-Net:一种基于数据的3D点云上采样网络

    点击上方"视学算法",选择"星标" 干货第一时间送达 论文下载: https://openaccess.thecvf.com/content_cvpr_2018 ...

  9. 点云的无序性_PU-Net:解决3D点云数据的上采样问题

    作者:Danny明泽 论文下载: https://openaccess.thecvf.com/content_cvpr_2018/papers/Yu_PU-Net_Point_Cloud_CVPR_2 ...

  10. FCN全卷积网络—upsampling(上采样)——OpenCV图像金字塔

    一.上采样理论 1.1 bilinear 1.2 Deconvolution(反卷积) 1.3 unpooling 二.OpenCV金字塔:高斯金字塔.拉普拉斯金字塔与图片缩放 一.上采样理论 FCN ...

最新文章

  1. Https 公钥、私钥、证书
  2. stm32f102 SPI口重复初始化引起的问题及解决办法
  3. 服务器里面发邮件,通过SMTP中继服务器发送邮件的问题
  4. 盘一盘常见的6种索引失效情况
  5. DOM增删操作(创建删除表格)
  6. OpenCv平滑与模糊
  7. JSon数据操作示列
  8. linux防火墙配置怎么修改密码,Linux系统修改防火墙配置
  9. 【论文复现】ARBITRAR : User-Guided API Misuse Detectionl
  10. SpringBoot源码分析(二)之自动装配demo
  11. 计算机usb端口没反应,解决电脑USB接口没反应的小方法
  12. Ubuntu16.04安装有道词典
  13. c++中的typename与class
  14. 【springboot进阶】RestTemplate 集成 okhttp3 请求带p12证书
  15. 涨姿势|小众建模软件MakeHuman,人物角色建模基础入门教程(1)
  16. 去掉QTableView、QTreeView内item被选中时的虚线框
  17. VUE教程(持续更新中)
  18. 映泰Hi-Fi B150S5 主板来电后电脑自动开机问题
  19. c语言 extend 函数,jQuery中$.extend()数组合并用法
  20. 用 Go STL 查询 DB 引发的内存泄露

热门文章

  1. 设计链表python(leetcode707)
  2. Github每日精选(第35期):移动设备数据库Realm
  3. FAST-LIO2代码解析(四)
  4. 在Android上使用TensorFlow Lite结果和AI危害检测
  5. 换个角度感受华为云的GPU云服务器
  6. 我给浏览器加了个语音搜索功能
  7. [web开发] Vue+Spring Boot 上海大学预约系统开发记录
  8. 如何搭建自己的CI/CD平台:Gitlab+Jenkins+Docker+Harbor+K8s集群搭建CICD平台(持续集成部署Hexo博客Demo)
  9. matlab 小波变换程序,matlab 小波变换
  10. centos防火墙的关闭,硬盘挂载,yum配置,创建实验快照