线性插值和最近邻插值(Linear Interpolation and Nearest Neighbor Interpolation)

server/2024/9/25 7:23:39/

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。

推荐:Linux运维老纪的首页,持续学习,不断总结,共同进步,活到老学到老
全面总结 IT核心技术:系统基础、数据库、网路技术、系统安全、自动化运维、容器技术、监控工具、脚本编程、云计算、人工智能、运维开发、算法结构、物联网、JAVA Python语言等。
不同类型针对性训练,提升编程思维,剑指大厂非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。

本文介绍了图像处理中的两种插值方法——线性插值和最近邻插值。线性插值通过连接两点的直线来估算新像素值,而最近邻插值则简单地采用最近像素点的值。这两种方法在图像放大时,会影响图像质量,线性插值可能导致边缘模糊,最近邻插值则会产生明显的锯齿效果。在上采样技术中,这两种方法常被用于预先放大图像。文章还探讨了基于边缘信息的非线性插值方法,以及深度学习在上采样中的应用。

 在图像几何变换时,无法给有些像素点直接赋值,例如,将图像放大两倍,必然会多出一些无法被直接映射的像素点,对于这些像素点,通过插值决定它们的值。于是,产生了图像插值算法
 插值法主要可以分为两类,一类是线性图像插值方法,另一类是非线性图像插值方法

 那么在传统的插值方法如最近邻插值,双线性插值以及双三次插值等都属于线性插值方法。这类插值方法在图像插值过程中采用同一种插值内核,不用考虑待插像素点所处的位置,这种做法会使图像中的边缘变得模糊不清,达不到高清图像的视觉效果。

 非线性插值方法主要包括:基于小波系数的方法和基于边缘信息的方法。

  • 基于边缘信息的方法
    - 隐式方法
    - 显式方法

 在图像处理领域中,上采样的技术是图像进行超分辨率的必要步骤。比如说

 Pre-upsampling通常是先在网络之外将原始的LR(Low Resolution)的图像通过插值法(双三次插值)扩大到MR级别的图像,再将MR图像输入网络。这种方法是SRCNN所采用的,SRCNN先将图像插值扩大,在通过三个简单的卷积层将其映射到HR图像上。

 上采样的技术有很多不同的方法,但是大致被总结成了三个类别:

  • 1、基于线性插值的上采样
  • 2、基于深度学习的上采样(转置卷积)
  • 3、Unpooling的方法

 这里只介绍基于线性插值的上采样

1.线性插值

 线性插值:使用连接两个已知量的直线来确定在这两个已知量之间的一个未知量的值。线性插值形式:
f ( x ) = a 1 x + a 0 f(x) = a_1x+a_0 f(x)=a1​x+a0​

两点求一条直线公式(这是双线性插值所需要的唯一的基础公式)

在这里插入图片描述
 经过简单整理成下面的格式:
在这里插入图片描述
 首先看分子,分子可以看成 x 与 x11 和x2 的距离作为权重,这也是很好理解的,P点与P1、P点符合现行变化关系,所以P离P1就更接近P1,反之则更接近P2,现在再把公式中的分式看成一个整体,原式可以理解成y1与yP2是加权系数,我们的根本目的在图像中根据2个点的像素值求未知点的像素值。
在这里插入图片描述

 y1 与y2分别代表原图像中的像素值

2.最近邻插值

 最近邻插值算法是最简单的一种插值算法,当图片放大时,缺少的像素通过直接使用与之最近原有颜色生成,也就是说照搬旁边的像素这样做结果产生了明显可见的锯齿。在待求像素的四邻像素中,将距离待求像素最近的邻灰度赋给待求像素。
 在A区域的值邻近于(i,j)点,所以都将(i,j)点的像素值赋予在A区域的所有像素,同理可得其他的区域。如下图:由最邻近插值法,放大后的图像有很严重的马赛克,会出现明显的块状效应;缩小后的图像有很严重的失真

 具体的来说,就是将目标图像中的点,对应到原图像中后,找到最相邻的整数坐标点的像素值,作为该点的像素值输出。

3.如何寻找四个点

 最近邻法实际上是不需要计算新图像矩阵中点的数值的,直接找到原图像中对应的点,将数值赋值给新图像矩阵中的点,根据对应关系找到原图像中的对应的坐标,这个坐标可能不是整数,这时候找最近的点进行插值。对应关系如下:


http://www.ppmy.cn/server/121708.html

相关文章

SSRF-UrlValidator校验

例1: import java.util.regex.Pattern;public class UrlValidator {private static final Pattern SAFE_URL_PATTERN = Pattern.compile("^(http|https)://[^/]+/.*$");public static boolean isSafeUrl(String url) {if (url == null || url.isEmpty()) {return …

armbian debian 系统安装overlayroot后无法启用

千盼万盼 终于debian12可以用了 它终于也跟ubuntu 系统一样可以安装overlayroot了 但是 满怀欣喜的装完了发现 压根没法启动 这。。。。。 原因吗 也简单。。。 默认的映像里没有busybox......... 而它有这个要求。。。 overlayroot 包中有一个小错误:它要求 gr…

uni-app+vue3+pina实现全局加载中效果,自定义全局变量和函数可供所有页面使用

首先自定义一个加载中组件 ccloading.vue <template><view class"request-loading-view" v-if"loadingShow"><view class"loading-view"><image class"loading-img" :src"loading" mode"aspectF…

Ansible部署与应用基础

由于互联网的快速发展导致产品更新换代速度逐步增长&#xff0c;运维人员每天都要进行大量的维护操作&#xff0c;按照传统方式进行维护使得工作效率低下。这时部署自动化运维就 可以尽可能安全、高效的完成这些工作。 一、Ansible概述 1.什么是Ansible Ansible 是基于 Pytho…

网页护眼宝——全方位解析 Chrome Dark Reader 插件

网页护眼宝——全方位解析 Chrome Dark Reader 插件 1. 基本介绍&#xff1a;Chrome 插件的力量与 Dark Reader 的独特之处 随着现代浏览器的功能越来越强大&#xff0c;Chrome 插件为用户提供了极大的定制化能力。从广告屏蔽、性能优化到页面翻译&#xff0c;Chrome 插件几乎…

【图论】最短路应用

1135. 新年好 题目 提交记录 讨论 题解 视频讲解 MarkDown视图Copy 重庆城里有 nn 个车站&#xff0c;mm 条 双向 公路连接其中的某些车站。 每两个车站最多用一条公路连接&#xff0c;从任何一个车站出发都可以经过一条或者多条公路到达其他车站&#xff0c;但不同的…

JavaWeb--纯小白笔记06:使用Idea创建Web项目,Servlet生命周期,注解,中文乱码解决

使用Idea创建一个web项目----详细步骤配置&#xff0c;传送门&#xff1a;http://t.csdnimg.cn/RsOs7 src&#xff1a;放class文件 web&#xff1a;放html文件 out&#xff1a;运行过后产生的文件 一创建一个新的web项目(配置好了后)&#xff1a; 在src创建一个文件…

MySQL数据库脚本转化成sqlite数据库脚本的修改点

转换数据类型 将MySQL的数据类型转换为SQLite对应的数据类型。例如&#xff0c;将 INT或 INTEGER 转换为 INTEGER&#xff0c;将 VARCHAR、TEXT 或 CHAR 转换为 TEXT&#xff0c;将 DATETIME 或 TIMESTAMP 转换为 TEXT 或 DATETIME&#xff08;SQLite没有专门的日期时间类型&am…