发明内容
本发明要解决的技术问题在于,提供一种对色度分区进行增强的图像色彩增强装置和方法,更灵活方便用户随意增强颜色的任一部分,同时避免图像增强时“硬过渡”使图像质量下降。
本发明第一方面,提供了一种图像色彩增强装置,包括:颜色空间转换模块,将输入的图像数据从RGB空间转换到HSV空间;基于色度的增益函数生成模块,接收用户设置的色度调节区间,生成该色度分区的基于色度的增益函数;基于饱和度的增益函数生成模块,在该用户设置的色度调节区间内,生成基于饱和度的增益函数;饱和度增强模块,利用所述基于色度的增益函数和所述基于饱和度的增益函数对饱和度进行增强。在根据本发明第一方面所述的图像色彩增强装置中,所述基于色度的增益函数生成模块进一步包括:色度分区函数存储单元,用于生成并存储不同色度分区的增益函数;且所述不同色度分区的增益函数中的每一个包括位于该色度分区内的:函数值单调递增至预设的基于色度的增益阈值的第一基于色度的增益函数、函数值为预设的基于色度的增益阈值的第二基于色度的增益函数以及函数值从预设的基于色度的增益阈值开始单调递减的第三基于色度的增益函数;以及第一增益函数选择单元,用于从所述色度分区函数存储单元中查找用户设置的色度调节区间对应的基于色度的增益函数。
在根据本发明第一方面所述的图像色彩增强装置中,所述基于饱和度的增益系数生成计算模块进一步包括:饱和度函数存储单元,用于生成并存储用户设置的色度调节区间内的基于饱和度的增益函数;且所述基于饱和度的增益函数包括位于预设的最小饱和度阈值至最大饱和度阈值范围内的:函数值从0开始单调递增至预设的基于饱和度的增益阈值的第一基于饱和度的增益函数、函数值为预设的基于饱和度的增益阈值的第二基于饱和度的增益函数以及函数值从预设的基于饱和度的增益阈值单调递减至0的第三基于饱和度的增益函数;以及第二增益函数选择单元,用于从所述饱和度函数存储单元中查找用户设置的色度调节区间对应的基于饱和度的增益函数。
在根据本发明第一方面所述的图像色彩增强装置中,所述颜色空间转换模块先将输入的图像数据从RGB空间转换到YUV空间,再使用cordic算法将其从YUV空间转换到HSV空间。
本发明第二方面,提供了一种图像色彩增强方法,包括以下步骤:颜色空间转换步骤,将输入的图像数据从RGB空间转换到HSV空间;基于色度的增益函数生成步骤,接收用户设置的色度调节区间,生成该色度分区的基于色度的增益函数;基于饱和度的增益函数生成步骤,在该用户设置的色度调节区间内,生成基于饱和度的增益函数;饱和度增强步骤,利用所述基于色度的增益函数和所述基于饱和度的增益函数对饱和度进行增强。
在根据本发明第二方面所述的图像色彩增强方法中,所述基于色度的增益函数生成步骤进一步包括:色度分区函数存储步骤,生成并存储不同色度分区的增益函数;且所述不同色度分区的增益函数中的每一个包括位于该色度分区内的:函数值单调递增至预设的基于色度的增益阈值的第一基于色度的增益函数、函数值为预设的基于色度的增益阈值的第二基于色度的增益函数以及函数值从预设的基于色度的增益阈值开始单调递减的第三基于色度的增益函数;以及第一增益函数选择步骤,用于查找用户设置的色度调节区间对应的基于色度的增益函数。
在根据本发明第二方面所述的图像色彩增强方法中,所述基于饱和度的增益系数生成步骤进一步包括:饱和度函数存储步骤,生成并存储用户设置的色度调节区间内的基于饱和度的增益函数;且所述基于饱和度的增益函数包括位于预设的最小饱和度阈值至最大饱和度阈值范围内的:函数值从0开始单调递增至预设的基于饱和度的增益阈值的第一基于饱和度的增益函数、函数值为预设的基于饱和度的增益阈值的第二基于饱和度的增益函数以及函数值从预设的基于饱和度的增益阈值单调递减至0的第三基于饱和度的增益函数;以及第二增益函数选择步骤,用于查找用户设置的色度调节区间对应的基于饱和度的增益函数。
在根据本发明第二方面所述的图像色彩增强方法中,所述颜色空间转换步骤先将输入的图像数据从RGB空间转换到YUV空间,再使用cordic算法将其从YUV空间转换到HSV空间。
实施本发明的图像色彩增强装置和方法,具有以下有益效果:本发明通过采用不同色度分区的饱和度增益函数,并对饱和度分量太大和太小的区域设置了阈值,仅对饱和度分量的中间阶段部分进行适当的增强,实现了对饱和度分量的保护,使视频画面更柔和,也对人们的视觉起到了很好的保护作用。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。
请参阅图1,为本发明优选实施例中图像色彩增强装置的模块示意图。如图1所示,该实施例提供的图像色彩增强装置至少包括颜色空间转换模块10、基于色度的增益函数生成模块20、基于饱和度的增益函数生成模块30和饱和度增强模块40。
其中,颜色空间转换模块10将输入的图像数据从RGB空间转换到HSV空间。基于色度的增益函数生成模块20,接收用户设置的色度调节区间,生成该色度分区的基于色度的增益函数。基于饱和度的增益函数生成模块30,在该用户设置的色度调节区间内,生成基于饱和度的增益函数。饱和度增强模块40,利用所述基于色度的增益函数和所述基于饱和度的增益函数对饱和度进行增强。
下面对本发明的各个功能模块进行说明,并结合各个小模块来说明阐述本装置和方法的优越性,同时说明图像色彩增强装置在实际应用中有着极大的作用。
(1)颜色空间转换模块10
颜色空间转换模块10将输入的图像数据从RGB空间转换到HSV空间。HSV模型由色度H、饱和度S、亮度V这三个分量组成,与人类对颜色的感知更加接近。这个模型的优点是:一方面消除了亮度成分V在图像中与颜色信息的联系,另一方面,色度H与饱和度S与人的视觉感受密切相关。
首先,将图像从RGB空间转换到HSV空间,基本的转换过程如下所述,而的模型如下图2。当然,图像从RGB空间转换到HSV空间有许多的方法可以实现,但在本模块中,为了能加速***运行,提高运行效率,本模块采用的是用经典的cordic算法。先把彩色图像从转换到电视机接收制式的YUV空间,这样既可以对信号进行某些其它的直接处理,也可以像在本模块中通过算法处理,把信号从YUV空间变换到HSV空间,输出的数据流可供以后的实验所用,对以后信号的各种处理都是相当的方便。
然后,在此再来说明一下HSV空间模型中各部分的确切含义,对模型的理解乃至以后的处理都是必不可少的。请参阅图2,在圆锥顶点处V=0,H和S无定义,则代表黑色,圆锥顶面中心处V=1,S=0,H定义,则代表白色。从该点到原点代表亮度渐暗的灰色,即具有不同灰度的灰色,对于这些点S=0,H的值无定义。在圆锥顶面的圆周上的颜色,V=1,S=1,这种颜色是纯色。
(2)基于色度的增益系数计算模块20
在视频图像处理时,如果仅仅对饱和度分量做增强,有时会带来危险的后果。画面虽然清晰,颜色也比较饱和,但是往往和原始视频图像相差太多,甚至会出现失真的情况。
所以,本发明优选对色度H分区域,然后对不同的区域采用不同的处理方式,也即生成基于色度的增益函数,使得不同色度区域的基于色度的增益函数有所区别。
通过以上对HSV颜色空间的分析可知,色度H是按照一个圆周分布的,也即每一个扇形区域都对应的有相应的色度分量。那么,就可以根据这些分量的不同来实施相关的增强措施。请参阅图3,为本发明优选实施例中基于色度的增益函数生成模块的具体结构图。如图3所示,基于色度的增益函数生成模块20进一步包括:色度分区函数存储单元21和第一增益函数选择单元22.
其中,色度分区函数存储单元21,用于生成并存储不同色度分区的增益函数gain’。该色度分区函数存储单元21中存储有针对不同色度分区的多个饱和度增益函数。如图6,为本发明优选实施例中一色度分区的饱和度增益函数示意图。图6中仅示出了色度位于H0至H1中的基于色度的饱和度增益函数。在H0至H1之外还可能存在多个基于色度的饱和度增益函数。将图6的增强方法推广到色度分量中的其它区域,可以对不同色度分量采用不同的增强方法和增强系数。
如果色度H0至H1范围之外的其它饱和度分量增强的相对较强,而色度H0至H1之间的饱和度又没有相应变化,于是就会出现过渡不协调,色感就会不好。这样色度之间的过渡部分就会明显的断层,使画面的层次感大打折扣,因此本模块的采用方法与饱和度增益系数中相似,即采用的是缓慢过渡的方法,让色度分量也形成一个类似于上述的自适应方法,即为对色度H所形成的增益系数。
为了使得该色度位于H0至H1中的饱和度增强也实现平滑过渡,在此,对不同色度分区的饱和度增益函数中的每一个包括位于该色度分区内的:函数值单调递增至预设的基于色度的增益阈值的第一基于色度的增益函数,如位于色度H0和某一色度中间值之间的逐渐上升的斜线;函数值为预设的基于色度的增益阈值的第二基于色度的增益函数,如中间阶段的函数值为max gain’的函数;以及函数值从预设的基于色度的增益阈值开始单调递减的第三基于色度的增益函数。例如位于该色度中间值和色度H1之间的逐渐下降的斜线。通过图4所示的该色度分区的增益函数就能对色度位于H0至H1中饱和度实现较大地增强,且具有平滑过渡的过程。其中,基于色度的增益阈值可以采用默认的参数,也可以由用户设置,从而对需要保护的区域进行保护,需要增强幅度比较大的色度区域,则要重点增强,这也就是所谓的色度控制,而本模块就是要解决这一难题。比如人的肤色,或是诸如黄金之类其它不需要做饱和度增强的颜色区域,就要实施保护策略,否则会随着亮度的增强这些颜色区域会变得相当糟糕。在此模块中,就可以在这些需要保护的色度区域设置保护屏障,即该色度分区的基于色度的增益阈值。也就是说,如果在这一段被保护的区域做饱和度增强时,中间阶段只需要做细小的增强,或者是不增强,保持原始的饱和度。该基于色度的增益阈值可以根据需要设置为最大阈值,如图4中max_gain’。该基于色度的增益阈值也可以根据需要设置为最小阈值。
此外,不同色度分区的饱和度增益函数还可以采用与图4中图形反向的函数对色度分区内的饱和度进行增益,即在该区域只需要做细小的增强,或者是不增强时。靠近该色度分区内部边缘的增益系数将高于中间区域的增益系数。例如要增强的这一色度区域是人的肤色,而人的肤色范围体现在色度分量上是在另一色度区间之间,我们就可对这个色度区间内的饱和度增强时做与其它色度增强所不同的增强方式,让其(饱和度S)只做细微的增强或者是不增强,保持原始状况。
因此,通过上述对各个色度分区的饱和度分别进行增强,就可以对不同色度分量采用不同的增强系数。
(2)基于饱和度的增益函数生成模块30
在对图像的色度进行分区之后,就需要对该色度分区内的饱和度进行增强。然而,通过背景中对现有饱和度分量增强的介绍,可知对饱和度分量S的增强,没必要在全段增强,因此本发明的只需对饱和度分量S的中间阶段部分进行适当的增强即可。基于饱和度的增益函数生成模块30的增益函数生成过程如下。
根据以上以饱和度分量S的分析可知,我们在计算增益系数时,如果让饱和度分量S的所有增益系数是同一个系数,这样有时不但不能起到增强的效果,反而会破坏图像原有的性质,使图像更糟糕,对观众的视觉会起不到保护作用,有时甚至会是损伤。那么,本发明就要想个办法来解决这个问题,而基于饱和度的增益系数计算模块30则可根据饱和度分量S的性质属性,设计出自适应的增益系数来,也即对每一个饱和度分量S都有一个与之匹配的增益系数,这样增强效果则会比用一个增强系数要好的很多,画面质量也会有质的改进。
请参阅图5,为本发明优选实施例中基于饱和度的增益函数生成模块的具体结构图。如图5所示,该实施例提供的基于饱和度的增益函数生成模块30进一步包括:饱和度函数存储单元31和第二增益函数选择单元32。
其中,饱和度函数存储单元31,用于生成并存储用户设置的色度调节区间内的基于饱和度的增益函数gain。请参阅图6,为本发明优选实施例提供的基于饱和度的增益函数的示意图。如图6所示,基于饱和度的增益函数对饱和度分量S设置了最小饱和度阈值s0和最大饱和度阈值s1。该最小饱和度阈值s0和最大饱和度阈值s1可以采用默认参数,或者由用户设置。当饱和度分量S原始值小于该最小饱和度阈值s0或者大于最大饱和度阈值s1时,即饱和度分量S原始值本来就太小或太大时,就已经没有必要再对饱和度分量S进行增强,因此,最小饱和度阈值s0和最大饱和度阈值s1之外饱和度增益系数为0。最小饱和度阈值s0和最大饱和度阈值s1可以灵活地设置以满足不同的需求。
由于每个人,乃至某些特定人群对颜色的视觉反应都不是一样的,如对于亚洲人种而言,人们对于肤色来说,则更容易接受黄色;而尤其对于我们中国人来说,我们的视觉机理则会更容易选择那些更鲜艳的色泽等等。依据想要的增强效果,可以先设置一个基于饱和度的最大增益阈值,即最大增益系数max_gain,这个最大增益系数则决定了我们的饱和度分量S增强的最高程度。饱和度分量S的中间部分的增益系数可以设置为最大的增益系数,这样就能保证大部分的饱和度分量S得到增强。
因此,在最小饱和度阈值s0和最大饱和度阈值s1内部,设计了单调递增的第一基于饱和度的增益函数,即从最小饱和度阈值s0到某一中间值之间函数值从0逐渐上升至预设的基于饱和度的增益阈值max gain的斜线段;恒定不变的第二基于饱和度的增益函数,其函数值为预设的基于饱和度的增益阈值max gain;以及单调递减的第三基于饱和度的增益函数,即从该中间值到最大饱和度阈值s1之间函数值从max gain逐渐下降至0的斜线段。这样,就从取值较低的基于饱和度的增益系数(如饱和度为最小饱和度阈值s0时为0)到取值较高的基于饱和度的增益系数(如饱和度为某中间值时),或者从取值较高的基于饱和度的增益系数(如饱和度为某中间值时)到取值较低的基于饱和度的增益系数(如饱和度为最小饱和度阈值s1时为0)的增强过程中加上了适当的过渡,而不是急剧上升或下降,不至于对饱和度分量S的增强过程产生不协调,对饱和度分量S增强达到了很好的保护效果。
第二增益函数选择单元22,用于从所述饱和度函数存储单元中查找用户设置的色度调节区间对应的基于饱和度的增益函数。
因此,通过上述对全段的饱和度分段进行增强,使得分量值特别高的部分的增益系数可以为较小,特别低的部分的增益系数可以设置的也较小,从分量中间值到分量两端部分相应的增益系数有一个过渡,而不是急剧上升或下降,可用分段函数来描述。当然,本算法的另一个好处便是,这些参数可以灵活的设置。因此上述基于饱和度的增益函数生成模块30的能对饱和度分量S进行自适应调节,对饱和度分量S太大和太小的区域设置了阈值,加强对其整个饱和度分量S的保护。且增强过程中,对从高值到低值,或从低值到高值的增强过程中加上了适当的过渡,不至于对饱和度分量S的增强过程产生不协调,对饱和度分量S增强达到了很好的保护效果,这样就可以使视频画面更柔和,也对人们的视觉起到了很好的保护作用。
(3)饱和度增强模块40
并且,由上可知,在对饱和度分量S和色度分量H做相应的分析处理之后,会产生两个相应的饱和度增益函数:gain和gain′。那么,最后在饱和度增强模块40中,产生一个综合的增益系数,即gain*gain′。
于是,对颜色的增强的最终结果,也即最后的饱和度分量S为:
S′=S*gain*gain′
这样,就形成了一个颜色增强管理***,能对视频图像中不同的色度分区内的不同的饱和度进行适应性增强,可以用不同的参数在***的外部进行管理即可,而不需要去修改程序,这也是本发明的一个特色之处。
请参阅图7,为本发明优选实施例中图像色彩增强方法的流程图。如图7所示,本实施例提供的图像色彩增强方法,包括以下步骤:
首先,在步骤S1中,将输入的图像数据从RGB空间转换到HSV空间。本发明可以先将输入的图像数据从RGB空间转换到YUV空间,再使用cordic算法将其从YUV空间转换到HSV空间。该步骤S1的功能与装置中颜色空间转换模块10的功能的描述一致。
随后在步骤S2中,接收用户设置的色度调节区间,生成该色度分区的基于色度的增益函数gain’。该步骤进一步包括:色度分区函数存储步骤,生成并存储不同色度分区的增益函数;且所述不同色度分区的增益函数中的每一个包括位于该色度分区内的:函数值单调递增至预设的基于色度的增益阈值的第一基于色度的增益函数、函数值为预设的基于色度的增益阈值的第二基于色度的增益函数以及函数值从预设的基于色度的增益阈值开始单调递减的第三基于色度的增益函数;以及第一增益函数选择步骤,用于查找用户设置的色度调节区间对应的基于色度的增益函数。步骤S2的功能与装置中基于色度的增益函数生成模块20的功能的描述一致。
随后,在步骤S3中,在该用户设置的色度调节区间内,生成基于饱和度的增益函数gain。步骤S3可进一步包括:饱和度函数存储步骤,生成并存储用户设置的色度调节区间内的基于饱和度的增益函数;且所述基于饱和度的增益函数包括位于预设的最小饱和度阈值至最大饱和度阈值范围内的:函数值从0开始单调递增至预设的基于饱和度的增益阈值的第一基于饱和度的增益函数、函数值为预设的基于饱和度的增益阈值的第二基于饱和度的增益函数以及函数值从预设的基于饱和度的增益阈值单调递减至0的第三基于饱和度的增益函数;以及第二增益函数选择步骤,用于查找用户设置的色度调节区间对应的基于饱和度的增益函数。步骤S3的功能与装置中基于饱和度的增益函数生成模块30的功能的描述一致。
最后在步骤S4中,利用基于色度的增益函数gain’和所述基于饱和度的增益函数gain的乘积对饱和度进行增强。即S′=S*gain*gain′。步骤S4与装置中饱和度增强模块40的功能的描述一致。
综上所述,本发明的图像色彩增强装置和方法通过采用不同色度分区的饱和度增益函数,并使用过渡的方式,使画面更加柔和,避免了色度之间的过渡部分出现的断层,保留了画面的层次感。同时在该色度分区内,对饱和度分量太大和太小的区域设置了阈值,仅对饱和度分量的中间阶段部分进行适当的增强,实现了对饱和度分量的保护,使视频画面更柔和,也对人们的视觉起到了很好的保护作用。
本发明的图像色彩增强装置和方法是根据特定实施例进行描述的,但本领域的技术人员应明白在不脱离本发明范围时,可进行各种变化和等同替换。此外,为适应本发明技术的特定场合,可对本发明进行诸多修改而不脱离其保护范围。因此,本发明并不限于在此公开的特定实施例,而包括所有落入到权利要求保护范围的实施例。