首页 > 编程语言 >ISP之红外图像增强处理算法

ISP之红外图像增强处理算法

时间:2023-07-19 23:32:19浏览次数:43  
标签:红外 灰度级 ISP 直方图 算法 灰度 图像 对比度 图像增强

1、红外图像

1.1 红外图像特点

红外图像一般具有以下特点(一般中长波特点更明显):

1)红外图像表征景物的温度分布,反映目标及背景向外辐射能量的差异,是灰度图像,像素分辨率低;

2)红外探测气球收到加工工艺影响,靶面分辨率较低,1280x1024分辨率属于高分辨率,640x512的规格较多;

3)红外波段会受到传输距离远、大气吸收和散射等影响,导致红外图像对比度低,边缘模糊,灰度响应相对稳定;

4)红外成像系统给红外图像带来多种多样的噪声,如热噪声、散粒噪声等;

1.2 高动态范围与成像设备数据输出

红外图像有很高的动态范围 (如包含地面和天空的场景,由于地面和天空的温差大,图像的灰度范围很宽),而目标与背景或者目标局部的温差却相对较小。当被观察场景的温度范围很宽时,红外图像输出的动态范围会达到10000以上(14bit数据),简单的可以理解为灰度最大值与灰度最小值的差异。

大多数红外成像设备输出的原始数据为14 bit,而显示器大多输出8bit数据,人类肉眼可识别图像中约128级灰阶(7位)。因此模拟和数字视频接口都要求能输出8 bit数据。即需要将14bit红外原始数据转化为8bit灰度图像。经过转化后的红外灰度图像往往会出现对比度低的问题。

2、对比度优化

2.1 直方图均衡化

灰度直方图是用于表示图像像素灰度值分布情况的统计图。一幅图像的灰度直方图可以反映出图像的一些特点。当图像的对比度较小时,其灰度值较集中在一个小区间;可以计算图像均值,在灰度直方图对比均值和灰度分布来了解图像整体亮度、对比度。

直方图均衡化的基本思想就是把原始红外图像中少数集中的灰度级平均分布到整个灰度区间上。该方法通过对原始图像进行非线性拉伸,根据图像的灰度概率分布,来调整对应的输出值,对出现频数较多的灰度级,赋予较大的灰度值区间,同时压缩出现频数较小的灰度级,使各个灰度区间内的像素数大致相同。

直方图均衡化的步骤如下: 1)统计图像灰度值分布,计算分布概率 设表示图像中像素的灰度级,则原始图像的灰度分布可以用概率密度函数来表达:

式中,表示图像的总像素数,为第个灰度级的像素数,为第级灰度级。 2)根据统计出的直方图,采用累积分布函数进行变换,求得变换后的新的灰度值。

2.2 直方图分段线性变换

红外图像的灰度比较集中在一段区间,动态范围较窄,通过分段线性变换把较窄的目标分布区间拉开,提高动态范围,增强图像对比度,图像中的纹理灰度差有一定拉伸,加强了边缘信息。

在一般情况下,变换前后灰度变化范围是不变的,增强区间的灰度层次丰富了,对比度增强了,同时增强区间以外的对比度降低了。 分段线性变换的关键在于灰度分段区间的选择,分段区间的选择直接决定了图像增强和削弱的区域。

2.3 直方图规定化

上述算法都是主动调整灰度直方图每个灰度级的分布情况,从而增强对比度。但是在实际应用中往往难以控制增强后的效果,而直方图规定化算法(又称为直方图匹配)需要按照某一具有特定直方图分布规律的图像(称为模板)来调整需要处理的图像,即通过调整原始图像的直方图去逼近模板图像的直方图。

原始灰度级数和模板直方图灰度级数之间的对应映射关系一般有两种,单映射规则(SML)和组映射规则(GML)。单映射规则中,将从小到大依次找到能使下式有最小值的值,这样就可以将原始图像灰度级数和模板直方图灰度级数对应映射起来。

红外图像的对比度增强算法能够有效提高图像的对比度,增强图像的可读性,为观看者提供更多细节信息。各类对比度增强算法经过多年来的研究,已经取得了明显的进展。

参考文献:

《基于改进直方图均衡的红外图像对比度增强算法》

《保持图像亮度的局部直方图均衡算法》

《一种改进的红外图像增强算法》


我的个人博客主页,欢迎访问

我的CSDN主页,欢迎访问

我的GitHub主页,欢迎访问

我的知乎主页,欢迎访问

标签:红外,灰度级,ISP,直方图,算法,灰度,图像,对比度,图像增强
From: https://blog.51cto.com/u_16066155/6781323

相关文章

  • 优化基础4——分支定界法与粒子群算法
    1.分支定界算法王源大佬在这里讲的很清楚,看这个整数规划里面的内容就可以看懂【整数规划(三)】分支定界法及其代码实现-知乎(zhihu.com)主要在于如何分支、如何根据每个节点的上下界确定全局上下界、如何剪枝2.粒子群混合粒子群算法(PSO):C++实现TSP问题-知乎(zhihu.com......
  • 算法练习-day21
    回溯算法77.组合题意:给定两个整数 n 和 k,返回范围 [1,n] 中所有可能的 k 个数的组合。你可以按 任何顺序 返回答案。示例:   思路:本题的思想,主要是利用回溯的思想,先固定tmp插入的个数为k,当检测到tmp的大小等于k时,直接加入到我们的存储组合数组arr中,这时回溯一趟的......
  • 文心一言 VS 讯飞星火 VS chatgpt (63)-- 算法导论6.5 2题
    文心一言VS讯飞星火VSchatgpt(63)--算法导论6.52题二、试说明MAX-HEAP-INSERT(A,10)在堆A=(15,13,9,5,12,8,7,4,0,6,2,1)上的操作过程。文心一言:MAX-HEAP-INSERT(A,10)是将元素10插入到堆A中并保持堆性质的函数。下面是在堆A=(15,13,9,5,12,8,7,4,0,6,2,1)上执行MAX-......
  • c语言 排序算法
    //sort_algorituhm.cpp:此文件包含"main"函数。程序执行将在此处开始并结束。//#include<iostream>#include<algorithm>usingnamespacestd;#defineelemtypeint//冒泡排序法,组个遍历,大数往后,每次都是"完全遍历",从0开始voidsort_bubbling(elemtype*p,ints......
  • 2023“钉耙编程”中国大学生算法设计超级联赛(1)
    1001Hide-And-SeekGame题意:给出一颗树,两人在树上特定两点来回走,问最早在那个节点相遇思路:枚举所有点,看它是否同时在两条链上,如果在,那么结合周期、两人最早到达时间,返回到达时间得到4个同余方程(拓展欧几里得),然后得到最小可能解#pragmaGCCoptimize(2)#pragmaGCCoptimize(3......
  • 数据结构与算法 头歌 图的拓扑排序算法
    数据结构与算法之图的拓扑排序算法导言拓扑排序是对有向无环图(DirectedAcyclicGraph,DAG)进行排序的一种算法。在实际开发中,拓扑排序算法常用于解决任务调度、编译顺序等问题。本文将介绍拓扑排序算法的实现过程,并帮助初学者理解该算法的原理及代码实现。拓扑排序流程以下......
  • KMP算法笔记
    1.概念解析前置:将原串称之为文本串,匹配串称之为模式串。KMP的实质其实就是:利用已经匹配的信息,来加速查找的过程。对于暴力解法而言,当我进行模式串匹配时,遇到一个不匹配的字符,那么只能一步一步往下滑动,然后重新匹配。但是对于KMP算法而言,利用到了前缀子......
  • 最短路之dijkstra算法
    dijkstra比之上次介绍的的bellman-ford算法的用途上最大的区别就是dijkstra只可用于求无负权边图中的最短路,堆优化后的dij比bellman-ford的复杂度(mn)更小(mlogn)代码源关于dijkstra的解释简单来讲就是每次选出一个没被选过的离起点最近的点,松弛这个点所在的每个边,直到所有点都被......
  • 最短路之 Bellman-ford 算法
    bellman-ford算法的思想:若有向图有n个点,m条边。扫描所有边,对每条边进行一次松弛(即对a,b为端点,权重为w的边,dist[b]=min(dist[a],dist[a]+w))重复此流程(最多重复n次)直到没有更新操作发生例题1bellmanford板子给你一张n个顶点m条边的有向简单图,顶点编号从1到......
  • 历年检测、分割、生成算法梳理(2023)
    检测算法 分割算法 生成算法 ......