1、单线性插值


化简得:
重要公式

将y视为像素值的函数;

2、双线性插值

问题:求P点的像素值?

根据单线性插值公式:

1、得到R1和R2点的像素值:

2、然后通过R1和R2线性插值得到P点的像素值:

所以,一共使用了三次单线性插值得到,最终的像素值。

另外,其中由于相邻像素点差1,所以y2 - y1 = 1 ,和x2-x1 = 1,所以分母就为1.

最终得到的计算公式为:


3、最近邻法

使用下面公式,寻找最近一个像素值

其中:

存在问题:右偏移


原公式是右偏移的,新公式中心对其了。

因为在原公式中是右偏移的,所以使用中心点重合来消除一下。

下面是优化公式:

4、双线性插值简单实现

通过最邻近找到P点,然后需要找到出四个相邻像素点。

通过floor函数找到下限,floor +1 找到上限,但是要防止超过图像的像素坐标值

import numpy as np
import matplotlib.pyplot as plt
from PIL import Imagedef Bilinear(dst,des_w,des_h,src_w,src_h):for c in range(3):for dst_x in range(des_w):for dst_y in range(des_h):src_x = (dst_x + 0.5)*src_w/des_w - 0.5src_y = (dst_y + 0.5)*src_h/des_h - 0.5#四个临近点src_x_1 = int(np.floor(src_x))src_y_1 = int(np.floor(src_y))src_x_2 = min(src_x_1 + 1,src_w -1)src_y_2 = min(src_y_1 + 1,src_h -1)R1 = (src_x_2 - src_x) * src[src_y_1,src_x_1,c] + (src_x - src_x_1) * src[src_y_1,src_x_2,c]R2 = (src_x_2 - src_x) * src[src_y_2,src_x_1,c] + (src_x - src_x_1) * src[src_y_2,src_x_2,c]P = int((src_y_2 - src_y) * R1 + (src_y - src_y_1) * R2)dst[dst_y, dst_x, c] = Preturn dstdef show_img(dst):dst = dst.astype(np.uint8)plt.figure()plt.subplot(121)plt.imshow(src)plt.subplot(122)plt.imshow(dst)# plt.imsave("./img.png",dst)plt.show()if __name__ == '__main__':src = Image.open("./img_1.png")src_w = src.widthsrc_h = src.heightsrc = np.array(src)dst = np.ones((960, 1280, 3))des_w = dst.shape[1]des_h = dst.shape[0]# print(des_w,des_h)dst = Bilinear(dst,des_w,des_h,src_w,src_h)show_img(dst)

5、pytorch中双线性插值

import torch
from torch.nn import functional as F
from PIL import Image
import numpy as np
import matplotlib.pyplot as pltimg = Image.open("./img.png")
img = np.array(img,dtype=float)
print(img.shape)
img = torch.from_numpy(img)
print(img.shape)
img = img.unsqueeze(0).permute(0,3,1,2) #[b,c,h,w]img = F.interpolate(img,scale_factor=(2,2),mode='bilinear')
# print(img.shape)
img = img.squeeze(0).permute(1,2,0)
print(img.shape)a = torch.tensor(img, dtype=torch.uint8)
print(a.shape)
plt.figure()
plt.imshow(a)
plt.show()

pytorch双线性插值相关推荐

  1. CV03-双线性差值pytorch实现

    一.双线性差值 1.1 公式 在理解双线性差值(Bilinear Interpolation)的含义基础上,参考pytorch差值的官方实现注释,自己实现了一遍. 差值就是利用已知点来估计未知点的值. ...

  2. 在PyTorch中进行双线性采样:原理和代码详解

    ↑ 点击蓝字 关注视学算法 作者丨土豆@知乎 来源丨https://zhuanlan.zhihu.com/p/257958558 编辑丨极市平台 在pytorch中的双线性采样(Bilinear Sa ...

  3. Pytorch上下采样函数--interpolate()

    torch.nn.functional.interpolate实现插值和上采样 上采样:可以使你训练的图片分辨率变成你想要的更大的分辨率 将输入图片input image进行rescale到一个想要的 ...

  4. 【Pytorch】interpolate==>上下采样函数

    def interpolate(input, size=None, scale_factor=None, mode='nearest', align_corners=None):r"&quo ...

  5. 【PyTorch 】interpolate()==>上下采样函数

    def interpolate(input, size=None, scale_factor=None, mode='nearest', align_corners=None, recompute_s ...

  6. pytorch中上采样的实现

    因为最近在学习FCN,所以呢,有一些上采样的操作 实际上,上采样(upsampling)一般包括2种方式: 1:Resize,如双线性插值直接缩放,类似于图像缩放(这种方法在原文中提到) 2:Deco ...

  7. 图解 RoIAlign 以及在 PyTorch 中的使用(含代码示例)

    文章目录 RoIAlign 的用处 RoIAlign 计算原理 双线性插值(Bilinear Interpolation) pytorch中的实现 简单示例 在FasterRCNN中的使用示例 参考链 ...

  8. PyTorch 学习笔记(三):transforms的二十二个方法

    本文截取自<PyTorch 模型训练实用教程>,获取全文pdf请点击:https://github.com/tensor-yu/PyTorch_Tutorial 文章目录 一. 裁剪--C ...

  9. 三个优秀的PyTorch实现语义分割框架

    向AI转型的程序员都关注了这个号???????????? 机器学习AI算法工程   公众号:datayx 使用的VOC数据集链接开放在文章中,预训练模型已上传Github,环境我使用Colab pro ...

  10. PyTorch 入坑八:卷积与转置卷积

    卷积 操作 略 输入输出尺寸变化 略 PyTorch实现 nn.Conv2d(in_channels,out_channels,kernel_size,stride=1.padding=0,dilat ...

最新文章

  1. TinyML:下一轮人工智能革命
  2. 中科元素精准饮食 功能性农业-李喜贵:电视荧屏广州地铁线展示
  3. c语言发牌思路,C语言发牌机程序求详细解析
  4. 如何系统地自学前端(女生),女生发展前端是否是青春饭?
  5. [开源]STM32F103RBT6最小系统,LEDx2,KEYx4
  6. list的一些常见用法总结(实用干货收藏)
  7. 【 地图系列 】 世界地图和主要国家的 JSON 文件
  8. #pragma comment (lib, ws2_32.lib) 调用报错
  9. c语言表达式判断语法错误题,大连理工大学C语言模拟题机房题库单选、判断、填空(分章节_共十一章)...
  10. 迪文屏幕的学习和开发
  11. 什么是二进制8421码?
  12. web端调用高德API
  13. To B产品用研工作,到底在研究什么?
  14. html自动汉字转拼音,输入汉字转换成拼音首字母js代码
  15. 什么是SDK什么是CDN
  16. NYOJ - [第九届河南省程序设计大赛]Decimal integer conversion(暴力)
  17. html css主题,HTML+CSS=无限可能——案例详解:我的POI主题作品
  18. [obs-studio]win32-test项目成功运行
  19. Chapter1 ROS概述与环境搭建
  20. android加载二维码带中间logo

热门文章

  1. 学校机房环境监控系统解决方案!
  2. LS-DYNA材料模型
  3. 完整的连接器设计手册_连接器退化机理是什么?(一)
  4. 3D模型在线转换,CAD格式转换,Solidworks版本转换
  5. python面板数据分析代码_【译】用python做计量之面板数据模型
  6. 计网 - 计算机网络开篇
  7. 220kv变电站计算机监控系统网络结构图,变电站二次系统设计计算机监控系统组屏(柜)方案...
  8. Lisp编制的坡度标注_形位公差自动标注的ATUOLISP程序设计(Ⅰ)
  9. 在Linux操作系统中使用手写板(转)
  10. linux如何停掉计划任务,Linux系统的任务计划