两点定标法_一种两点校正红外热像仪的非均匀性的模块及方法

一种两点校正红外热像仪的非均匀性的模块及方法

【技术领域】

[0001] 本发明属于红外热成像系统的非均匀性校正领域,特别是一种两点校正红外热像 仪的非均匀性的模块及方法。

【背景技术】

[0002] 在过去的几十年中,红外探测器件的元数不断增加,由单元发展到线列,由线列发 展到焦平面阵列(FPA)。红外焦平面阵列探测器的出现,是红外成像史上一个划时代的革 命,它大幅提高了红外成像系统的灵敏度和可靠性。作为现代红外系统和热成像系统的关 键部件,凝视型红外焦平面阵列(IRFPA)器件成本低廉,体积小,无需制冷,目前已在军事 (红外跟踪、预警、制导)、医疗、安全等方面得到广泛应用,用它构成的红外成像系统较传 统的光机扫描红外成像系统具有结构简单、工作稳定、灵敏度高、噪声等效温差(NETD)小 等优点。

[0003] 然而,受红外探测器材料和工艺方面的影响,红外焦平面阵列的非均匀性问题成 为长期以来制约其应用的根本问题。一般意义上的非均匀性是指红外焦平面阵列在同一 均匀辐射下由于探测器各像元的红外响应度不一致导致其视频输出幅度不同,造成像质降 低,又称空间噪声;更进一步意义上的非均匀性还包括由焦平面阵列所处环境的温度变化、 电荷传输效率、Ι/f噪声(电流噪声)、无效探测元(坏元)以及红外光学系统等诸多因素 所造成的成像质量的下降。这种固定的图像噪声,使红外成像系统的温度分辨率下降,图像 质量受到严重影响。因此,必须对红外焦平面阵列进行非均匀性校正。

[0004] 目前普遍采用后期算法处理来补偿空间非均匀性。总起来说,可以将这些技术分 为二大类,即基于定标和基于场景的非均匀性校正技术。最初开发使用的是基于定标的非 均匀性校正技术,其中较为成熟的方法是基于探测元的单点、两点及多点定标算法,它们以 普朗克辐射定律和红外探测元的线性响应模型为基础,现阶段广泛应用于成像系统之中。 近年来,各种基于场景的非均匀性校正技术也不断涌现,以弥补温漂现象,避开定标过程; 但在面临极端场景,如场景静止、镜头旋转或反差极大的场景反复切换时,校正效果会大幅 退化,甚至无法观察;另外,受限于现有的系统结构和硬件水平,只能用于软件仿真或后续 处理,还无法做到实时,实际应用尚不成熟。比较而言,基于定标的非均匀性校正更为精确, 对于场景和目标没有特殊要求,硬件易于实现和集成,是红外焦平面阵列系统公认的评估 手段。

[0005] 为获得更高的帧频和更好的图像质量,红外热像仪的探测器和外部存储器设备不 断更新换代,每次系统架构升级都必须重新编写两点校正的处理程序,进行了大量重复性 工作,延长了开发周期。

【发明内容】

[0006] 本发明的目的在于提供一种两点校正红外热像仪的非均匀性的模块及方法,结合 FPGA+外部存储器的系统构架,使热像仪在实际使用过程中满足在线定标和实时校正的要 求。

[0007] 实现本发明目的的技术解决方案为:一种两点校正红外热像仪的非均匀性的模 块,包括数据格式调整模块、串口指令解析模块、定标控制模块、加权平均运算模块、外部存 储器仲裁控制模块、第一 FIFO缓冲区、第二FIFO缓冲区、求均值模块、并转串及FLASH控制 器、、内部寄存器、两点参数计算模块、两点校正模块和坏元替代模块。

[0008] 加权平均运算模块分别与串口指令解析模块、定标控制模块和外部存储器仲裁 控制模块连接,外部存储器仲裁控制模块分别与串口指令解析模块、定标控制模块、第二 FIFO缓冲区、求均值模块和两点参数计算模块连接,定标控制模块分别与数据格式调整模 块和串口指令解析模块连接,两点校正模块分别与串口指令解析模块、第一 FIFO缓冲区、 两点参数计算模块和坏元替代模块连接,并转串及FLASH控制器与第二FIFO缓冲区连接, 数据格式调整模块与第一 FIFO缓冲区连接,两点参数计算模块与坏元替代模块连接,外部 存储器仲裁控制模块再外接外部存储器,外部存储器仲裁控制模块、求均值模块、并转串及 FLASH控制器和内部寄存器分别外接串行FLASH。

[0009] 数据格式调整模块把红外热像仪的探测器采集的原始数据转化为标准格式数据, 即当前帧A,并送到定标控制模块和第一 FIFO缓冲区;把红外热像仪的探测器对准低温黑 体,串口指令解析模块对上位机的定标命令进行解析,并把得到的累加帧数p和存低温使 能送入定标控制模块,权值参数q送入加权平均运算模块;定标控制模块控制当前帧A送到 加权平均运算模块进行加权平均运算,发送读写指令给外部存储器仲裁控制模块,在外部 存储器中读出存储帧B并写入均值帧C,循环迭代p次后,最终的均值帧C低温定标图像L。 [0010] 外部存储器仲裁控制模块接收各读写指令,对它们在时间上进行安排,发送读写 请求、地址和数据给外部存储器,控制外部存储器依次循环响应各读写指令;再把红外热像 仪的探测器对准高温黑体,重复上述过程,得到高温定标图像Η ;串口指令解析模块发送写 FLASH使能信号给外部存储器仲裁控制模块,从外部存储器中同时读出低温定标图像L和 高温定标图像H,分别送入求均值模块和第二FIFO缓冲区;求均值模块分别求出低温定标 图像L的均值£和高温定标图像Η的均值謹,并把它们存入串行FLASH的用户区域;第二 FIFO缓冲区用来实现速率匹配,缓冲后的数据送入并转串及FLASH控制器;并转串及FLASH 控制器完成对串行FLASH的配置,把低温定标图像L和高温定标图像Η转化为串行数据,依 次顺序写入串行FLASH用户区域,至此定标操作完成。

[0011] 系统重新上电后,自动从串彳丁 FLASH中依次读出低温定标图像L和1?温定标图像 Η并送至外部存储器仲裁控制模块,由其写入外部存储器指定位置;串行FLASH自动读出低 温定标图像的均值:£和高温定标图像的均值:麗:存入内部寄存器中;当一帧标准数据到达第 一 FIFO缓冲区时,就通过外部存储器仲裁控制模块同时读出低温定标图像L和高温定标图 像H,从内部寄存器中读出低温定标图像的均值S和高温定标图像的均值H一起送到两点 参数计算模块,通过两点参数计算模块计算得到增益校正系数K和偏置校正系数B,并将增 益校正系数K和偏置校正系数B送入两点校正模块进行校正,得到校正后的图像Y,若增益 校正系数K和偏置校正系数B的值超过设定的阈值,就把坏元标志位置为1,否则置为0,坏 元标志位送入坏元替代模块;将校正后的图像Y再送入坏元替代模块,坏元替代模块检测 坏元标志位,一旦发现为1,就把该处对应的像素值用缓存的前面一个的像素值替换,至此 校正处理完成,将得到的最终图像输出。

[0012] 第一 FIFO缓冲区起到数据同步的作用,把标准数据、增益校正系数K和偏置校正 系数B对齐,一起送入两点校正模块。

[0013] 上述加权平均运算模块的加权平均运算公式为:

[0014]

[0015] 其中C为均值帧,即单次取平均得到的一帧图像。

[0016] 两点参数计算模块的两点参数计算公式为:

[0017]

[0018] 两点校正模块的两点校正公式为:

[0019] Y = K · X+B

[0020] X代表数据格式调整模块输出的标准数据。

[0021] -种两点校正红外热像仪的非均匀性的方法,步骤如下:

[0022] 步骤1)进行在线定标,获得低温定标图像L和高温定标图像Η :

[0023] 步骤1-1)数据格式调整模块接收红外热像仪获得的实时红外视频序列,即当前 帧Α,将红外热像仪的探测器对准低温黑体,利用串口设置权值参数q和累加帧数ρ,ρ范围 为0, 1,2, 3··· 1024, q范围为0, 1,2, 3··· 1024,并给出存储低温图像的使能信号,串口指令解 析模块接收到该低温图像使能信号后,由定标控制模块控制外部存储器仲裁控制模块在外 部存储器内存入一幅图像,即存储帧B,然后从外部存储器读出存储帧B,在加权平均运算 模块中将当前帧A和存储帧B对应位置的每一个像素采集值进行加权平均,公式为:

再多了解一些

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/394184.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

leetcode851. 喧闹和富有(dfs)

在一组 N 个人(编号为 0, 1, 2, …, N-1)中,每个人都有不同数目的钱,以及不同程度的安静(quietness)。 为了方便起见,我们将编号为 x 的人简称为 "person x "。 如果能够肯定 perso…

如何选择正确的容器编排以及如何进行部署

by Michael Douglass迈克尔道格拉斯(Michael Douglass) 如何选择正确的容器编排以及如何进行部署 (How to choose the right container orchestration and how to deploy it) Running server processes inside containers is here to stay. If your environment is small with…

Oracle 学习笔记(三)

oracle 表查询 oracle 表基本查询 在此,基于 scott 用户存在的 emp,dept 表演示学习。 emp 雇员表 clerk 员工 salesman 销售 manager 经理 analyst 分析师 president 总裁 mgr 上级的编号 hiredate 入职时间 sal 工资 comm 奖金 deptno 部…

html meta标签使用总结(转)

之前学习前端中&#xff0c;对meta标签的了解仅仅只是这一句。 <meta charset"UTF-8"> 但是打开任意的网站&#xff0c;其head标签内都有一列的meta标签。比如我博客的。 但是自己却很不熟悉&#xff0c;于是把meta标签加入了寒假学习计划的最前方。 简介 在查…

bzoj 4009 接水果 整体二分

Description 先给出一些盘子, 用路径x-y表示, 有权值 再有Q个询问, 表示水果, 用路径x-y表示 如果盘子是水果的子路径, 可以接住 对于每个水果, 输出可以接住它的盘子的第k小权 Solution 对于x-lca-y的盘子&#xff0c;水果一定一个在x子树&#xff0c;一个在y子树 对于x-lca的…

离散元 python_刚开始学习离散元软件Yade,有什么建议?

用Yade-DEM 做过博士期间的部分工作&#xff0c;也是从毫无所知到算是入门&#xff0c;分享一点我的学习过程&#xff0c;为那些刚接触Yade的同学提供些许参考&#xff0c;希望对大家有帮助。0. Yade 简介Yade 是一个用于离散元分析的开源平台&#xff0c;是法国Lab 3SR-Grenob…

leetcode529. 扫雷游戏(dfs)

让我们一起来玩扫雷游戏&#xff01; 给定一个代表游戏板的二维字符矩阵。 ‘M’ 代表一个未挖出的地雷&#xff0c;‘E’ 代表一个未挖出的空方块&#xff0c;‘B’ 代表没有相邻&#xff08;上&#xff0c;下&#xff0c;左&#xff0c;右&#xff0c;和所有4个对角线&#…

redhat6 删除mysql_Red Hat enterprise linux 6卸载默认安装的 mysql

因为Red Hat enterprise linux 6 自带了一个mysql&#xff0c;所以当你安装新的mysql时&#xff0c;就会提示错误如&#xff1a;error&#xff1a;Failed dependencies&#xff1a;MySQL conflicts with mysql-5.1.47-4.el6.i686rmp -qa mysql 可以看到安装的mysql于是将自带的…

swift通知栏推送_如何使用Swift使用推送通知构建食品交付应用

swift通知栏推送by Neo Ighodaro由新Ighodaro 如何使用Swift使用推送通知构建食品交付应用 (How to build a food delivery app with push notifications using Swift) A basic understanding of Swift and Node.js is needed to follow this tutorial.要学习本教程&#xff0…

Jenkins持续集成实践之java项目自动化部署

关于Linux安装Jenkins可以参考我的这篇博文Ubuntu16.04环境安装jenkins 1.安装部署插件 进入插件管理&#xff0c;并搜索该插件Deploy to container Plugin进行安装 &#xff0c;下载地址为&#xff1a;https://wiki.jenkins-ci.org/display/JENKINS/DeployPlugin 2.安装完后&a…

云计算时代企业内部IT人员的新定位

本文讲的是云计算时代企业内部IT人员的新定位&#xff0c;【IT168 云计算频道】渐渐的云计算热起来&#xff0c;但是怎么去严格定义云计算&#xff0c;还是没有一个统一的说法&#xff0c;最常用的就是举例子的方式来说什么是云计算&#xff0c;最常用来打比方的是电力&#xf…

Java 多线程 笔记 转自http://www.cnblogs.com/lwbqqyumidi/p/3804883.html

多线程作为Java中很重要的一个知识点&#xff0c; 一.线程的生命周期及五种基本状态 关于Java中线程的生命周期&#xff0c;首先看一下下面这张较为经典的图&#xff1a; 上图中基本上囊括了Java中多线程各重要知识点。掌握了上图中的各知识点&#xff0c;Java中的多线程也就基…

leetcode207. 课程表(dfs/bfs)

你这个学期必须选修 numCourse 门课程&#xff0c;记为 0 到 numCourse-1 。 在选修某些课程之前需要一些先修课程。 例如&#xff0c;想要学习课程 0 &#xff0c;你需要先完成课程 1 &#xff0c;我们用一个匹配来表示他们&#xff1a;[0,1] 给定课程总量以及它们的先决条件…

r.java是什么_R.java文件介绍

http://blog.chinaunix.net/uid-21411227-id-4133828.html注意&#xff1a;R.java文件不能手动修改。1. HelloWorld工程中的R.java文件解析package com.android.hellworld;public final class R {public static final class attr {}public static final class drawable {public…

python qt 拖拽组件使用方法_Python QT组件库qtwidgets的使用

虽然Qt提供了不少现成的组件&#xff0c;但是在Python中使用PyQt5或PySide2进行图形界面程序开发的过程&#xff0c;还是免不了要根据自己的需求组合一些小部件以形成新的自定义组件。最近州的先生在写一个桌面图形界面的登录密码框的过程中&#xff0c;发现了这样一个小巧的自…

get与post区别

两种 HTTP 请求方法&#xff1a;GET 和 POST 在客户机和服务器之间进行请求-响应时&#xff0c;两种最常被用到的方法是&#xff1a;GET 和 POST。 GET - 从指定的资源请求数据。POST - 向指定的资源提交要被处理的数据GET 方法 请注意&#xff0c;查询字符串&#xff08;名称/…

java 实现 sql join_Sql 数据库 join 连接

sql里面有两个连接一个是union&#xff0c;另一个就是join他们两个的区别:union 连接的是行 是一行一行的连 而 join 连接的是列(字段) (他们俩的区别暂时就就知道这点)join连接的使用的前提:1.必须要有至少一个表(一个表可以用自连接)2.必须要有相关联的列(字段)&#xff…

开源与云计算

本文讲的是开源与云计算&#xff0c;【IT168 资讯】几年来我一直担心开源运动可能会遭受Kim Stanley Robinson在“Green Mars”中精辟论述的问题&#xff1a;“历史的浪潮比我们做得还要快。”创新者被抛在后面&#xff0c;他们曾经改变的世界拿着他们的主意向着意想不到的方向…

c/c++连接mysql数据库设置及乱码问题(vs2013连接mysql数据库,使用Mysql API操作数据库)...

我的安装环境&#xff1a; (1)vs2013(32位版) (vs2013只有32位的 没有64位的&#xff0c;但是它可以编译出64位的程序) &#xff1b; (2)mysql-5.7.15(64位) vs2013中的设置&#xff08;按步骤来&#xff0c;顺序不要乱&#xff09; (1)首先在vs2013中新建一个控制台程序 Mysq…

leetcode542. 01 矩阵(bfs/dp)

给定一个由 0 和 1 组成的矩阵&#xff0c;找出每个元素到最近的 0 的距离。 两个相邻元素间的距离为 1 。 示例 1: 输入: 0 0 0 0 1 0 0 0 0 输出: 0 0 0 0 1 0 0 0 0 bfs代码 class Solution {int[][] res;public int[][] updateMatrix(int[][] matrix) {int[][] dirnew…