双线性插值法(Bilinear interpolation)

2024-04-06 03:32

本文主要是介绍双线性插值法(Bilinear interpolation),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

双线性插值法(Bilinear interpolation)是利用待求象素反变换到原图像对应的浮点坐标,邻近的四个象素在两个方向上作线性内插。四邻近像素值的加权平均即为待测点像素值,计算权重反比于浮点在双线性方向上的映射距离。
双线性插值是利用了需要处理的原始图像浮点坐标周围的四个像素点的相关性,通过双线性算法计算。同上A中所设,目的坐标M(x,y)和浮点坐标m(i+u,j+v),则:

f(M)=(1-u)(1-v)*f(i,j)+(1-u)v*f(i,j+1)+ u(1-v)*f(i+1,j) +uv*f(i+1,j+1)

function re_im = dlinear(im, p, q)
%双线性插值法实现图像缩放,输入目标图像和行缩放、纵缩放倍数
%ziheng 2016.3.29
%imshow(im);
[m,n] = size(im);
im_R = im(:,:,1);
im_G = im(:,:,2);
im_B = im(:,:,3);
l = round(m*p);
h = round(n*q)/3;
re_R = uint8(zeros(l,h));
re_G = uint8(zeros(l,h));
re_B = uint8(zeros(l,h));
for dstx = 1:lfor dsty = 1:hx = floor(dstx/p); u = dstx/p - x;y = floor(dsty/q); v = dsty/q - y;xx = max(1,x); xa = min(m,x+1);yy = max(1,y); ya = min(n/3,y+1);re_R(dstx,dsty) = (1-u)*(1-v)*im_R(xx,yy) + u*(1-v)*im_R(xa,yy)+(1-u)*v*im_R(xx,ya) + u*v*im_R(xa,ya);re_G(dstx,dsty) = (1-u)*(1-v)*im_G(xx,yy) + u*(1-v)*im_G(xa,yy)+(1-u)*v*im_G(xx,ya) + u*v*im_G(xa,ya);re_B(dstx,dsty) = (1-u)*(1-v)*im_B(xx,yy) + u*(1-v)*im_B(xa,yy)+(1-u)*v*im_B(xx,ya) + u*v*im_B(xa,ya);end
end
re_im = cat(3,re_R,re_G,re_B);
figure,imshow(re_im);

这篇关于双线性插值法(Bilinear interpolation)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/878886

相关文章

动画插值器Interpolation

插值器定义: 用于修改一个动画过程中的速率,可以定义各种各样的线性或非线性变化函数,比如匀速.加速.减速等。 说白了(也就是通俗的说):其实就是一个 时间的函数,用来 定义了动画的变化律 系统的插值器: 在Android中所有的插值器都是Interpolator 的子类,下面是几种插值器: AccelerateDecelerateInterolator  先加速后减速,

计算方法——插值法程序实现(一)

例题 给出的函数关系表,分别利用线性插值及二次插值计算的近似值。 0.10.20.30.40.51.1051711.2214031.3498591.4918251.648721 参考代码一:Python代码实现(自编码) import math""":parameter用于计算插值多项式的系数"""def Parameters(data_x,data_y,size):param

python添加进度条,以双线性差值为例

from tqdm import tqdm import time data = range(10) for item in tqdm(data, desc='Processing'):     time.sleep(0.1)   原本代码:  import numpy as npimport cv2from matplotlib import pyplot as pltimg

智能优化算法改进策略之局部搜索算子(三)—二次插值法

1、原理介绍 多项式是逼近函数的一种常用工具。在寻求函数极小点的区间(即寻查区间)上,我们可以利用在若干点处的函数值来构成低次插值多项式,用它作为求极小点的函数的近似表达式,并用这个多项式的极小点作为原函数极小点的近似。低次多项式的极小点比较容易计算。常用的插值多项式为二次或三次,一般说来三次插值公式的收敛性好一些,但在导数不变计算时,三点二次插值也是一种常用的方法[1]。 3

【tensorrt】——双线性上采样插件(提供源码)

简介: 如果用nvidia的gpu,在推理的时候,采用tensorrt进行加速是一个很好的选择,虽然tensorrt没有开源。 我一般选择的模型训练到部署的流程是: pytorch训练模型onnx模型导出onnx模型转ncnn,mnn,tensorrt等模型嵌入式推理框架,推理脚本书写。 这里用tensorrt做语义分割网络pspnet的推理加速。技术路线采用:pytorch——onn

C++图像缩放(StretchBlt,StretchDIBits,双线性内插法)

VC++中自带的图像缩放函数两个: 1、 BOOL StretchBlt ( int x, int y, int nWidth, int nHeight, CDC* pSrcDC, int xSrc, int ySrc, int nSrcWidth, int nSrcHeight, DWORD dwRop ); 2、 int StretchDIBits(H

机器学习笔记——双线性回归 MF、 FM

双线性模型 在推荐系统领域常常使用 含义是二元函数固定一个自变量时,函数关于另外一个自变量是线性的。 矩阵分解模型MF 如果我们需要对一个用户推荐电影我们应该怎么推荐? 结合用户以及用户对电影的评分,可以猜测用户的偏好,如果给某部电影分值很高,这个电影是爱情剧、战争、悬疑、哪个导演、什么时间等等都是特征,将每部电影的特征表示成向量,向量的每一个维度代表应该特征,其值越大就表示电影在某个特征程

自然数幂和 拉格朗日插值法和第二类斯特林数法

写在这里,目的是在以后需要看的时候不用再去网上抄(划掉) 求 s ( n ) = ∑ i = 1 n i k 求s(n)=\sum_{i=1}^n i^k 求s(n)=i=1∑n​ik 拉格朗日插值法 给定若干个点值,(x0,y0),(x1,y1),(xn,yn),它们的差值多项式 L ( x ) = ∑ i = 0 n y i ∗ ∏ j ≠ i x − x j x i − x j L(

cubic convolution interpolation (三次卷积插值)

算法来源:Cubic convolution interpolation for digital image processing 文章只对一维情形进行分析,二维类似。 许多插值函数能够写成形式(其中是插值点,u是基函数(文章中叫插值核),h是采样间隔,是参数) 通过插值,用来近似。 cubic convolution interpolation 中插值核u定义为子区间(-2,

拉格朗日插值法 C语言实现

/*  *作者:KDF5000  *功能:利用拉格朗日插值法求解近似值  *时间:2013.4.15  */   #include <stdio.h>   #include <stdlib.h>   #include <string.h>   //存放插值节点   struct Data{       double x;       double y;       struct Data *