如故对新的映射表举行自然程度的高斯模糊,或者对新的映射表举行一定水平的高斯模糊

  在很久前完结相比度受限的自适应直方图均衡化时,就已经想过对该算法举办自然水准的恢弘,之后选取机关比较度和自动色阶代替直方图均衡化也提出了新的算法,也达到了正确的效益。本文进一步对该算法举办一定程度的扩张和补偿优化。

  在很久前兑现比较度受限的自适应直方图均衡化时,就早已想过对该算法进行一定水平的增添,之后接纳电动相比度和自动色阶代替直方图均衡化也提议了新的算法,也高达了不易的功力。本文进一步对该算法进行自然水平的恢宏和补充优化。

在很久前贯彻相比较度受限的自适应直方图均衡化时,就曾经想过对该算法进行自然程度的恢宏,之后采纳机动相比度和自动色阶代替直方图均衡化也提议了新的算法,也达成了不错的成效。本文进一步对该算法进行一定水平的扩张和增补优化。

一、本文算法的概述

一、本文算法的概述

一、本文算法的概述

  依照选用的优化的品位和垂直网格数,将图像切分成一个一个的子块,然后计算每个子块的直方图新闻,并和原图全部的直方图音信举办某种混合,对于彩色图像,为了避免分化通道之间处理后变卦过于不调和,还增添了各通道直方图与亮度通道直方图的音信合成,然后对合成后的直方图举行直方图裁剪和均衡化的,获取各子块新的炫耀直方图,为了避免新的映射表中的数据有较大的奇点或噪音,对映射表的数量开展多点取样,然后利用样条插值算法对取样点开展插值,或者对新的映射表进行一定水平的高斯模糊,得到一张较为平缓的映射表。最终动用类似CLAHE算法中的双线性插值对每个子块之间的映射表举行插值得到新的像素值。本方法计算量小,速度急迅,对映射表进行平整插值或高斯模糊能立见功效的平抑相比较度调整时发出的噪音,幸免了音信的过度松手造成图片失真,是一种高效并且职能优秀的比较度增强算法。

  根据拔取的优化的水平和垂直网格数,将图像切分成一个一个的子块,然后总结每个子块的直方图音信,并和原图全部的直方图音信进行某种混合,对于彩色图像,为了幸免分化通道之间处理后转移过于不谐和,还增添了各通道直方图与亮度通道直方图的讯息合成,然后对合成后的直方图进行直方图裁剪和均衡化的,获取各子块新的投射直方图,为了避免新的映射表中的数据有较大的奇点或噪音,对映射表的数额进行多点取样,然后使用样条插值算法对取样点开展插值,或者对新的映射表举行自然程度的高斯模糊,得到一张较为平缓的映射表。最后动用类似CLAHE算法中的双线性插值对各个子块之间的映射表举办插值获得新的像素值。本方法总括量小,速度连忙,对映射表进行平整插值或高斯模糊能立见功用的抑制相比较度调整时暴发的噪音,防止了新闻的过火松手造成图片失真,是一种高效并且职能优良的相比较度增强算法。

据悉选用的优化的程度和垂直网格数,将图像切分成一个一个的子块,然后统计每个子块的直方图信息,并和原图全体的直方图音讯举办某种混合,对于彩色图像,为了幸免分裂通道之间处理后转变过于不谐和,还扩张了各通道直方图与亮度通道直方图的音讯合成,然后对合成后的直方图举行直方图裁剪和均衡化的,获取各子块新的映射直方图,为了防止新的映射表中的数据有较大的奇点或噪音,对映射表的数量进行多点取样,然后拔取样条插值算法对取样点开展插值,或者对新的映射表举办自然水准的高斯模糊,拿到一张较为平缓的映射表。最后动用类似CLAHE算法中的双线性插值对各样子块之间的映射表举行插值得到新的像素值。本方法统计量小,速度连忙,对映射表进行平整插值或高斯模糊能立竿见影的遏制相比度调整时发生的噪音,幸免了新闻的超负荷放大造成图片失真,是一种高效并且职能卓越的比较度增强算法。

二、算法进度详解

二、算法进程详解

二、算法进程详解

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

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

1、水平和垂直网格数的确定

  类似于CALHE算法,对网格的合理性选取也会对本算法的结果暴发第一的震慑,过多的网格数会使得总括量显明加大,过少的网格数使得结果趋于接近全体的直方图均衡化,一般景观下,可拔取8*8个网格,这里可以由此以下标准来概括的做个优化:图像的亮度的均方差越小,即整幅图像的明暗相比较相同,使用较多的网格数,比如8*8,否则使用较少的网格,比如4*4。那是因为当图像明暗较为一致时,各小块的直方图数据差别不会很大,而只要明暗不相同,接纳较小的块,各块之间的直方图音信差别可能很大,会导致插值时出现鲜明的症结。

  类似于CALHE算法,对网格的合理接纳也会对本算法的结果发生至关首要的震慑,过多的网格数会使得计算量显然加大,过少的网格数使得结果趋于接近全体的直方图均衡化,一般景象下,可挑选8*8个网格,那里可以透过以下原则来概括的做个优化:图像的亮度的均方差越小,即整幅图像的明暗比较一致,使用较多的网格数,比如8*8,否则使用较少的网格,比如4*4。这是因为当图像明暗较为一致时,各小块的直方图数据差异不会很大,而即便明暗不平等,选用较小的块,各块之间的直方图音讯差距可能很大,会造成插值时出现明显的弱点。

接近于CALHE算法,对网格的创设拔取也会对本算法的结果暴发第一的震慑,过多的网格数会使得总括量显然加大,过少的网格数使得结果趋于接近全体的直方图均衡化,一般意况下,可接纳8*8个网格,那里可以经过以下规则来概括的做个优化:图像的亮度的均方差越小,即整幅图像的明暗相比较一致,使用较多的网格数,比如8*8,否则使用较少的网格,比如4*4。那是因为当图像明暗较为一致时,各小块的直方图数据差异不会很大,而只要明暗分化,拔取较小的块,各块之间的直方图新闻差别可能很大,会促成插值时出现显然的弱点。

   
2、按规定的网格数划分图像,并得到每块的直方图音信HistB,HistG,HistR。

   
2、按规定的网格数划分图像,并收获每块的直方图音讯HistB,HistG,HistR。

2、按规定的网格数划分图像,并得到每块的直方图音信HistB,HistG,HistR。

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

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

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

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

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

里头亮度定义为:  Lightness = (R*19595 + G*38469 + B*7472) >>
16

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

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

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

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;

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

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

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为直方图的数量,8位时为256。

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

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

  6、根据CALHE的主意对直方图举办裁剪,之后对裁剪的直方图举办均衡化获得每个小块的映射表。

  6、根据CALHE的不二法门对直方图举办裁剪,之后对裁剪的直方图举行均衡化获得每个小块的映射表。

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

  7、局地均衡化后映射表的平整。

  7、局地均衡化后映射表的平缓。

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为直方图的数量,8位时为256。

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

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

6、按照CALHE的艺术对直方图进行裁剪,之后对裁剪的直方图进行均衡化得到每个小块的映射表。

    或者此外一种处理方式就是对映射表举办一维趋势的均值或者高斯平滑,平滑窗口可选WindowSize
= 7左右。

    或者别的一种处理格局就是对映射表举办一维大方向的均值或者高斯平滑,平滑窗口可选WindowSize
= 7左右。

7、局地均衡化后映射表的平缓。

  那种平滑可以拉动一定的便宜,越发是对于图像变换比较柔和的区域,可以在自然水准上弱化由于增强带来的色块感觉,而且那种方法拓宽到具备基于直方图增强技术的算法中。

  那种平滑可以牵动一定的益处,更加是对此图像变换相比较温柔的区域,可以在早晚水准上削弱由于增强带来的色块感觉,而且这种格局拓宽到独具基于直方图增强技术的算法中。

1)  将映射表的
Bins取K等份,得到每等份数据对应的炫耀表值,构成K个二维坐标点系列,亦可以依据直方图的总共数据,把一起数据平均分为K等分,获得K个二维种类点。

  8、依据CLAHE算法的历程对每个小块举办双线性插值得到最后的拉长功效,当然对第一行、第一列、最终一行、最终一列的子块靠近图像边缘的那一半都只行使映射表单个方向的线性插值,而那么些子块的其余部分以及别的子块均运用映射表双线性插值获得最后结出。

  8、依照CLAHE算法的进度对每个小块进行双线性插值得到最后的进步功能,当然对第一行、第一列、最终一行、最终一列的子块靠近图像边缘的那一半都只利用映射表单个方向的线性插值,而那个子块的任何一些以及此外子块均运用映射表双线性插值得到最终结果。

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

     
 即使输入图像是灰度图,由于只有一个通路,则本算法中的Correction在此场景中是可舍弃的。

     
 假使输入图像是灰度图,由于只有一个大路,则本算法中的Correction在此场景中是可摒弃的。

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

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

                           
 图片 1

                           
 图片 2

 

 

     
 三、测试结果

     
 三、测试结果

下图为未通过处理的本来面目图像,可知原始图中相比较度很差,图像的底细音讯很少,图像饱和度也很差。左边是应用本算法后甩卖的职能图,处理后图像饱和度自然,色彩鲜艳,隐藏在原图左侧的一对不行易见的细节也能知道的浮现出。

下图为未通过处理的原有图像,可知原始图中相比较度很差,图像的底细新闻很少,图像饱和度也很差。右边是行使本算法后处理的机能图,处理后图像饱和度自然,色彩鲜艳,隐藏在原图左侧的部分不得易见的底细也能领悟的显示出。

图片 3 
         图片 4

图片 5 
         图片 6

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

                  原始图像                                
          Adaptation = 50,Correction = 50, ClipLimit =
20时的意义

图片 7 
        图片 8

图片 9 
        图片 10

              Adaptation =
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

         艾达ptation =
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

相关文章