6

MLX90640 红外热成像仪测温传感器模块开发笔记(五)

 2 years ago
source link: https://blog.51cto.com/u_15704174/5509804
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

MLX90640 红外热成像仪测温传感器模块开发笔记(五)

原创

MLX90640 红外热成像仪测温模块开发笔记(五)阵列插值-由 32*24 像素到 512*384 像素  

MLX90640 红外热成像仪测温传感器模块开发笔记(五)_测温传感器

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 语言的,语句对应直接改就行,语言本来就是相通的嘛。  

MLX90640 红外热成像仪测温传感器模块开发笔记(五)_红外热成像_02

//这是一维数组插值算法  

//SourceDatas:TDoubles;插值前的一维数组  

//Dir:Integer;在哪个方向和末尾插入 2 个值(0:前面;1:末尾)  

//times:Integer 多项式的项数,一次多项式是 2 项,二次多项式是 3 项  

//返回值:插值后的一维数组(数量是插值前*4) function PolynomialInterpolationArr(  

SourceDatas:TDoubles; Dir:Integer;  

times:Integer):TDoubles;//一维数组插值  

   i,j,k:Integer;  

   arrCount:Integer;  


Recommend

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK