当前位置:网站首页>MLX90640 红外热成像仪测温模块开发笔记(五)
MLX90640 红外热成像仪测温模块开发笔记(五)
2022-07-25 10:29:00 【河北稳控科技】
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;
边栏推荐
- [high concurrency] how to realize distributed flow restriction under 100 million level traffic? You must master these theories!!
- HCIP (01)
- 【云享新鲜】社区周刊·Vol.72- 2022华为开发者大赛中国区首场开幕式启动;华为云KooMessage火热公测中…
- Google Earth Engine——统计逐年土地分类的频率
- The University of Gottingen proposed clipseg: a model that can perform three segmentation tasks simultaneously using text and image prompts
- 【flask高级】结合源码详解flask的运行机制(出入栈)
- 性能测试中TPS的计算【杭州多测师】【杭州多测师_王sir】
- feign客户端请求之LoadBalancerLifecycle生命周期
- NowCoderTOP7-11——持续更新ing
- Nb-iot control LCD (date setting and reading)
猜你喜欢
Learn NLP with Transformer (Chapter 3)
![[flask advanced] deeply understand the application context and request context of flask from the source code](/img/67/88c21967da28d09694568ebdaae44c.png)
[flask advanced] deeply understand the application context and request context of flask from the source code

What is MySQL transaction

复习背诵整理版
![[flask advanced] combined with the source code, explain the operation mechanism of flask (in and out of the stack)](/img/a0/9110b83ff5c7965809bbc9f3948956.jpg)
[flask advanced] combined with the source code, explain the operation mechanism of flask (in and out of the stack)

Flask框架——Session与Cookie

从宏观到微观 零基础 详解bert

NowCoderTOP7-11——持续更新ing

Flame framework - Flame WTF form: file upload, verification code

Reinforcement learning (III)
随机推荐
shell-第五章作业
Learn NLP with Transformer (Chapter 3)
HCIA experiment (08)
How to optimize the performance when the interface traffic increases suddenly?
How to notify users of wechat applet version update?
How can you use unity without several plug-ins? Unity various plug-ins and tutorial recommendations
ESP8266 使用 DRV8833驱动板驱动N20电机
Dataset and dataloader data loading
学习周刊 - 总第 63 期 - 一款开源的本地代码片段管理工具
为什么重写equals()方法必须要重写hashCode()方法
玩游戏想记录一下自己超神的瞬间?那么就来看一下如何使用Unity截图吧
【Servlet】请求的解析
[information system project manager] thought map series essence summary
HCIP(12)
100W!
MLX90640 红外热成像仪测温模块开发笔记(五)
MySQL | GROUP_CONCAT函数,将某一列的值用逗号拼接
[递归] 938. 二叉搜索树的范围和
Why should the hashcode () method be rewritten when rewriting the equals () method
Hcip experiment (02)