图形学初识--双线性插值算法

文章目录

  • 为什么需要双线性插值算法?
  • 双线性插值算法是什么?
  • 如何双线性插值?
  • 结尾:喜欢的小伙伴可以点点关注+赞哦

为什么需要双线性插值算法?

ChatGP回答: 双线性插值(bilinear interpolation)是一种常用的插值方法,用于在二维空间内估算未知点的值。它主要应用于图像处理、计算机视觉、地理信息系统(GIS)、数值分析和其他需要在二维数据中进行平滑过渡的领域。

白话解释: 在二维图像数据中,它的坐标都是整数,例如: ( 1 , 1 ) , ( 52 , 53 ) (1,1),(52,53) (1,1),(52,53)这种,但是如果在某种算法计算中,需要获取 ( 50.5 , 100.3 ) (50.5,100.3) (50.5,100.3) 类似这种坐标的像素值,常规就两种思路:

1、最近取值。这里就是直接取 ( 50 , 100 ) (50, 100) (50,100)​的像素值

2、邻近插值。这里就是利用 ( 50 , 100 ) , ( 51 , 100 ) , ( 50 , 101 ) , ( 51 , 101 ) (50, 100),(51, 100),(50, 101),(51, 101) (50,100),(51,100),(50,101),(51,101) 这几个坐标像素值的组合

上述的第二种思路: 其实就是双线性插值。

在本章节中,主要解决的问题就是: 大区域应用低分辨率纹理,避免过于离谱的马赛克(像素风)效果!

如下图: 左图就是最近邻取值,右图就是双线性插值!

在这里插入图片描述

双线性插值算法是什么?

已知图像的四个位置的像素值, f ( x 0 , y 0 ) = v 0 , f ( x 1 , y 0 ) = v 1 , f ( x 0 , y 1 ) = v 2 , f ( x 0 1 , y 1 ) = v 3 f(x_0, y_0) = v0, \quad f(x_1, y_0) = v1, \quad f(x_0, y_1) = v2, \quad f(x_01, y_1) = v3 f(x0,y0)=v0,f(x1,y0)=v1,f(x0,y1)=v2,f(x01,y1)=v3

计算 f ( x , y ) = ? ( x 0 < x < x 1 且 y 0 < y < y 1 ) f(x, y) = ? \quad (x_0 < x < x_1 \quad且\quad y_0 < y < y_1) f(x,y)=?(x0<x<x1y0<y<y1)

如何双线性插值?

问题描述: 已知直线起始端点 p 0 = ( x 0 , y 0 ) p_0 = (x_0, y_0) p0=(x0,y0) p 1 = ( x 1 , y 1 ) p_1 = (x_1, y_1) p1=(x1,y1) f ( p 0 ) = v 0 f(p_0) = v_0 f(p0)=v0 f ( p 1 ) = v 1 f(p_1) = v_1 f(p1)=v1,求直线上任意一点 p = ( x , y ) p=(x,y) p=(x,y) f ( p ) = ? f(p) = ? f(p)=?

如下图所示:

在这里插入图片描述

双线性插值指两次线性插值: 可以先插值x再插值y,也可以先插值y再插值x。咱们这里先x,再y。

1、连接 ( x 0 , y 0 ) 和 ( x 1 , y 0 ) (x_0, y_0)和(x_1,y_0) (x0,y0)(x1,y0) ( x 0 , y 1 ) 和 ( x 1 , y 1 ) (x_0, y_1)和(x_1,y_1) (x0,y1)(x1,y1), 将 ( x , y ) (x,y) (x,y) 投影到两条两条直线上,交点分别为: ( x , y 0 ) 和 ( x , y 1 ) (x,y_0)和(x,y_1) (x,y0)(x,y1)

如下图所示:

在这里插入图片描述

咱们分别计算: f ( x , y 0 ) 和 f ( x , y 1 ) f(x, y_0)和f(x,y_1) f(x,y0)f(x,y1)
f ( x , y 0 ) = x − x 0 x 1 − x 0 ∗ f ( x 1 , y 0 ) + x 1 − x x 1 − x 0 ∗ f ( x 0 , y 0 ) f ( x , y 1 ) = x − x 0 x 1 − x 0 ∗ f ( x 1 , y 1 ) + x 1 − x x 1 − x 0 ∗ f ( x 0 , y 1 ) f(x, y_0) = \frac{x-x_0}{x_1-x_0} * f(x_1, y_0) + \frac{x_1-x}{x_1-x_0} * f(x_0, y_0)\\ f(x, y_1) = \frac{x-x_0}{x_1-x_0} * f(x_1, y_1) + \frac{x_1-x}{x_1-x_0} * f(x_0, y_1) f(x,y0)=x1x0xx0f(x1,y0)+x1x0x1xf(x0,y0)f(x,y1)=x1x0xx0f(x1,y1)+x1x0x1xf(x0,y1)

这里的思路就不用解释了吧,前面文章关于直线线性插值已经讲过了,不懂的小伙伴可以回去翻翻哦!

2、通过 f ( x , y 0 ) 和 f ( x , y 1 ) f(x,y_0)和f(x,y_1) f(x,y0)f(x,y1)​ 的值,再做一次插值得到 f ( x , y ) f(x,y) f(x,y)

f ( x , y ) = y 1 − y y 1 − y 0 ∗ f ( x , y 0 ) + y − y 0 y 1 − y 0 ∗ f ( x , y 1 ) f(x,y) = \frac{y_1 - y}{y_1-y_0} * f(x,y_0) + \frac{y - y_0}{y_1-y_0} * f(x,y_1) f(x,y)=y1y0y1yf(x,y0)+y1y0yy0f(x,y1)

大功告成,是不是很简单呢!

结尾:喜欢的小伙伴可以点点关注+赞哦

希望对各位小伙伴能够有所帮助哦,永远在学习的道路上伴你而行, 我是航火火,火一般的男人!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/16834.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI绘画图生图有什么用?

随着AI渗透到我们生活中的各个角落&#xff0c;AI绘画图生图的出现&#xff0c;更是在艺术领域引起了广泛的关注和讨论。那么&#xff0c;AI绘画图生图究竟有什么作用呢? 首先&#xff0c;AI绘画图生图能够极大地提高创作效率。传统的绘画过程需要艺术家们花费大量的时间和精力…

2024年怎么下载学浪app视频

想要在2024年紧跟潮流&#xff0c;成为一名优秀的学浪用户吗&#xff1f;今天就让我们一起探索如何下载学浪app视频吧&#xff01; 学浪视频下载工具打包 学浪下载工具打包链接&#xff1a;百度网盘 请输入提取码 提取码&#xff1a;1234 --来自百度网盘超级会员V10的分享…

第14章-蓝牙遥控小车 手把手做蓝牙APP遥控小车 蓝牙串口通讯讲解

本文讲解手机蓝牙如何遥控小车&#xff0c;如何编写串口通信指令 第14章-手机遥控功能 我们要实现蓝牙遥控功能&#xff0c;蓝牙遥控功能要使用:1.单片机的串口、2.蓝牙通信模块 所以我们先调试好:单片机的串口->蓝牙模块->接到一起联调 14.1-电脑控制小车 完成功能…

网络工程师备考2——vlan

vlan 1、什么是VLAN&#xff1f; VLAN&#xff08;Virtual LAN&#xff09;&#xff0c;翻译成中文是“虚拟局域网”。LAN可以是由少数几台家用计算机构成的网络&#xff0c;也可以是数以百计的计算机构成的企业网络。VLAN所指的LAN特指使用路由器分割的网络——也就是广播域…

ABeam 德硕 Team Building | SDC Green Day——环保公益行动

山野好拾光 春日公益行 继上年度大连办公室Green Day活动的顺利举办&#xff0c;环保的理念更加深入到ABeam每一位员工的心中。春日天气晴好&#xff0c;西安办公室的小伙伴们也迫不及待来上一场说走就走的Green Day Outing活动。 本次环保公益行动主题为「夏日Go Green畅享山…

千亿级开源大模型Qwen110B部署实测

近日&#xff0c;通义千问团队震撼开源 Qwen1.5 系列首个千亿参数模型 Qwen1.5-110B-Chat。 千亿级大模型普通显卡是跑不了推理的&#xff0c;普通人一般也没办法本地运行千亿级大模型。 为了探索千亿级大模型到底需要计算资源&#xff0c;我用云计算资源部署了Qwen1.5-110B-…

谷歌AI搜索功能“翻车”,用户体验引担忧

近期&#xff0c;谷歌对其搜索引擎进行重大更新&#xff0c;推出了全新AI搜索功能“AI Overview”&#xff0c;试图通过人工智能技术提供更智能便捷的搜索体验&#xff0c;并追赶微软和OpenAI等竞争对手。然而事与愿违&#xff0c;这项备受期待的功能上线后却频频出错&#xff…

测试基础06:软件产品的运行环境dev、sit、test、fat、uat、pre、pro

​​​​​​​课程大纲 1、Dev开发环境 &#xff08;Development environment&#xff09; 使用者 开发人员使用。 用途 用于编程&#xff0c;版本变动很大。 外部能否访问 外部用户无法访问。 2、sit/ITE系统集成测试环境 &#xff08;System Integration Testing en…

30多万汉字词语押韵查询ACCESS\EXCEL数据库

押韵&#xff0c;也作“压韵”。作诗词曲赋等韵文时在句末或联末用同韵的字相押&#xff0c;称为押韵。诗歌押韵&#xff0c;使作品声韵和谐&#xff0c;便于吟诵和记忆&#xff0c;具有节奏和声调美。旧时押韵&#xff0c;要求韵部相同或相通&#xff0c;也有少数变格。现代新…

《开发问题解决》Window下7z解压:cannot create symbolic link : 客户端没有所需的特权

问题描述&#xff1a; 今天使用7z来解压东西的是突然出现这个问题。 问题解决&#xff1a; download直接下载到c盘中&#xff0c;由于所在文件夹有权限限制。无法进行正常解压。 7.zip解压时使用管理员权限进行解压&#xff0c;解压时使用管理员权限。即如图 使用管理员权限重…

【面试干货】找出一个偶数能够表示为两个素数之和的所有可能情况

【面试干货】找出一个偶数能够表示为两个素数之和的所有可能情况 1、实现思想2、代码实现 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 1、实现思想 功能&#xff1a;通过循环遍历奇数&#xff0c;找出一个大于等于 6 的偶数能够表示为两…

【C++初阶】auto关键字

目录 1.auto简介 2.auto的使用 1.auto简介 在早期C/C中auto的含义是&#xff1a;使用auto修饰的变量&#xff0c;是具有自动存储器的局部变量&#xff0c;但遗憾的 是一直没有人去使用它&#xff0c;大家可思考下为什么&#xff1f; C11中&#xff0c;标准委员会赋予了auto全…

红队项目PinkysPalace格式字符串缓冲区溢出详解

简介 渗透测试-地基篇 该篇章目的是重新牢固地基&#xff0c;加强每日训练操作的笔记&#xff0c;在记录地基笔记中会有很多跳跃性思维的操作和方式方法&#xff0c;望大家能共同加油学到东西。 请注意&#xff1a; 本文仅用于技术讨论与研究&#xff0c;对于所有笔记中复现的…

视频白平衡没调好怎么补救 视频白平衡调整用哪些参数 会声会影视频制作教程

没有调不好的白平衡&#xff01;如果有&#xff0c;那就是你的方法没用对。无论你的视频发黄还是发蓝&#xff0c;只要掌握本文提供的方法&#xff0c;简单几步就能纠正色偏、校准白平衡。操作很简单&#xff0c;几乎所有人都能够轻松掌握。有关视频白平衡没调好怎么补救&#…

Android 布局中@NULL的使用和代码实现方式详解

文章目录 1、使用场景2、示例代码实现2.1、移除背景2.2 、移除文本2.3、移除布局宽度或高度2.4、移除提示文本2.5、移除图像资源 3、综合示例3.1、布局文件 activity_main.xml3.2、主活动文件 MainActivity.java3.4、资源文件3.5、运行结果 4、优点5、缺点6、综合分析6.1、适用…

.net core web项目部署IIS报错:HTTP 错误 413.1 - Request Entity Too Large

HTTP 错误 413.1 - Request Entity Too Large 解决办法 这个报错的原因是因为IIS配置问题&#xff0c;IIS最大默认配置只有30M&#xff0c;超过30M就会报错 解决办法 在程序中配置能接收最大字节大小 //配置请求头中能最大接收多少数据 //builder.WebHost.UseKestrel(option…

VGG论文解析—Very Deep Convolutional Networks for Large-Scale Image Recognition

VGG论文解析—Very Deep Convolutional Networks for Large-Scale Image Recognition -2015 研究背景 大规模图像识别的深度卷积神经网络 VGG&#xff08;牛津大学视觉几何组&#xff09; 认识数据集&#xff1a;ImageNet的大规模图像识别挑战赛 LSVRC-2014&#xff1a;Image…

linux系统——nohup后台运行程序

nohup可以将正在执行程序以后台挂起形式执行&#xff0c;也即为执行结果不打印到终端 具体使用可以&#xff0c;nohup待执行的命令&#xff0c;可以将执行命令结果输出到当前目录的nohup.out文件内 nohup也有其他用法

MyCat2之分库分表

原理 一个数据库由很多表的构成&#xff0c;每个表对应的不同的业务&#xff0c;垂直切分是指按照业务将表进行分类&#xff0c;分不到不同的数据库上&#xff0c;这样压力就分担到了不同的库上面。 数据分片 数据分片包括里&#xff1a;垂直分片和水平分片&#xff0c;垂直分…

安装依赖报-gyp: No Xcode or CLT version detected!

错误 > node-gyp rebuild No receipt for com.apple.pkg.CLTools_Executables found at /. No receipt for com.apple.pkg.DeveloperToolsCLILeo found at /. No receipt for com.apple.pkg.DeveloperToolsCLI found at /. gyp: No Xcode or CLT version detected! gyp ERR!…