opencv(双线性插值原理)

双线性插值是一种图像缩放、旋转或平移时进行像素值估计的插值方法。当需要对图像进行变换时,特别是尺寸变化时,原始图像的某些像素坐标可能不再是新图像中的整数位置,这时就需要使用插值算法来确定这些非整数坐标的像素值。

双线性插值的工作原理是这样的:

  1. 假设要查找目标图像上坐标为 (x', y') 的像素值,在原图像上对应的浮点坐标为 (x, y)。

  2. 在原图像上找到四个最接近(x, y)的像素点,通常记作 P00(x0, y0), P01(x0, y1), P10(x1, y0), P11(x1, y1),它们构成一个2x2的邻域矩阵。

  3. 分别在水平方向和垂直方向上做线性插值:

    • 水平方向:根据 x 与 x0 和 x1 的关系计算出 P00 和 P10 之间的插值结果。

    • 垂直方向:将第一步的结果与 y 与 y0 和 y1 的关系结合,再在 P00-P01 和 P10-P11 对之间做一次线性插值。

  4. 综合上述两次线性插值的结果,得到最终位于 (x', y') 处的新像素的估计值。

    总结: 4乘4的图像 变成6乘6的图像 那么目标图像的(3,3)点的像素是原图中(1.8333,1.8333)的像素颜色,但是坐标必须是整数 它周围有四个像素点 该取谁呢? 按照到各自的距离比例 来分配颜色值

假如已知两个点(x_{0},y_{0})和(x_{1},y_{1}),我们要计算x_{0},y_{0}区间内某一位置x在直线上的y值,那么计算过程为:

仔细看公式,其实就是计算距离,并将距离作为一个权重用于y_{0}和y_{1}的加权求和。这就是线性插值,而双线性插值本质上就是在两个方向上做线性插值。

还是给出目标点与原图像中点的计算公式:

比如我们根据上述公式计算出了新图像中的某点所对应的原图像的点P,其周围的点分别为Q12、Q22、Q11、Q21, 要插值的P点不在其周围点的连线上,这时候就需要用到双线性插值了。首先延申P点得到P和Q11、Q21的交点R1与P和Q12、Q22的交点R2,如下图所示:

双线性插值的对应关系看似比较清晰,但还是有2个问题。首先是根据坐标系的不同,产生的结果不同,这张图是左上角为坐标系原点的情况,我们可以发现最左边x=0的点都会有概率直接复制到目标图像中(至少原点肯定是这样),而且就算不和原图像中的点重合,也相当于进行了1次单线性插值(带入到权重公式中会发现结果)。

下面这张图是右上角为坐标系原点的情况,我们可以发现最右面的点都会有概率直接复制到目标图像中(至少原点肯定是这样),而且就算不和原图像中的点重合,也相当于进行了1次单线性插值。那么当我们采用不同的坐标系时产生的结果是不一样的,而且无论我们采用什么坐标系,最左侧和最右侧(最上侧和最下侧)的点是"不公平的",这是第一个问题。

第二个问题时整体的图像相对位置会发生变化。如下图所示,左侧是原图像(3,3),右侧是目标图像(5,5),原图像的几何中心点是(1,1),目标图像的几何中心点是(2,2),根据对应关系,目标图像的几何中心点对应的原图像的位置是(1.2,1.2),那么问题来了,目标图像的原点(0,0)和原始图像的原点是重合的,但是目标图像的几何中心点相对于原始图像的几何中心点偏右下,那么整体图像的位置会发生偏移,所以参与计算的点相对都往右下偏移会产生相对的位置信息损失。这是第二个问题。

相关推荐
IT_陈寒12 分钟前
Java线程池这破玩意,差点让我周末加班排查到凌晨
前端·人工智能·后端
广州山泉婚姻14 分钟前
Go微服务落地:服务通信、注册发现完整实现分享
人工智能·深度学习·微服务
W***259218 分钟前
2026 企业 AI 办公工具选型指南:适合团队使用的 AI 办公产品有哪些
大数据·人工智能
码农59927 分钟前
让 Agent 替你看 Bug:简单示例读懂 MCP 服务
人工智能
AC赳赳老秦27 分钟前
公开音频转写信息提取:OpenClaw 处理发布会与听证会文本并提取核心决策信息
大数据·开发语言·汇编·数据库·人工智能·deepseek·openclaw
四六的六30 分钟前
Agent 长会话设计实战:从对话上下文到持久状态,把记忆写进检查清单
人工智能·个人开发·ai编程·ai产品·长上下文·ai代码生成·ai会话
u13013035 分钟前
GitHub 热榜项目:周榜(2026-09-27)
人工智能·github
AI搅拌机41 分钟前
MiniMax H3导演台Bug修复指南:二采、首尾帧生视频和图生视频优化!全能工作流分享~
人工智能
老纪的技术唠嗑局1 小时前
Tibo 谈 Codex:harness 总比模型快一步
数据库·人工智能
程序员于老七1 小时前
漫话大模型:7 家中国公司被点名「蒸馏」,他们到底偷走了什么?
人工智能