取得各子块新的投射直方图,或许对新的映射表举办自然水平的高斯模糊

  在很久前落到实处比较度受限的自适应直方图均衡化时,就曾经想过对该算法举行自然程度的增添,之后采用机关相比较度和自动色阶代替直方图均衡化也提议了新的算法,也高达了正确的法力。本文进一步对该算法举行自然程度的扩张和补充优化。

  在很久前贯彻相比度受限的自适应直方图均衡化时,就早已想过对该算法举行一定水平的壮大,之后采纳电动比较度和自动色阶代替直方图均衡化也指出了新的算法,也达到了未可厚非的成效。本文进一步对该算法举办自然水平的扩展和互补优化。

在很久前兑现相比较度受限的自适应直方图均衡化时,就早已想过对该算法进行自然水准的恢宏,之后采纳机动相比度和自动色阶代替直方图均衡化也指出了新的算法,也达成了科学的职能。本文进一步对该算法进行一定水准的恢弘和补偿优化。

① 、本文算法的概述

一 、本文算法的概述

① 、本文算法的概述

  根据接纳的优化的档次和垂直网格数,将图像切分成2个3个的子块,然后总结各个子块的直方图新闻,并和原图全体的直方图音讯举行某种混合,对于彩色图像,为了防止差异通道之间处理后变卦过于不和谐,还增添了各通道直方图与亮度通道直方图的新闻合成,然后对合成后的直方图举办直方图裁剪和均衡化的,获取各子块新的照射直方图,为了避免新的映射表中的数据有较大的奇点或噪音,对映射表的多少进行多点取样,然后使用样条插值算法对取样点进展插值,或然对新的映射表举办自然水准的高斯模糊,得到一张较为平缓的映射表。最后动用类似CLAHE算法中的双线性插值对每种子块之间的映射表进行插值得到新的像素值。本方法计算量小,速度快捷,对映射表举办平整插值或高斯模糊能立见成效的压制相比度调整时发生的噪音,幸免了音讯的过于松开造成图片失真,是一种高效并且职能出色的相比度增强算法。

  按照采取的优化的水平和垂直网格数,将图像切分成二个3个的子块,然后计算每一种子块的直方图音讯,并和原图全体的直方图音讯进行某种混合,对于彩色图像,为了幸免不相同通道之间处理后变化过于不谐和,还增加了各通道直方图与亮度通道直方图的新闻合成,然后对合成后的直方图举行直方图裁剪和均衡化的,获取各子块新的投射直方图,为了防止新的映射表中的数据有较大的奇点或噪音,对映射表的数据开展多点取样,然后利用样条插值算法对取样点开展插值,大概对新的映射表进行一定水平的高斯模糊,得到一张较为平缓的映射表。最终选择类似CLAHE算法中的双线性插值对种种子块之间的映射表进行插值拿到新的像素值。本方法总结量小,速度快捷,对映射表进行平整插值或高斯模糊能使得的平抑比较度调整时暴发的噪音,幸免了音讯的过度放手造成图片失真,是一种高效并且职能特出的相比度增强算法。

据悉采纳的优化的程度和垂直网格数,将图像切分成三个三个的子块,然后总计逐个子块的直方图音讯,并和原图全体的直方图新闻举行某种混合,对于彩色图像,为了防止差距通道之间处理后变更过于不调和,还扩张了各通道直方图与亮度通道直方图的消息合成,然后对合成后的直方图举办直方图裁剪和均衡化的,获取各子块新的映射直方图,为了幸免新的映射表中的数据有较大的奇点或噪音,对映射表的数目进行多点取样,然后选拔样条插值算法对取样点进行插值,可能对新的映射表举行一定水准的高斯模糊,得到一张较为平缓的映射表。最终选择类似CLAHE算法中的双线性插值对各类子块之间的映射表进行插值得到新的像素值。本方法总括量小,速度很快,对映射表举办平整插值或高斯模糊能有效的压制相比度调整时发生的噪声,防止了新闻的过于放大造成图片失真,是一种高效并且职能非凡的比较度增强算法。

二 、算法进程详解

二 、算法进度详解

贰 、算法过程详解

  ① 、水平和垂直网格数的规定

  一 、水平和垂直网格数的规定

① 、水平和垂直网格数的分明

  类似于CALHE算法,对网格的客观采取也会对本算法的结果爆发第2的影响,过多的网格数会使得计算量显著加大,过少的网格数使得结果趋于接近全部的直方图均衡化,一般情形下,可挑选8*几个网格,那里可以经过以下条件来不难的做个优化:图像的亮度的均方差越小,即整幅图像的明暗相比相同,使用较多的网格数,比如8*8,否则使用较少的网格,比如4*4。这是因为当图像明暗较为一致时,各小块的直方图数据差距不会很大,而如若明暗分裂,接纳较小的块,各块之间的直方图消息差别或者很大,会招致插值时出现鲜明的弱点。

  类似于CALHE算法,对网格的合理性采取也会对本算法的结果暴发相当紧要的熏陶,过多的网格数会使得计算量鲜明加大,过少的网格数使得结果趋于接近全部的直方图均衡化,一般意况下,可挑选8*几个网格,那里可以经过以下规则来大约的做个优化:图像的亮度的均方差越小,即整幅图像的明暗相比一致,使用较多的网格数,比如8*8,否则使用较少的网格,比如4*4。那是因为当图像明暗较为一致时,各小块的直方图数据差异不会很大,而一旦明暗不等同,选用较小的块,各块之间的直方图新闻差别只怕很大,会促成插值时出现显然的短处。

接近于CALHE算法,对网格的客观采取也会对本算法的结果暴发首要的震慑,过多的网格数会使得计算量鲜明加大,过少的网格数使得结果趋于接近全体的直方图均衡化,一般景况下,可接纳8*7个网格,那里可以经过以下条件来总结的做个优化:图像的亮度的均方差越小,即整幅图像的明暗相比较相同,使用较多的网格数,比如8*8,否则使用较少的网格,比如4*4。那是因为当图像明暗较为一致时,各小块的直方图数据差别不会很大,而一旦明暗不一样,采取较小的块,各块之间的直方图新闻差别恐怕很大,会招致插值时出现分明的症结。

   
二 、按规定的网格数划分图像,并赢得每块的直方图音讯HistB,HistG,Hist奥迪Q7。

   
二 、按规定的网格数划分图像,并取得每块的直方图消息HistB,HistG,Hist劲客。

贰 、按规定的网格数划分图像,并获取每块的直方图音信HistB,HistG,Hist逍客。

 
三 、获取全图的直方图数据HistgramB,HistgramG,Histgram帕杰罗以及亮度直方图HistgramL。

 
叁 、获取全图的直方图数据HistgramB,HistgramG,HistgramLX570以及亮度直方图HistgramL。

三 、获取全图的直方图数据HistgramB,HistgramG,Histgram牧马人以及亮度直方图HistgramL。

       其中亮度定义为:  Lightness =
(安德拉*19595 + G*38469 + B*7472) >> 16

       其中亮度定义为:  Lightness =
(LAND*19595 + G*38469 + B*7472) >> 16

中间亮度定义为:  Lightness = (奥迪Q7*19595 + G*38469 + B*7472) >>
16

   
肆 、对子块直方图和大局直方图举行融合,如下代码所示:

   
四 、对子块直方图和大局直方图举办融合,如下代码所示:

四 、对子块直方图和大局直方图进行融合,如下代码所示:

HistB[Index] = (HistB[Index] * Adaptation + (100 - Adaptation) * HistgramB[Index]) / 100;
HistG[Index] = (HistG[Index] * Adaptation + (100 - Adaptation) * HistgramG[Index]) / 100;
HistR[Index] = (HistR[Index] * Adaptation + (100 - Adaptation) * HistgramR[Index]) / 100;
HistL[Index] = (HistL[Index] * Adaptation + (100 - Adaptation) * HistgramL[Index]) / 100;
HistB[Index] = (HistB[Index] * Adaptation + (100 - Adaptation) * HistgramB[Index]) / 100;
HistG[Index] = (HistG[Index] * Adaptation + (100 - Adaptation) * HistgramG[Index]) / 100;
HistR[Index] = (HistR[Index] * Adaptation + (100 - Adaptation) * HistgramR[Index]) / 100;
HistL[Index] = (HistL[Index] * Adaptation + (100 - Adaptation) * HistgramL[Index]) / 100;

HistB[Index] = (HistB[Index] * Adaptation + (100- Adaptation) *
HistgramB[Index]) /100;

  其中Adaptation为相依为命因子,其卓有成效限制为[0,100],当取值越时辰,全局直方图其主导成效,效果越接近一般的直方图均衡。

  其中Adaptation为生死之交因子,其卓有成效限制为[0,100],当取值越时辰,全局直方图其主导成效,效果越接近一般的直方图均衡。

HistG[Index]= (HistG[Index] * Adaptation + (100- Adaptation) *
HistgramG[Index]) /100;

  ⑤ 、对上述融合后的结果再行和亮度直方图进行融合,融合进度如下所示:

  五 、对上述融合后的结果再行和亮度直方图进行融合,融合进度如下所示:

HistR[Index]= (HistR[Index] * Adaptation + (100- Adaptation) *
HistgramR[Index]) /100;

HistB[Index] = (HistB[Index] * Correction + (100 - Correction) * HistL[Index]) / 100;
HistG[Index] = (HistG[Index] * Correction + (100 - Correction) * HistL[Index]) / 100;
HistR[Index] = (HistR[Index] * Correction + (100 - Correction) * HistL[Index]) / 100;
HistB[Index] = (HistB[Index] * Correction + (100 - Correction) * HistL[Index]) / 100;
HistG[Index] = (HistG[Index] * Correction + (100 - Correction) * HistL[Index]) / 100;
HistR[Index] = (HistR[Index] * Correction + (100 - Correction) * HistL[Index]) / 100;

HistL[Index]= (HistL[Index] * Adaptation + (100- Adaptation) *
HistgramL[Index]) /100;

   其中Correction为颜色矫正因子,其卓有成效限制为[0,100],当取值越大时,各通道之间越独立,效果越接近一般的直方图均衡。

   其中Correction为颜色考订因子,其立竿见影限制为[0,100],当取值越大时,各通道之间越独立,效果越接近一般的直方图均衡。

里面Adaptation为风雨同舟因子,其一蹴而就限制为[0,100],当取值越小时,全局直方图其主导成效,效果越接近一般的直方图均衡。

  上述代码中Index表示直方图色阶的目录范围,有效值[0,Bins
– 1],Bins为直方图的数目,陆位时为256。

  上述代码中Index表示直方图色阶的目录范围,有效值[0,Bins
– 1],Bins为直方图的数量,7个人时为256。

伍 、对上述融合后的结果再度和亮度直方图进行融合,融合进度如下所示:

  陆 、根据CALHE的法门对直方图举行裁剪,之后对裁剪的直方图举办均衡化得到每种小块的映射表。

  陆 、依照CALHE的格局对直方图进行裁剪,之后对裁剪的直方图举行均衡化拿到各种小块的映射表。

HistB[Index] = (HistB[Index] * Correction + (100- Correction) *
HistL[Index]) /100;

  ⑦ 、局地均衡化后映射表的平滑。

  柒 、局地均衡化后映射表的坦荡。

HistG[Index]= (HistG[Index] * Correction + (100- Correction) *
HistL[Index]) /100;

    1)  将映射表的
Bins取K等份,得到每等份数据对应的照耀表值,构成K个二维坐标点连串,亦可以依照直方图的合计数量,把总括数量平均分为K等分,拿到K个二维体系点。

    1)  将映射表的
Bins取K等份,得到每等份数据对应的投射表值,构成K个二维坐标点体系,亦可以按照直方图的总括数据,把一起数量平均分为K等分,拿到K个二维体系点。

HistR[Index]= (HistR[Index] * Correction + (100- Correction) *
HistL[Index]) /100;

    2)依照K个二维坐标点,使用样条插值算法拟合出一条过种种取样点的平滑映射曲线。

    2)根据K个二维坐标点,使用样条插值算法拟合出一条过各类取样点的平滑映射曲线。

其间Correction为颜色校对因子,其立见成效限制为[0,100],当取值越大时,各通道之间越独立,效果越接近一般的直方图均衡。

    3)在平滑曲线表中取0至于Bins中各色阶对应的插值结果,作为新的映射表结果。

    3)在平滑曲线表中取0至于Bins中各色阶对应的插值结果,作为新的映射表结果。

上述代码中Index表示直方图色阶的目录范围,有效值[0,Bins –
1],Bins为直方图的数额,5个人时为256。

     对于Bins
=256的图像,K值提出可取32左右。

     对于Bins
=256的图像,K值提出可取32左右。

陆 、依据CALHE的办法对直方图举办裁剪,之后对裁剪的直方图举行均衡化得到每种小块的映射表。

    或然别的一种处理情势就是对映射表进行一维大方向的均值恐怕高斯平滑,平滑窗口可选WindowSize
= 7左右。

    或许其它一种处理情势就是对映射表举行一维样子的均值只怕高斯平滑,平滑窗口可选WindowSize
= 7左右。

七 、局地均衡化后映射表的平滑。

  那种平滑可以牵动一定的功利,越发是对于图像变换比较平缓的区域,可以在放任自流水平上削弱由于增强带来的色块感觉,而且那种格局推广到全体基于直方图增强技术的算法中。

  那种平滑可以带来一定的利益,尤其是对于图像变换相比较温柔的区域,可以在一定水准上削弱由于增强带来的色块感觉,而且那种格局加大到拥有基于直方图增强技术的算法中。

1)  将映射表的
Bins取K等份,得到每等份数据对应的照射表值,构成K个二维坐标点连串,亦可以依照直方图的合计数量,把总结数据平均分为K等分,得到K个二维连串点。

  八 、依据CLAHE算法的进程对各种小块进行双线性插值得到终极的进步效率,当然对第①行、第贰列、最终一行、最终一列的子块靠近图像边缘的那二分之一都只行使映射表单个方向的线性插值,而这几个子块的别样一些以及其余子块均运用映射表双线性插值得到最后结出。

  ⑧ 、依照CLAHE算法的长河对每种小块举行双线性插值得到最终的坚实成效,当然对第③行、第1列、最终一行、最终一列的子块靠近图像边缘的那5/10都只使用映射表单个方向的线性插值,而那几个子块的此外部分以及其它子块均拔取映射表双线性插值拿到最终结出。

2)根据K个二维坐标点,使用样条插值算法拟合出一条过各类取样点的平滑映射曲线。

     
 假如输入图像是灰度图,由于只有二个通道,则本算法中的Correction在此场景中是可放弃的。

     
 如若输入图像是灰度图,由于唯有1个坦途,则本算法中的Correction在此场景中是可放弃的。

  整个经过的流程框图如下所示:

  整个经过的流程框图如下所示:

                           
 图片 1

                           
 图片 2

 

 

     
 叁 、测试结果

     
 ③ 、测试结果

下图为未经过处理的原本图像,可知原始图中相比较度很差,图像的底细消息很少,图像饱和度也很差。右边是运用本算法后甩卖的成效图,处理后图像饱和度自然,色彩鲜艳,隐藏在原图左边的有的不行易见的细节也能知晓的显示出。

下图为未通过处理的原始图像,可见原始图中比较度很差,图像的细节消息很少,图像饱和度也很差。左边是应用本算法后处理的效应图,处理后图像饱和度自然,色彩鲜艳,隐藏在原图左侧的一部分不得易见的底细也能明白的突显出。

图片 3 
         图片 4

图片 5 
         图片 6

                  原始图像                                
          Adaptation = 50,Correction = 50, ClipLimit =
20时的职能

                  原始图像                                
          Adaptation = 50,Correction = 50, ClipLimit =
20时的功效

图片 7 
        图片 8

图片 9 
        图片 10

              艾达ptation =
0,Correction = 50, ClipLimit = 20时的法力                            
                                                         Adaptation =
100,Correction = 50, ClipLimit = 20时的功效

              Adaptation =
0,Correction = 50, ClipLimit = 20时的功力                            
                                                         Adaptation =
100,Correction = 50, ClipLimit = 20时的效应

图片 11 
       图片 12

图片 13 
       图片 14

         Adaptation =
50,Correction = 0, ClipLimit =
20时的效能                         Adaptation =
50,Correction = 100, ClipLimit = 20时的成效

         Adaptation =
50,Correction = 0, ClipLimit =
20时的功力                         Adaptation =
50,Correction = 100, ClipLimit = 20时的听从

   
 上面作图是此外一副未经处理的图像,那副图像新闻较为完好,色彩也相比丰盛,不过通过本算法处理后,得到的结果图(右图)则浮现特别惊艳和灿烂,因而对此寻常的图像,本算法也拥有较强的实用性。

   
 上面作图是别的一副未经处理的图像,那副图像新闻较为完好,色彩也较为丰富,然而通过本算法处理后,得到的结果图(右图)则呈现尤为惊艳和灿烂,因而对此不奇怪的图像,本算法也兼具较强的实用性。

 图片 15     
  图片 16

 图片 17     
  图片 18

  越发强调,该算法不适宜处理人脸图像。

  尤其强调,该算法不正好处理人脸图像。

     
 该算法难以使用SSE优化,小编在考虑是还是不是还有其他措施优化。速度上1080P的彩图大致30ms可以消除。

     
 该算法难以使用SSE优化,作者在设想是否还有其他艺术优化。速度上1080P的彩图几乎30ms可以化解。

     
 测试工程的地方:http://files.cnblogs.com/files/Imageshop/SSE_Optimization_Demo.rar

     
 测试工程的地址:http://files.cnblogs.com/files/Imageshop/SSE_Optimization_Demo.rar

图片 19

图片 20

      写博不易,欢迎点赞大概打赏。

      写博不易,欢迎点赞只怕打赏。

图片 21

图片 22

相关文章