插值方法学习

article/2025/9/30 5:52:22

0.摘要

我感觉上采样阶段要放在特征提取的前期,而不是后期,因为后期的feature map太小了,而且相邻间的像素值会存在突变,会造成增加的噪声概率会比较高。参考图像插值技术综述学习了一下插值方法

1.单线性插值法

在这里插入图片描述
已知ac,求b点位置的过程就是单线性插值,计算过程如下:
在这里插入图片描述

2.双线性插值

双线性插值是有两个变量的插值函数的线性插值扩展,其核心思想是在两个方向分别进行一次线性插值
在这里插入图片描述
已知四个q点坐标,先分别求r坐标,再求p点左边就是双线性插值。首先在 x 方向进行线性插值,得到
在这里插入图片描述
在这里插入图片描述

3.样条插值

样条:早期工程师制图时,把富有弹性的细长木条(所谓样条)用压铁固定在样点上,在其他地方让它自由弯曲,然后沿木条画下曲线,就得到样条曲线

3.1线性样条

之前的单线性插值就可以看作是线性样条插值:两点确定一条直线,我们可以在每两点间画一条直线,就可以把所有点连起来。
在这里插入图片描述

3.1二次样条

在这里插入图片描述
假设4个点,x0,x1,x2,x3,有3个区间,需要3个二次样条,每个二次样条为 ax^2+bx+c,故总计9个未知数。
1.x0,x3两个端点都有一个二次函数经过,可确定2个方程

2.x1,x2两个中间点都有两个二次函数经过,可确定4个方程

3.中间点处必须连续,需要保证左右二次函数一阶导相等

可确定2个方程,此时有了8个方程。

4.这里假设第一方程的二阶导为0,即 a1=0,又是一个方程,共计9个方程。

3.3三次样条

思路和二次样条插值差不多
假设4个点,x0,x1,x2,x3,有3个区间,需要3个三次样条,每个三次样条为 ax^3 + bx^2+cx+d,故总计12个未知数。

1.内部节点处的函数值应该相等,这里一共是4个方程。

2.函数的第一个端点和最后一个端点,应该分别在第一个方程和最后一个方程中。这里是2个方程。

3.两个函数在节点处的一阶导数应该相等。这里是两个方程。

4.两个函数在节点处的二阶导数应该相等,这里是两个方程。

5.假设端点处的二阶导数为零,这里是两个方程。

import numpy as np, matplotlib.pyplot as plt
import scipy.interpolate as spi
from scipy import interpolatex= np.array([0, 1, 2, 3, 4, 5, 6, 7])
y= np.array([3, 4, 3.5, 2, 1, 1.5, 1.25, 0.9]) #离散点的分布
#插值
tck = interpolate.splrep(x,y)
xx = np.linspace(min(x),max(x),100)
yy = interpolate.splev(xx,tck,der=0)
print(xx)
# 画图
plt.plot(x,y,'o',xx,yy)
plt.legend(['true','Cubic-Spline'])
plt.xlabel('x') 
plt.ylabel('y')
plt.title('test')  
# 打印
plt.show()

结果如下,十分的平滑
请添加图片描述

4.基于边缘的图像插值算法

在图像放大中,对这些具有不连续灰度特性的像素,如果采用常规的插值算法生成新增加的像素,势必会使放大图像的轮廓和纹理模糊,降低图像质量。为了克服传统方法的不足,近年来提出了许多边缘保护的插值方法,对插值图像的边缘有一定的增强

4.1基于原始低分辨率图像边缘的方法请添加图片描述

首先要区分边缘和平缓区域。
法一:对低分辨率图像进行简单的一阶微分运算,通过阈值门限分离图像的边缘和平坦区域;
法二:传统的边缘检测算子提取图像的边缘
插值方法:
法一:平坦区域的点,采用双线性插值;边缘区域点,采用双三次样条插值;
法二:对于平坦区域直接用双线性插值算法,而对于边缘区域的像素点,利用与边缘像素点相邻的 6 个降采样像素局部结构方向信息特征,估计高分辨率像素的值

5. 基于插值后高分辨率图像边缘的方法

这种思路是先用普通方法上采样,然后检测高分辨率图像的边缘,最后对边缘及附近像素进行特殊处理,以去除模糊,增强图像的边缘。请添加图片描述
方法也有很多,如:基于双线性插值将图像放大,然后采用Krisch算子确定图像边缘像素点的位置和方向,最后根据边缘两侧的像素增强边缘像素的值

6.区域指导的图像插值算法

将原始低分辨率图像分割成不同区域,然后将插值点映射到低分辨率图像,判断其所属区域,最后根据插值点的邻域像素设计不同的插值公式,计算插值点的值。请添加图片描述
这种方法计算量太大了,要分割阈值的参数也是经验数据,这个方法应用的深度学习上不是很合适。

实验结果

请添加图片描述
衡量指标是psnr,信噪比。边缘指导法(Edge-directed)是一种性价比比较高的算法。


http://chatgpt.dhexx.cn/article/N0bSj3nQ.shtml

相关文章

插值查找算法

插值查找算法 插值查找算法又称插值搜索算法,是在二分查找算法的基础上改进得到的一种查找算法。 插值查找算法只适用于有序序列,换句话说,它只能在升序序列或者降序序列中查找目标元素。作为“改进版”的二分查找算法,当有序序…

图像常用的插值算法:最近邻插值、双线性插值和双三次插值算法

图像常用的插值算法 最近邻插值算法双线性插值算法双三次插值(bicubic)算法三种插值算法的优缺点 插值算法是图像缩放中的一项基本且重要的算法;在图像缩放中,输出图像像素点坐标可能对应输入图像上几个像素点之间的位置,这个时候就需要通过灰…

插值拟合算法

一.插值算法 1.插值概念 构造一个函数使得所有已知点在函数图像上 2.一维插值插值方法 (1)一般多项式插值 (2)拉格朗日插值 (3)分段线性插值 采用线性函数 (4)牛顿插值 &#xf…

插值与逼近_数值分析计算方法

传送门: 线性和非线性方程数值解法_数值分析计算方法 👉插值与逼近_数值分析计算方法 ⚠️施工中👷… 1 插值 1.1 多项式插值 1.1.1 Lagrange插值 插值误差的事后估计:用两个结果的差来估计插值误差 使用注意 当插值点x位于…

数学建模-插值算法(Matlab)

注意:代码文件仅供参考,一定不要直接用于自己的数模论文中 国赛对于论文的查重要求非常严格,代码雷同也算作抄袭 如何修改代码避免查重的方法:https://www.bilibili.com/video/av59423231 //清风数学建模 一、基础知识 简单来说…

插值算法总结

1、最邻近元法 这是最简单的一种插值方法,不需要计算,在待求象素的四邻象素中,将距离待求象素最近的邻象素灰度赋给待求象素。设iu, jv(i, j为正整数, u, v为大于零小于1的小数,下同)为待求象素坐标,则待求…

插值算法基本原理

插值:数据处理的手段 将缺失数据补全处理 线性内插 拉格朗日插值法 牛顿插值 拟合:预测,寻找规律的手段 是插值的外延 插值算法:使用在现有的数据极少,不足以支撑分析的进行,这时就需要使用一些数学方法…

插值算法——分段线性插值(1)

首先,科普一下插值的含义:在离散数据的基础上补插连续函数,使得这条连续曲线通过全部给定的离散数据点。 插值是离散函数逼近的重要方法,利用它可通过函数在有限个点处的取值状况,估算出函数在其他点处的近似值。 插…

Matlab实现常见的插值算法

本文介绍如何使用 Matlab 实现常见的插值算法:分段三次埃尔米特插值和三次样条插值。 分段三次埃尔米特插值 (1) pchip(x, y, new_x)函数表示分段三次埃尔米特插值,x表示已有的数据 点,y表示数据点代表的纵坐标值&am…

图像插值算法及其实现

sensor、codec、display device都是基于pixel的,高分辨率图像能呈现更多的detail,由于sensor制造和chip的限制,我们需要用到图像插值(scaler/resize)技术,这种方法代价小,使用方便。同时&#x…

插值算法(数学建模学习)

本系列参考清风老师的数学建模课程 插值算法 一、算法介绍 (一)算法引入 对于数据量少到不足以去分析问题,而必须生成一些合理的数据的情况要用到插值算法。 (二)算法详解 (1)定义 设函数 …

MATLAB-插值算法汇总

前言 数模比赛中常常需要对数据进行分析,当数据不足时就需要补充数据,所用到的方法就是插值法。本文汇总了一些常用的插值算法。 Hermite插值 埃尔米特插值(Hermite)会在给定的节点处,要求插值多项式的函数值与原函数值相同,同时…

第三讲 插值算法

数模比赛中,常常需要根据已知的函数点进行数据,模型的处理和分析,而有时候现有的数据是极少的,不足以支撑分析的进行,这时就需要使用一些数学的方法,“模拟产生”一些新的但又比较靠谱的值来满足需求&#…

opencv中插值算法详解

导读 做图像处理的同学应该经常都会用到图像的缩放,我们都知道图片存储的时候其实就是一个矩阵,所以在对图像进行缩放操作的时候,也就是在对矩阵进行操作,如果想要将图片放大,这里我们就需要用到过采样算法来扩大矩阵…

几种插值算法对比

1.拉格朗日插值 2.牛顿插值 3.分段线性插值 4. 分段三次埃尔米特插值 5.样条插值函数 6.五种样条函数比较 所以, 7. 五种插值方法的实际应用

转载:一文讲解图像插值算法原理

最近在研究插值算法,看到这篇CSDN博主Datawhale学习介绍的博文,觉得介绍得挺不错,转载过来。原文地址:https://blog.csdn.net/Datawhale/article/details/105697264 寄语:本文梳理了最近邻插值法、双线性插值法和三次…

插值算法

插值,通俗来说当在一个离散的事件中,想知道某一个位置确定的值时,就可以利用插值方式计算得到,即利用已知数据估计未知位置数值。插值的方式有很多,下面介绍几种常用的插值方式。 一、最近邻插值(Nearest Neighbour …

几种插值算法对比研究

[研究内容] 目前比较常用的几种插值算法 [正文] 目前比较常用的插值算法有这么几种:最邻近插值,双线性二次插值,三次插值, Lanczos插值等等,今天我们来对比一下这几种插值效果的优劣。 1,最邻近插值 最…

【3.0】 常见的插值算法

插值算法的概念一维插值问题一般插值多项式的原理拉格朗日插值法牛顿插值法埃尔米特插值法分段 三次埃尔米特插值和分段三次样条插值(常用,附代码) 一、插值算法的概念 数学建模比赛中,常常需要根据已知的函数点进行数据、模型的…

常用的三种插值算法

在做数字图像处理时,经常会碰到小数象素坐标的取值问题,这时就需要依据邻近象素的值来对该坐标进行插值。比如做图像的几何校正,也会碰到同样的问题。 1、最近邻插值法(Nearest Neighbour Interpolation) 这是最简单的…