当前位置:网站首页>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;
边栏推荐
- Some usages of beautifulsoup
- 树形动态规划
- HCIP(12)
- 【flask高级】结合源码详解flask的运行机制(出入栈)
- tensorflow入门
- Redis sentry, high availability executor
- Openstack Skyline 组件安装
- Ue4.26 source code version black screen problem of client operation when learning Wan independent server
- MySQL advanced statement (I) (there is always someone who will make your life no longer bad)
- shell-第四天作业
猜你喜欢

From the perspective of open source, analyze the architecture design of SAP classic ERP that will not change in 30 years

机智云物联网平台 STM32 ESP8266-01S 简单无线控灯

HCIP(12)

BGP federal experiment

I, AI doctoral student, online crowdfunding research topic
Learn NLP with Transformer (Chapter 2)

Learn NLP with Transformer (Chapter 6)

Learn NLP with Transformer (Chapter 8)

MySQL advanced statement (I) (there is always someone who will make your life no longer bad)

NowCoderTOP12-16——持续更新ing
随机推荐
[动态规划] 70. 爬楼梯
信息熵的定义
学习周刊 - 总第 63 期 - 一款开源的本地代码片段管理工具
mysql主从复制与读写分离
C# Newtonsoft.Json 高级用法
From the perspective of open source, analyze the architecture design of SAP classic ERP that will not change in 30 years
How to notify users of wechat applet version update?
为什么重写equals()方法必须要重写hashCode()方法
Leetcode 560 prefix and + hash table
Understand the life cycle and route jump of small programs
性能测试中TPS的计算【杭州多测师】【杭州多测师_王sir】
Flame framework - Flame WTF form: file upload, verification code
MLX90640 红外热成像仪测温模块开发笔记(五)
NB-IOT控制液晶屏(日期的设置与读取)
史上最全的立创元器件封装库导入AD详细教程(一直白嫖一直爽)
Nowcodertop7-11 - continuous updating
[递归] 938. 二叉搜索树的范围和
Learn NLP with Transformer (Chapter 3)
Reinforcement learning (III)
Learn NLP with Transformer (Chapter 2)