当前位置: 首页 > news >正文

C++插值记录

一、插值介绍

项目中,由于测量点太少,最少时只有几个点,而且位置不确定,不是成行列的,使用VTK生成热力图/3D图时,图形要么显示不出来,要么显示异常,因此想到了插值,插值有好多种算法,例如:

1、IDW:距离反比(Inverse distance weighting)

2、ModifiedShepard:IDW的改进方法

3、RBF:径向基函数(RadialBasisFunction)

4、Kriging:克里金

5、NNI:自然邻点插值(NaturalNeighbor)

二、距离反比插值(效果差)

开始使用最简单的距离反比插值,但是发现数据波动较大时,插值后的图像显示不全或整体坑洼现象严重:

三、QT MinGW 32bit插值代码

之后网上找了大神的下面这个代码,有IDW、ModifiedShepard、RBF、Kriging等插值算法,在QT MinGW 32bit下可以编译通过,但是在QT5.9.2 MSVC2017 64bit编译时离谱报错,技术不到家没研究明白,就放弃了(谁能帮帮我)。

大神的链接(QT MinGW 32bit):

【Qt】绘制热度图、频谱图、地形图、colormap - miyanyan - 博客园

我又保存了防止链接失效(QT MinGW 32bit):

【免费】QTMinGW32bit下可以编译通过的插值算法,有IDW、ModifiedShepard、RBF、Kriging等插值算法资源-CSDN文库

四、QT VS2017 64bit下克里金插值(效果好)

于是从网上找了克里金插值的C++代码,VS2017下可以直接运行,我整理代码到QT VS2017 64bit下测试后效果很好,下面是2个点的时候(1个点调用克里金插值会报异常):

大神的代码链接(VS2017):

GitHub - ByteShark/Kriging: Simple and Ordinary Kriging

我备份后的代码链接(VS2017):

插值算法:VS2017下的克里金插值算法代码资源-CSDN文库

我整理后的部分代码链接:

插值算法:QT5.9.2MSVC201764bit下,距离反比、克里金插值算法资源-CSDN文库

调用方式:

void TestInterpolation()
{    //point_3D是自定义结构体QVector<point_3D> data;point_3D tmp;tmp.x_value = 5;tmp.y_value = -15;tmp.z_value = 10000.8;data.append(tmp);tmp.x_value = -35;tmp.y_value = 5;tmp.z_value = 20100.8;data.append(tmp);tmp.x_value = 35;tmp.y_value = 5;tmp.z_value = 10030.8;data.append(tmp);tmp.x_value = -35;tmp.y_value = -5;tmp.z_value = 10000.8;data.append(tmp);//插值,如果是克里金插值,输入1个点或以下时克里金插值将出现异常,至少2个点以上才可以插值QVector<point_3D> interp_points;if(data.count() >= 2){Interpolation Interp;Interp.InitPar((WaferSizeEnum)ExternParameters::m_detect_wafer_size);Interp.ComputeInterpolation(data, interp_points);}else{return;}
}

http://www.lryc.cn/news/573860.html

相关文章:

  • 开发云数据库
  • Python环境搭建竞赛
  • python的高校教师资源管理系统
  • 【Guava】0.做自己的编程语言
  • 删除node并且重装然后重装vue
  • 深度学习:PyTorch人工神经网络优化方法分享(2)
  • 【redis使用场景——缓存——双写一致性】
  • 文心一言(ERNIE Bot):百度打造的知识增强大语言模型
  • 一键打包利器:gopack - 极简Go程序编译与压缩工具
  • Ollama按照与使用
  • openapi-generator-maven-plugin自动生成HTTP远程调用客户端
  • Java面试复习指南:基础、面向对象、Java 8新特性及并发编程
  • ASP.NET Core API文档与测试实战指南
  • 编程江湖-Git
  • 分库分表下的 ID 冲突问题与雪花算法讲解
  • 【数据结构】_二叉树部分特征统计
  • python基础(3)
  • 【论文阅读 | CVPR 2024 |Fusion-Mamba :用于跨模态目标检测】
  • 利用通义大模型构建个性化推荐系统——从数据预处理到实时API部署
  • 算法-动态规划-钢条切割问题
  • 简单工厂模式,工厂模式和注册工厂模式
  • Go 循环依赖的依赖注入解决方案详解
  • Cache Travel-09-从零开始手写redis(17)v1.0.0 全新版本架构优化+拓展性增强
  • AI三步诊断心理:比ChatGPT更懂人心
  • C#Halcon从零开发_Day14_AOI缺陷检测策略1_Bolb分析+特征分析_饼干破损检测
  • JavaScript性能优化实战
  • MySQL索引分类有哪些?
  • RA4M2开发IOT(9)----动态显示MEMS数据
  • 基于python代码的通过爬虫方式实现TK下载视频(2025年6月)
  • 支付宝携手HarmonyOS SDK实况窗,开启便捷停车生活