一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于累计直方图的实时色调映射方法与流程

2022-05-18 16:10:29 来源:中国专利 TAG:


1.本发明涉及图像处理技术领域,尤其涉及一种基于累计直方图的实时色调映射方法。


背景技术:

2.色调映射功能是一种优化图像的增强技术,它试图用低动态范围的输出图像来表示高动态范围的输入图像;色调映射的目标是保留在高动态范围输入图像中可以观察到的局部对比度和细节,同时在输出图像中保持的画面整体平衡和图像的结构;色调映射是在有限动态范围媒介上近似显示高动态范围图像的一项计算机图形、图像技术;打印机、显示器以及投影仪等都只有有限的动态范围;本质上来讲,色调映射是要解决的问题是进行大幅度的对比度衰减将场景亮度变换到可以显示的范围,同时要保持图像细节与颜色等对于表现原始场景非常重要的信息;根据应用的不同,色调映射的目标可以有不同的表述;在有些场合,生成“好看”的图像是主要目的,而在其它一些场合可能会强调生成尽可能多的细节或者最大的图像对比度。
3.例如:对于一幅图像来说,图像的动态范围是指图像最大亮度值比最小亮度的比值;而高动态图像,就是指动态范围大的图像;对于高动态图像而言,其位数往往高于8位(普通的灰度图像位数一般是8位),而显示器的灰度只有8位,所以必须对高动态图像的颜色进行变换,才能显示出来;另外高动态图像的灰度值分布的很不均匀,只有少数的像素点较亮,所以如果直接对图像进行线性的归一化(把灰度最大值映射为255,最小值映射为0)再显示,则图像会一片黑;色调映射(tone mapping)就是为了解决这个问题而生。
4.色调映射有三大功能:
5.1增强对比度、色彩饱和度、锐度,增强图像的效果,达到宽动态的效果;
6.2模拟炫光的效果,虚拟场景的仿真,用于计算机图形领域;
7.3压缩和剪辑颜色范围和动态范围,hdr图像的显示。
8.色调映射算法一般情况下两个大类的方向,全局色到映射和局部色调映射;
9.1全局色调映射,全局色调映射通过映射曲线来处理每帧的每个亮度分量值,传输曲线指定一系列的点的输出值,两者之间的点(表中不存在的点)使用线性插值导出;大多数全局色调映射算法具有非线性映射功能,应用到每一个像素的图像相同的色调映射曲线,整个算法简洁高效。不能根据场景信息做自适应调整,导致算法不能适应大部分场景;
10.2局部色调映射,局部色调映射过程包括将一组全局映射曲线加权应用于帧中的每个局部色调映射后的像素值;映射传输曲线被指定为一组点值,两者之间的点使用线性插值导出得出;局部每一段的传递曲线是通过分析经过全局映射过程后像素的每段局部得到的;在旁路模式下局部色调映射不应用;局部色调映射算法是通过分析源图像的整体像素以及局部的像素而实现的,所以自适用性强;但是算法过程复杂,不能达到实时性。
11.目前传统色调映射算法可以大致分为两类:全局方法与局部方法;
12.全局方法,全局的色调映射方法,指的是整幅图像,都采用相同映射函数的方法;
比如上面提及的gamma校正就是一种全局色调映射方法;全局方法的特点是:
13.1.任意相同颜色的像素点,在映射后,还是相同的颜色;
14.2.全局算法一般较简单,速度快;
15.3.全局算法的效果一般劣于局部方法。
16.常见的全局方法有:gamma校正,对数校正,直方图规定化,分段灰度变换等;
17.这里需要简单提及一下对数校正和直方图规定化:
18.对数校正,是基于韦伯-费希纳定律的一种色调映射方法;而对于人的视觉而言,在一个温和的区间内,人眼感受到的亮度,和实际的光照强度是成对数关系的;而未经处理的原始图像,像素点的灰度值都是由实际光照强度线性放缩得来的,所以如果经过一个对数变换,就会让人觉得看上去更舒服;
19.直方图规定化,是一种追求图像信息熵最大的色调映射方法;信息熵是从热力学里引申出来的量,其代表的数据中的信息量;信息熵的计算方法为-∑p
·
ln(p),其中p为某个灰度等级在该图中出现的概率;对于一幅图来说,如果他的灰度直方图是均匀分布的,那么他就有最大的信息熵;所以说,直方图规定化,是一种让色调变换后,直方图尽量接近均匀分布的色调映射方法。
20.局部方法,局部的色调映射方法,指的是像素所在位置不同,其映射后灰度值也可能不同的方法;像素点的映射结果,受到其他因素的影响;局部方法的特点是:
21.1.映射前颜色相同的像素点,映射后颜色可能不同;
22.2.局部算法一般较全局方法更复杂,速度相对较慢;
23.3.局部算法的性能一般优于全局方法;
24.4.会出现光晕等现象。
25.现如今,色调映射方法的研究热点主要集中在局部方法的创新上,并无基于全局方法改进的色调映射方法。


技术实现要素:

26.鉴于目前图像处理技术领域存在的没有基于全局方法改进的色调映射方法问题,本发明提供一种基于累计直方图的实时色调映射方法,能够通过全局色调映射,实现达到宽动态(wdr)的效果。
27.为达到上述目的,本发明的实施例采用如下技术方案:
28.一种基于累计直方图的实时色调映射方法,所述方法包括以下步骤:
29.直方图平滑处理得到平滑后直方图;
30.设置亮度偏移系数和对比度因子对平滑后直方图进行调整;
31.根据调整的平滑后直方图计算累积直方图;
32.通过累积直方图进行变换,得到全局映射曲线。
33.依照本发明的一个方面,所述直方图平滑处理得到平滑后直方图包括以下步骤:
34.获取过亮区域和过暗区域对应的直方图索引值;
35.根据索引值剔除过亮和过暗区域的直方图的值;
36.计算直方图的值的平均值;
37.限制直方图的最大值后得到直方图并重新计算直方图的值的平均值;
38.分段计算直方图值最大值和最小值;
39.分段确定直方图的最大值和最小值,使得分段直方图的值在最大值和最小值之间;
40.进行直方图平滑操作获得平滑处理后直方图。
41.依照本发明的一个方面,所述直方图平滑处理得到平滑后直方图还包括以下步骤:输入一帧图像,获取当前图像的原始直方图,并将直方图进行归一化处理,设置直方图的亮度索引范围。
42.依照本发明的一个方面,所述直方图平滑处理得到平滑后直方图还包括以下步骤:获取最大亮度区域抑制百分比、最大暗区区域抑制百分比、最大亮区域抑制累计值百分比和最大暗区域抑制累计值百分比四个参数。
43.依照本发明的一个方面,所述获取过亮区域和过暗区域对应的直方图索引值包括:
44.根据最大亮度区域抑制百分比、最大暗区区域抑制百分比和直方图的总项数,计算出亮部区域直方图和暗部区域直方图的索引值;
45.对直方图的亮度索引范围最小值到暗部区域直方图的索引值区域进行暗像素的索引扫描,并累计直方图的值;
46.当累计的值达到最大暗区域抑制累计值百分比时,对应的索引即为过暗区域直方图索引值;
47.对直方图的亮度索引范围最大值到亮部区域直方图的索引值区域进行亮像素的索引扫描,并累计直方图的值;
48.当累计的值达到最大亮区域抑制累计值百分比时,对应的索引即为过亮区域直方图索引值。
49.依照本发明的一个方面,所述根据索引值剔除过亮和过暗区域的直方图的值包括:将0到过暗区域直方图索引值和过亮区域直方图索引值到64索引对应着直方图的值都置为0,计算完成得到新的直方图。
50.依照本发明的一个方面,所述直方图平滑处理得到平滑后直方图包括以下步骤:获取分段后直方图每一段最大值和最小值相对于平均值的比例,并分别存储为celling和floor;计算每一段直方图子区域的开始索引和结束索引。
51.依照本发明的一个方面,所述分段确定直方图的最大值和最小值,使得分段直方图的值在最大值和最小值之间包括:通过celling的确定直方图各分段的直方图最大值,通过floor的确定直方图各分段的最小值,然后应用该段直方图值都在最小值和最大之间,定义低于最小值的值等于最小值,定义高于最大值的值等于最大值。
52.依照本发明的一个方面,所述根据调整的平滑后直方图计算累积直方图包括:定义平滑后的直方图为hist(i),亮度偏移系数为wb,对比度因子为wc,平滑直方图为hist(i)=hist(i)*wc wb;计算累加直方图acchist,计算方法如下:
53.acchist(0)=hist(0);
54.acchist(i)=acchist(i-1) hist(i);
55.其他第0项就是直方图0项,后续累加直方图i项等于累加直方图i-1项加上直方图i项。
56.依照本发明的一个方面,所述通过累积直方图进行变换,得到全局映射曲线包括:计算全局映射曲线mappingcurve,α是混合比例;通过累积直方图acchist进行变换,得到全局映射曲线:
57.mappingcurvei=(1-α)*mappingcurve
i-1
α*acchist。
58.本发明实施的优点:直方图平滑和亮度对比度因子引入,采用独特的直方图平滑算法,有效对直方图进行各个维度的处理,保护直方图的水平方向和垂直方向分别进行处理,在不依赖多帧图像的单帧情况下实现宽动态的的效果,整体占有极低的计算量,在保证宽动态的效果同时达到实时的性能,平滑算法没有使用复杂计算过程和过多的参数,极大的节省了资源,提供运算的效率;首创通过直方图的线性变化实现对图像亮度和对比度的微调;是针对低功耗、高实时、实现简单可靠、没有使用复杂的运算、占有资源极少、该算法更有利于集成电路设计开发;效果显著;采用累加直方图对直方图进行变换,加入混合因子的调整,从而进行全局映射曲线的产生。
附图说明
59.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
60.图1为本发明所述的原始数据直方图;
61.图2为本发明所述的平滑处理后直方图;
62.图3为本发明所述的全局映射曲线示意图;
63.图4为本发明所述的直方图平滑处理流程图;
64.图5为本发明所述的基于累计直方图的实时色调映射方法整体流程图。
具体实施方式
65.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
66.如图1、图2、图3、图4和图5所示,一种基于累计直方图的实时色调映射方法,所述方法包括以下步骤:
67.步骤s1:直方图平滑处理得到平滑后直方图;
68.直方图平滑处理,全局宽动态(wdr)核心处理就是直方图平滑处理,具体包括以下步骤:
69.步骤s11:获取过亮区域和过暗区域对应的直方图索引值;
70.首先输入一帧图像,获取当前图像的原始直方图hist_orig(如图1所示),并将直方图进行归一化处理,设置直方图的亮度索引范围为0~hist_n(例如8bi像素值为hist_n为255)。
71.计算直方图过亮区域索引bright_idx和过暗区域索引dark_idx;目的是要限制直
方图的水平处理的宽度,避免过饱和度和欠饱和点对整体的影响;
72.计算过程需要下列四个参数:
73.maxbrightsuppress:最大亮区域抑制百分比;
74.maxdarksuppress:最大暗区域抑制百分比;
75.brightsuppressratio:最大亮区域抑制累计值百分比;
76.darksuppressratio:最大暗区域抑制累计值百分比;
77.步骤s111:根据最大亮度、暗区区域抑制百分比和直方图的总项数hist_n,计算出亮部、暗部区域直方图的索引值:
78.dark_idx=maxdarksuppress*hist_n;
79.bright_idx=hist_n-(maxbrightsuppress*hist_n)-1。
80.步骤s112:根据步骤s111的结果,对0到darkidx区域和hist_n到brightidx区域进行扫描;扫描暗像素的索引,并累计直方图的值(就是累加当前直方图的值),当累计的值达到规定的比例darksupressratio时,对应的索引就是darkidx;扫描亮像素的索引,并累计直方图的值,当累计的值达到规定的比例brightsupressratio,对应的索引就是brightidx。
81.步骤s12:根据索引值剔除过亮和过暗区域的直方图的值;
82.剔除过亮区域、过暗区域对应直方图的值,具体的操作就是0到darkidx和brightidx到64索引对应着直方图的值都置为0;计算完成得到的新的直方图hist。
83.步骤s13:计算直方图的值的平均值;
84.根据步骤s11和步骤s12得到的结果,计算直方图值的平均值dmean,具体计算过程:先进行hist值的累加和histsum,在有效的区域内计算直方图的均值;忽略掉非有效区域;
85.dmean=histsum/(brightidx-darkidx 1)。
86.步骤s14:限制直方图的最大值后得到直方图并重新计算直方图的值的平均值;
87.限制直方图的最大值,设直方图最大值为histmax,其中overshotthreshold是最大值阈值比例;计算方法为histmax=dmean*overshotthreshold;当直方图的值超过最大值,就等于histmax,经过该过程计算,得到直方图hist,按照步骤s13重新计算直方图的均值dmean;
88.步骤s15:分段计算直方图值最大值和最小值;
89.将处理后直方图hist划分n个段,对每一段分别计算该段的直方图值最大值和最小值,用到了二个重要的参数celling和floor,参数存放每一段最大值和最小值的相对于均值的比例。
90.步骤s16:分段确定直方图的最大值和最小值,使得分段直方图的值在最大值和最小值之间;
91.设ii段直方图子区域开始索引ss和结束索引ee,其中ii的范围0到n;根据计算计算公式,计算出每个子区域的开始索引和结束索引;
92.[0093][0094]
步骤s17:进行直方图平滑操作获得平滑处理后直方图。
[0095]
通过celling的ii项确定ii段的直方图最大值segmin,floor的ii项来确定直方图ii段的最小值segmax,然后应用该段直方图值hist(i)都在segmin和segmax之间,低于segmin的值等于segmin,高于segmax的值等于segmax;
[0096]
segmin=ceiling[ii]*dmean;
[0097]
segmax=floor[ii]*dmean;
[0098]
hist(i)=min(hist(i),segmin);
[0099]
hist(i)=max(hist(i),segmax);
[0100]
i∈[ss,ee]
[0101]
n段直方图处理完成后,进行直方图平滑操作,通过一维平滑核k进行平滑处理,例如平滑核k为[0.05,0.10,0.20,0.30,0.20,0.10,0.05];及算法方法如下:
[0102]
hist_smooth[i-3:i 3]=hist[i-3:i 3]*k[i-3:i 3];i属于[0,n-1]
[0103]
经过平滑处理后得到直方图hist_smooth如图2所示。
[0104]
步骤s2:设置亮度偏移系数和对比度因子对平滑后直方图进行调整;
[0105]
在累积直方图设置亮度偏移系数wb和对比度因子wc,这样有效提供画面的整体亮度和对比度;根据步骤s1得到平滑直方图,hist(i)=hist(i)*wc wb,对平滑直方图再进行垂直方向上的调整,进一步有效增强了宽动态的效果。
[0106]
步骤s3:根据调整的平滑后直方图计算累积直方图;
[0107]
计算累积直方图,根据步骤s17得到平滑后直方图,计算累加直方图acchist,计算方法如下:
[0108]
acchist(0)=hist(0);
[0109]
acchist(i)=acchist(i-1) hist(i);
[0110]
其他第0项就是直方图0项,后续累加直方图i项等于累加直方图i-1项加上直方图i项;步骤s2得到累加直方图acchist。
[0111]
步骤s4:通过累积直方图进行变换,得到全局映射曲线。
[0112]
计算全局映射曲线mappingcurve,acchist是直方图hist的步骤3处理后累积直方图,α是混合比例;本步骤通过累加直方图进行变换,得到全局映射曲线,如图3所示:
[0113]
mappingcurvei=(1-α)*mappingcurve
i-1
α*acchist。
[0114]
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本领域技术的技术人员在本发明公开的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献