当前位置:网站首页>MLX90640 红外热成像仪测温传感器模块开发笔记(五)
MLX90640 红外热成像仪测温传感器模块开发笔记(五)
2022-07-25 12:41:00 【51CTO】
MLX90640 红外热成像仪测温模块开发笔记(五)阵列插值-由 32*24 像素到 512*384 像素

MLX90640 的 32*24=768 像素虽然比以往的 8*8 或者 16*8 像素提高了很多,但若直接用这些像素还是不能很好的形成热像图,为了使用这些像素点平滑成像就需要对其进行插值,使用更多的像素来绘制图像。
看了一些别人的算法,感觉主要就是多项式插值,仅是插值方法的组合方式不同。
算法依据
比较有代表性的是杭州电子科技大学杨风健等《基于 MLX90620 的低成本红外热成像系统设计》,使用三次多项式+双线性插值,将原 16*4 像素扩展为 256*64 像素。双线性插值的本质就是一次函数(一次多项式)。该文章得到的结论是:
(1) 双线性插值法计算量小、速度快,但对比度低、细节模糊。
(2) 三次多项式插值,图像效果较清晰,对比度较高,但计算量较大。
(3) 先双线性插值再三次多项式插值,效果优于上两种单一插值方法。
(4) 先三次多项式插值再双线性插值,高低温分布更加明显,图像效果更接趋于真实。同时,该文章还使用了一种对图像质量的评估方法---熵&平均梯度
熵,热力学中表征物质状态的参量之一,用符号 S 表示,其物理意义是体系混乱程度的度量。用于图像评价表示图像表达信息量的多少。图像熵越高信息量越大。
平均梯度,指图像的边界或影线两侧附近灰度有明显差异,即灰度变化率大,这种变化率的大小可用来表示图像清晰度。它反映了图像微小细节反差变化的速率,即图像多维方向上密度变化的速率,表征图像的相对清晰程度。值越大表示图像越清晰。
插值实现
每行或者列的首个像素在前面插值 2 个点
1~n-1 像素,每个像素后面插值 3 个点最后一个像素,在后面插值 1 个点
n+2+(n-1)*3+1=n+2+n*3-1*3+1=4n+2-3+1=4n,即:像素变为原来的 4 倍
上面的处理方法,首个像素之前插入 2 个点,最后一个像素之后插入 1 个点,下次插值
时,应首个之前插值 1 个点,末个像素之后插值 2 个点,以达到图像平衡。
每次插值后像素为插值前的 4 倍,经过两次插值,即可将 32*24 改变为 512*384 像素。下面是已经实际使用的插值算法,不过是用 Pascal(Delphi)写的,有兴趣的可以改为
C 语言的,语句对应直接改就行,语言本来就是相通的嘛。

//这是一维数组插值算法
//SourceDatas:TDoubles;插值前的一维数组
//Dir:Integer;在哪个方向和末尾插入 2 个值(0:前面;1:末尾)
//times:Integer 多项式的项数,一次多项式是 2 项,二次多项式是 3 项
//返回值:插值后的一维数组(数量是插值前*4) function PolynomialInterpolationArr(
SourceDatas:TDoubles; Dir:Integer;
times:Integer):TDoubles;//一维数组插值
var
i,j,k:Integer;
arrCount:Integer;
边栏推荐
- 【高并发】通过源码深度分析线程池中Worker线程的执行流程
- 零基础学习CANoe Panel(13)—— 滑条(TrackBar )
- Maskgae: masked graph modeling meets graph autoencoders
- 【AI4Code】《CodeBERT: A Pre-Trained Model for Programming and Natural Languages》 EMNLP 2020
- 2022 Henan Mengxin League game (3): Henan University I - Travel
- [problem solving] org.apache.ibatis.exceptions PersistenceException: Error building SqlSession. 1-byte word of UTF-8 sequence
- 迁移PaloAlto HA高可用防火墙到Panorama
- conda常用命令:安装,更新,创建,激活,关闭,查看,卸载,删除,清理,重命名,换源,问题
- 弹性盒子(Flex Box)详解
- 业务可视化-让你的流程图'Run'起来(3.分支选择&跨语言分布式运行节点)
猜你喜欢

Zero basic learning canoe panel (14) -- led control and LCD control

Zero basic learning canoe panel (13) -- trackbar
软件测试流程包括哪些内容?测试方法有哪些?

2022.07.24 (lc_6124_the first letter that appears twice)

Kyligence was selected into Gartner 2022 data management technology maturity curve report

AtCoder Beginner Contest 261 F // 树状数组

零基础学习CANoe Panel(12)—— 进度条(Progress Bar)

Experimental reproduction of image classification (reasoning only) based on caffe resnet-50 network

EMQX Cloud 更新:日志分析增加更多参数,监控运维更省心

Zero basic learning canoe panel (12) -- progress bar
随机推荐
【Flutter -- 实例】案例一:基础组件 & 布局组件综合实例
Go: Gin custom log output format
Maskgae: masked graph modeling meets graph autoencoders
Substance Designer 2021软件安装包下载及安装教程
阿里云技术专家秦隆:可靠性保障必备——云上如何进行混沌工程?
State mode
[ROS advanced chapter] Lecture 9 programming optimization of URDF and use of xacro
【AI4Code】《CoSQA: 20,000+ Web Queries for Code Search and Question Answering》 ACL 2021
Requirements specification template
【C语言进阶】动态内存管理
软件测试流程包括哪些内容?测试方法有哪些?
Azure Devops (XIV) use azure's private nuget warehouse
Leetcode 0133. clone diagram
“蔚来杯“2022牛客暑期多校训练营2 补题题解(G、J、K、L)
485通讯( 详解 )
软件测试面试题目:请你列举几个物品的测试方法怎么说?
[机器学习] 实验笔记 – 表情识别(emotion recognition)
Excuse me, using data integration to import data from PostgreSQL to MySQL database, emoj appears in some data fields
Detailed explanation of flex box
Kyligence 入选 Gartner 2022 数据管理技术成熟度曲线报告