【matlab】代码库-双线性插值

interp_2D函数:实现双线性插值

摘要:该MATLAB函数interp_2D实现了二维双线性插值算法。函数接受两个点的坐标及其对应的查找表点,通过fund_updowm辅助函数确定相邻点位置后,先在x方向进行线性插值生成中间值,再在y方向进行插值计算最终结果。算法能正确处理边界情况(当点位于查找表节点时直接取值),适用于二维网格数据的插值计算。

matlab 复制代码
function out = interp_2D(point1,lut_ponit1,point2,lut_ponit2,lut)
%双线性插值计算公式
%    point1  |  注:ripple
%    point2  _  注:Gray


[x_down,x_up]=fund_updowm(point1,lut_ponit1);
[y_down,y_up]=fund_updowm(point2,lut_ponit2);

[V,H]=size(lut_ponit1);
num_point1=max(H,V);
[v,h]=size(lut_ponit2);
num_point2=max(h,v);

new_lut=zeros(num_point2,1,'double');
if x_down~=x_up
    for i=1:num_point1
        new_lut(i,1)=lut(i,x_down)+(point1-x_down)*(lut(i,x_up)-lut(i,x_down))/(x_up-x_down);
    end
else
    new_lut(:,1)=lut(:,x_down);
end

if y_down~=y_up
   
    out=double(new_lut(y_down)+(point2-lut_ponit2(y_down))*(new_lut(y_up)-new_lut(y_down))/(lut_ponit2(y_up)-lut_ponit2(y_down)));
   
else
    out=double(new_lut(y_down));
end



end
相关推荐
Once_day6 小时前
C++之《程序员自我修养》读书总结(1)
c语言·开发语言·c++·程序员自我修养
喜欢喝果茶.6 小时前
QOverload<参数列表>::of(&函数名)信号槽
开发语言·qt
亓才孓6 小时前
[Class类的应用]反射的理解
开发语言·python
努力学编程呀(๑•ี_เ•ี๑)6 小时前
【在 IntelliJ IDEA 中切换项目 JDK 版本】
java·开发语言·intellij-idea
island13147 小时前
CANN GE(图引擎)深度解析:计算图优化管线、内存静态规划与异构任务的 Stream 调度机制
开发语言·人工智能·深度学习·神经网络
坚持就完事了7 小时前
Java中的集合
java·开发语言
魔芋红茶7 小时前
Python 项目版本控制
开发语言·python
云小逸7 小时前
【nmap源码解析】Nmap OS识别核心模块深度解析:osscan2.cc源码剖析(1)
开发语言·网络·学习·nmap
冰暮流星7 小时前
javascript之二重循环练习
开发语言·javascript·数据库
风指引着方向7 小时前
自定义算子开发入门:基于 CANN op-plugin 的扩展实践
开发语言