一、最邻近差值(nearest)

含义: 选取离目标点最近的点的值作为新的插入点的值。
两幅图坐标值变换关系:
(代码未验证)

for i=1:size(dist,1)x = round(i* (size(src,1)/size(dist,1)));  %dst横坐标变换到src坐标系,最临近点for j=1:size(dist,2)y = round(j* (size(src,2)/size(dist,2)));  %dst纵坐标变换到src坐标系,最临近点dist(i,j)=src(x,y); % 最临近点赋值end
end

二、线性插值 (linear)

含义: 根据两点建立线性关系,以距离作为权重进行插值。

三、双线性插值(bilinear)

含义: 分别从两个方向上各进行一次线性插值。

对于p点的灰度值,可以通过p点周围Q11 = (x1, y1)、Q12 = (x1, y2), Q21 = (x2, y1) 以及 Q22 = (x2, y2) 四个点来获得。

在横坐标方向上进行两次线性插值:

根据Q11、Q21:f(R1)≈x2−xx2−x1f(Q11)+x−x1x2−x1f(Q21)where R1=(x,y1)f\left(R_{1}\right) \approx \frac{x_{2}-x}{x_{2}-x_{1}} f\left(Q_{11}\right)+\frac{x-x_{1}}{x_{2}-x_{1}} f\left(Q_{21}\right) \quad \text { where } R_{1}=\left(x, y_{1}\right)f(R1​)≈x2​−x1​x2​−x​f(Q11​)+x2​−x1​x−x1​​f(Q21​) where R1​=(x,y1​)
根据Q21、Q22:f(R2)≈x2−xx2−x1f(Q12)+x−x1x2−x1f(Q22)where R2=(x,y2)f\left(R_{2}\right) \approx \frac{x_{2}-x}{x_{2}-x_{1}} f\left(Q_{12}\right)+\frac{x-x_{1}}{x_{2}-x_{1}} f\left(Q_{22}\right) \quad \text { where } R_{2}=\left(x, y_{2}\right)f(R2​)≈x2​−x1​x2​−x​f(Q12​)+x2​−x1​x−x1​​f(Q22​) where R2​=(x,y2​)

在纵坐标方向上进行一次线性插值:

根据R1和R2:f(P)≈y2−yy2−y1f(R1)+y−y1y2−y1f(R2)f(P) \approx \frac{y_{2}-y}{y_{2}-y_{1}} f\left(R_{1}\right)+\frac{y-y_{1}}{y_{2}-y_{1}} f\left(R_{2}\right)f(P)≈y2​−y1​y2​−y​f(R1​)+y2​−y1​y−y1​​f(R2​)

整理得:
f(P)≈(y2−y)(x2−x)(y2−y1)(x2−x1)f(Q11)+(y2−y)(x−x1)(y2−y1)(x2−x1)f(Q21)+(y−y1)(x2−x)(y2−y1)(x2−x1)f(Q12)+(y−y1)(x−x1)(y2−y1)(x2−x1)f(Q22)\begin{aligned} f(P) & \approx \frac{\left(y_{2}-y\right)\left(x_{2}-x\right)}{\left(y_{2}-y_{1}\right)\left(x_{2}-x_{1}\right)} f\left(Q_{11}\right)+\frac{\left(y_{2}-y\right)\left(x-x_{1}\right)}{\left(y_{2}-y_{1}\right)\left(x_{2}-x_{1}\right)} f\left(Q_{21}\right) \\ &+\frac{\left(y-y_{1}\right)\left(x_{2}-x\right)}{\left(y_{2}-y_{1}\right)\left(x_{2}-x_{1}\right)} f\left(Q_{12}\right)+\frac{\left(y-y_{1}\right)\left(x-x_{1}\right)}{\left(y_{2}-y_{1}\right)\left(x_{2}-x_{1}\right)} f\left(Q_{22}\right) \end{aligned}f(P)​≈(y2​−y1​)(x2​−x1​)(y2​−y)(x2​−x)​f(Q11​)+(y2​−y1​)(x2​−x1​)(y2​−y)(x−x1​)​f(Q21​)+(y2​−y1​)(x2​−x1​)(y−y1​)(x2​−x)​f(Q12​)+(y2​−y1​)(x2​−x1​)(y−y1​)(x−x1​)​f(Q22​)​

由于图像双线性插值只使用相邻4个点,因此上式分母都为1。整理公式得到:

f(i+u,j+v) = (1-u)(1-v)f(i,j) + (1-u)vf(i,j+1) + u(1-v)f(i+1,j) + uvf(i+1,j+1)

图示:

代码示例(未验证):

for i=1:size(dist,1)x = double(i* (size(src,1)/size(dist,1)));  u = x-floor(x); %向下取整,求差值for j=1:size(dist,2)y = double(j* (size(src,2)/size(dist,2)));  v = y-floor(y); %向下取整,求差值dist(i,j)=(1-u)*(1-v)*src(i,j) + (1-u)*v*src(i,j+1) + u*(1-v)*src(i+1,j) + u*v*src(i+1,j+1);end
end

四、双三次插值(cubic)

含义: 对于某点进行插值时,考虑该点周围16个像素的影响。首先构造一个cubic函数,根据该点不同位置的cubic函数值作为权值,对该点进行插值赋值。

对待插值的像素点(x,y)(x,y)(x,y)(x和y可以为浮点数),取其附近的4x4邻域点(xi,yj),i,j=0,1,2,3(x_i,y_j), i,j = 0,1,2,3(xi​,yj​),i,j=0,1,2,3。按如下公式进行插值计算:
f(x,y)=∑i=03∑j=03f(xi,yj)W(x−xi)W(y−yj)f(x, y)=\sum_{i=0}^{3} \sum_{j=0}^{3} f\left(x_{i}, y_{j}\right) W\left(x-x_{i}\right) W\left(y-y_{j}\right)f(x,y)=i=0∑3​j=0∑3​f(xi​,yj​)W(x−xi​)W(y−yj​)

代码示例(未验证):

% 构造cubic函数,取a=-1
function A=sw(w1)
w=abs(w1);
if w<1&&w>=0A=1-2*w^2+w^3;
elseif w>=1&&w<2A=4-8*w+5*w^2-w^3;
elseA=0;
end
for i=1:size(dist,1)x = double(i* (size(src,1)/size(dist,1)));  u = x-floor(x); %向下取整,求差值A=[sw(1+u) sw(u) sw(1-u) sw(2-u)];  for j=1:size(dist,2)y = double(j* (size(src,2)/size(dist,2)));  v = y-floor(y); %向下取整,求差值C=[sw(1+v);sw(v);sw(1-v);sw(2-v)];B=[src(i-1,j-1)     src(i-1,j)   src(i-1,j+1)  src(i-1,j+2)src(i,j-1)     src(i,j)         src(i,j+1)   src(i,j+2)src(i+1,j-1)   src(i+1,j)   src(i+1,j+1)  src(i+1,j+2)src(i+2,j-1)     src(i+2,j)     src(i+2,j+1)  src(i+2,j+2)];dis(i,j)=(A*B*C);end
end

备注:所有代码是为了方便加深理解算法过程写的matlab伪代码片段,未在编译器上运行测试

参考文章:
【图像插值算法总结】https://www.cnblogs.com/laozhanghahaha/p/12580822.html
【图像缩放之双三次插值法】https://blog.csdn.net/qq_29058565/article/details/52769497
【双三次插值算法详解 含python实现】https://www.cnblogs.com/wojianxin/p/12516762.html

插值算法(最邻近差值、双线性插值、双三次插值)相关推荐

  1. 最邻近差值算法(nearest)和双线性插值算法(bilinear)

    最邻近插值算法和双线性插值算法--图像缩放 加载图像时经常会遇见要缩放图像的情况,这种时候如何决定缩放后图像对应像素点的像素值,这时候就需要用到插值算法 1.最邻近插值算法 首先假设原图是一个像素大小 ...

  2. getvalue参数计数不匹配_OpenCV开发笔记(六十八):红胖子8分钟带你使用特征点Flann最邻近差值匹配识别...

    若该文为原创文章,未经允许不得转载 原博主博客地址:https://blog.csdn.net/qq21497936 原博主博客导航:https://blog.csdn.net/qq21497936/ ...

  3. (四)最邻近插值、双线性插值

    最邻近插值.双线性插值.三线性插值 零.图像的放大和缩小的基本原理–映射 图像的放大和缩小的基本原理就是一种映射,即缩小后或者放大后的图像像素位置向原图的一个映射.简单理解就是,将放大或者缩小后的图像 ...

  4. 图像插值算法:最近邻插值、双线性插值

    插值算法:最近邻插值.双线性插值 文章目录 插值算法:最近邻插值.双线性插值 最近邻插值法(nearest_neighbor) 线性插值 单线性插值法 双线性插值 插值算法有很多种,这里列出关联比较密 ...

  5. 上采样(放大图像)和下采样(缩小图像)(最邻近插值和双线性插值的理解和实现)

    上采样和下采样 什么是上采样和下采样? • 缩小图像(或称为下采样(subsampled)或降采样(downsampled))的主要目的有 两个:1.使得图像符合显示区域的大小:2.生成对应图像的缩略 ...

  6. js 双线性插值 双三次插值法 实现

    js 双线性插值 双三次插值法 实现 介绍 双线性插值 原理 双三次插值法 原理 js实现 介绍 在网页中利用canvas进行绘图时,遇到一个问题,原始的数据分辨率很小,而图片要放大到整个网页,所以需 ...

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

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

  8. 影像组学视频学习笔记(33)-使用SimpleITK实现医学影像差值、Li‘s have a solution and plan.

    作者:北欧森林 链接:https://www.jianshu.com/p/afcd06221ea4 来源:简书,已获转载授权 RadiomicsWorld.com "影像组学世界" ...

  9. 图像插值——线性差值

    文章目录 理论基础 编码实现(Python) 效果展示 其他权重 理论基础 线性插值:两点确定一条直线,线上的未知点的值可由直线方程确定. 在二维空间中,需要将线性差值拓展到双线性插值. 设A.B.C ...

  10. 基于有偏距离权值双线性插值原理(Weighted bilinear with warping)的图像超分辨重构研究-附Matlab程序

    ⭕⭕ 目 录 ⭕⭕ ✳️ 一.图像超分辨率重构原理 ✳️ 二.双线性插值重构理论与实验分析 ✳️ 2.1 双线性插值理论与实验验证 ✳️ 2.2 有偏距离双线性插值重构理论与实验验证 ✳️ 2.3 权 ...

最新文章

  1. 自定义控件的时候为控件增加事件
  2. vue html5 picker,基于vue的picker组件
  3. JS判断鼠标从哪个方向进入DIV容器
  4. 十大笔记本电脑排行_2020双十一,十大高性价比游戏笔记本电脑值得买排行榜之搭载144Hz电竞屏机型(配置推荐)福利放送...
  5. centos安装Gitlab Runner
  6. android的opencv调试,Android opencv 2.3.1 调试及应用(第一篇)
  7. 项目中用了spring这些牛逼的开发技巧,经理请我吃饭了
  8. 机器学习NLP领域入门
  9. 蓝海灵豚医疗器械信息管理系统B/S
  10. 我找遍全网,整理了1份纯新手向电脑购机&装机攻略!
  11. 简历解析步骤(第二步)技术与实现(6)识文字,做分类:婚姻状态 、出生日期 、 户口地址 、 籍贯地址
  12. 一个新的豆瓣API替代接口,可获取豆瓣、IMDB、烂番茄的电影/电视剧双语(中英)数据,支持IMDB和douban TOP250接口
  13. mysql 创建数据列表
  14. spark web ui中的skipped的含义
  15. 微软zone DNS服务器,在DNS服务器上创建DNS zone
  16. 【数据挖掘】2022年2023届秋招知能科技公司机器学习算法工程师 笔试题
  17. leetcode1306
  18. 外企的那些所谓礼貌用语
  19. EmpireCMS文件写入getshell
  20. Windows10黑色背景下看不清鼠标光标问题的解决

热门文章

  1. 鸿蒙os2.0手机app开发,鸿蒙OS2.0手机开发者Beta版登场
  2. 计算机网络练习题-2
  3. mariadb 卸载 Kali_Revo Uninstaller(卸载工具) 专业版!!!
  4. SSD目标检测网络模型详细介绍
  5. win10怎样更改系统字体_掌阅F1系统设置及字体更改、水墨屏阅读软件、打卡必备软件...
  6. apt 安装软件出现“无法定位软件包”的问题
  7. 中科院SCI分区和JCR分区
  8. oracle如何给临时表增加字段,Oracle 临时表用法
  9. 自动化测试平台(七):头像展示、下拉菜单及用户管理模块增删改功能实现
  10. CAXA实体设计 2020 在草图中怎么快速选择与某一曲线相连的曲线?