发明内容
有鉴于此,本发明的主要目的在于提供一种图像处理方法,能够方便有效地修复图像中出现的红色溢出现象。
本发明的另一目的在于提供一种图像处理装置,能够方便有效地修复图像中出现的红色溢出现象。
为达到上述目的,本发明的技术方案是这样实现的:
一种图像处理方法,该方法包括:
统计原始图像的所有像素点中的绿G、蓝B两个分量值在预定取值区间内各自对应的像素个数;
将所述原始图像复制得到一临时图像,对统计出的G和B两个分量值各自对应的像素个数进行比较,如果G分量值对应的像素个数大于或等于B分量值对应的像素个数,则将所述临时图像每一个像素点中的红R分量值均用该像素点上的G分量值代替;否则,将所述临时图像每一个像素点中的R分量值均用该像素点上的B分量值代替;
按亮度模式将处理后的临时图像叠加到所述原始图像,得到最终所需图像,包括:
计算所述处理后的临时图像以及所述原始图像中的各像素点的灰度值;
针对位于所述原始图像以及所述处理后的临时图像中的每一对对应像素点,分别按照以下方式进行计算:
r1=r+((255-r)*(b_gray-a_gray)*255*K2/a_gray)/255;
g1=g+((255-g)*(b_gray-a_gray)*255*K2/a_gray)/255;
b1=b+((255-b)*(b_gray-a_gray)*255*K2/a_gray)/255;
其中,所述b_gray表示位于所述处理后的临时图像上的像素点的灰度值;所述a_gray表示位于所述原始图像上的像素点的灰度值;所述r、g、b分别表示位于所述原始图像上的像素点中的R、G、B分量值;所述K2为预先设定的系数;所述r1、g1、b1分别表示位于所述最终所需图像上的像素点中的R、G、B分量值;
其中,所述系数K2为:K2=transparency*K1/(255*100);
其中,所述transparency为透明度;所述K1为预先设定的系数,当所述原始图像上的像素点中的R分量值在三个分量值中取值最大时,所述K1=(R-MAX(G,B))*3,所述MAX(G,B)表示取G分量值和B分量值中较大的一个;否则,所述系数K1取值为0;
所述计算所述处理后的临时图像以及所述原始图像中各像素点的灰度值包括:
对于所述处理后的临时图像以及所述原始图像中的每一个像素点,分别按照以下方式进行计算:
Gray=(G*77+B*151+R*28)/255;
或Gray=(G+B+R)/3;
其中,G、B、R分别表示每个像素点中的G分量值、B分量值以及R分量值;Gray表示计算得到的灰度值。
一种图像处理装置,该装置包括:
统计单元,用于统计原始图像的所有像素点中的绿G、蓝B两个分量值在预定取值区间内各自对应的像素个数;
处理单元,用于将所述原始图像复制得到一临时图像,对统计出的G和B两个分量值各自对应的像素个数进行比较,如果G分量值对应的像素个数大于或等于B分量值对应的像素个数,则将所述临时图像每一个像素点中的红R分量值均用该像素点上的G分量值代替;否则,将所述临时图像每一个像素点中的R分量值均用该像素点上的B分量值代替;
叠加单元,用于按亮度模式将处理后的临时图像叠加到所述原始图像,得到最终所需图像;
其中,所述叠加单元包括:
第一计算子单元,用于针对所述原始图像以及所述处理后的临时图像中的每一个像素点,分别按照以下方式进行计算:
Gray=(G*77+B*151+R*28)/255;
或Gray=(G+B+R)/3;
其中,G、B、R分别表示每个像素点中的G分量值、B分量值以及R分量值;Gray表示计算得到的灰度值;
第二计算子单元,用于针对位于所述原始图像以及所述处理后的临时图像中的每一对对应像素点,分别按照以下方式进行计算:
r1=r+((255-r)*(b_gray-a_gray)*255*K2/a_gray)/255;
g1=g+((255-g)*(b_gray-a_gray)*255*K2/a_gray)/255;
b1=b+((255-b)*(b_gray-a_gray)*255*K2/a_gray)/255;
其中,所述b_gray表示位于所述处理后的临时图像上的像素点的灰度值;所述a_gray表示位于所述原始图像上的像素点的灰度值;所述r、g、b分别表示位于所述原始图像上的像素点中的R、G、B分量值;所述r1、g1、b1分别表示位于所述最终所需图像上的像素点中的R、G、B分量值;
系数K2为:K2=transparency*K1/(255*100);其中,所述transparency为透明度;所述K1为预先设定的系数,当所述原始图像上的像素点中的R分量值在三个分量值中取值最大时,所述K1=(R-MAX(G,B))*3,所述MAX(G,B)表示取G分量值和B分量值中较大的一个;否则,所述系数K1取值为0。
可见,采用本发明的技术方案,能够在不影响其它颜色通道的前提下,通过削弱红色对整幅图像的影响,来对数码照片等图像中出现的红色溢出现象进行有效修复,从而恢复红色部分的细节,使红色部分更加鲜明,更有层次感,达到更完美的效果。另外,本发明所述方案可应用于软件中,用户只需点击相应的按键,软件自身即可按照本发明所述方案在后台完成处理,为用户节省了时间和费用,方便了用户使用。
具体实施方式
为解决现有技术中存在的问题,本发明中提出一种全新的图像处理方案,即“红饱和衰减”方案,在不影响其它颜色通道的前提下,对数码照片等图像中出现的红色溢出现象进行有效修复,从而恢复红色部分的细节,使红色部分更加鲜明,更有层次感,达到更完美的效果。
在介绍具体的实现方案之前,首先介绍一下红绿蓝(RGB)色彩模型的概念。RGB色彩模型是工业界的一种颜色标准,通过对R、G、B三个颜色通道进行变化以及对它们相互之间进行叠加来得到各种各样的颜色,所以,对于图像中的每一个像素点,均可用R、G、B三个分量(通道)来表示。通常,每个分量的取值范围为0~255;这样,当R、G、B分量分别取不同的值时,对应表示的颜色也将不同。比如,纯红色的R分量值为255,G分量值和B分量值均为0;亮红色的R分量值为246,G分量值为20,B分量值为50。
基于上述介绍,本发明所述方案的具体实现包括:首先,统计原始图像的所有像素点中的G、B两个分量值在预定取值区间内各自对应的像素个数;然后,将原始图像进行复制,得到一临时图像,并对统计出的G和B两个分量值各自对应的像素个数进行比较,如果G分量值对应的像素个数大于或等于B分量值对应的像素个数,则将临时图像每一个像素点中的R分量值均用该像素点上的G分量值代替,否则,将临时图像每一个像素点中的R分量值均用该像素点上的B分量值代替;最后,按亮度模式将处理后的临时图像叠加到原始图像,得到最终所需图像。
上述方案中,也可以统计原始图像所有像素点中的R、G、B三个分量值在预定取值区间内各自对应的像素个数,并分别统计G、B两个分量值各自对应的像素个数在三者所对应的像素总数中所占比例,然后,通过对统计出的G和B两个分量值所占比例进行比较,来对临时图像中的R分量值进行赋值。
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明作进一步地详细说明。
图1为本发明图像处理方法实施例的流程图。如图1所示,包括以下步骤:
步骤101:统计原始图像的所有像素点中的G、B两个分量值在预定取值区间内各自对应的像素个数。
本步骤的具体实现包括:
1)建立G、B两个分量的直方图:
这里所提到的直方图,是指以二维图形的形式表示出原始图像所有像素点中的G、B分量在不同取值上的分布情况。简单来说,直方图中的横轴用于表示各分量所有可能的取值0~255,纵轴用于表示不同的取值分别对应的像素个数(或不同取值分别对应的像素个数占总像素个数的比例)。举例来说,对于G分量,可通过遍历整个原始图像,获知当其取值为120时,对应的像素个数,即原始图像中共有多少个像素点的G分量值为120,然后,将其表示在直方图中即可。在实际应用中,可以将两个分量的直方图建立在同一张图上,也可以分别单独建立。如何建立G、B两个分量的直方图为现有技术,不再赘述。
2)根据所建立的直方图,分别统计G、B两个分量值在预定取值区间内的像素个数Num1和Num2:
本实施例中,为了使统计结果更具代表性,选取区间(85~255)作为预定取值区间(包括85和255两个端点值)。基于之前的介绍可知,直方图就是用于表示不同的取值分别对应的像素个数,所以可以很容易的统计出区间(85~255)内G、B两个分量值分别对应的像素总数Num1和Num2。
需要说明的是,上述关于本步骤的具体实现仅为举例说明,并不用于限制本发明的技术方案。如果采用其它的统计方法,同样能够实现本步骤所述功能,也是可以的。
步骤102:复制原始图像,得到一临时图像。
步骤103:对统计出的G和B两个分量值各自对应的像素个数进行比较,判断G分量值对应的像素个数是否大于或等于B分量值对应的像素个数,如果是,则执行步骤104;否则,执行步骤105。
即比较Num1与Num2的大小,如果Num1>=Num2,则执行步骤104;否则,执行步骤105。当然,对于Num1=Num2这种情况,也可在随后执行步骤105。
步骤104:将临时图像每一个像素点上的R分量值均用该像素点上的G分量值代替,然后执行步骤106。
举例说明,假设临时图像中某一像素点的R分量值为246,G分量值为20,B分量值为50,那么本步骤中,则将G分量值20赋值给R分量,作为R分量值。
步骤105:将临时图像每一个像素点上的R分量值均用B分量值代替。
通过对R分量值进行替换,削弱了红色对整幅图像的影响。
步骤106:按亮度模式将处理后的临时图像叠加到原始图像,得到最终所需图像。
本步骤中,首先计算处理后的临时图像以及原始图像中各像素点的灰度值,具体计算方式为:
Gray=(G*77+B*151+R*28)/255 (1)
或Gray=(G+B+R)/3 (2)
其中,G、B、R分别表示每个像素点中的G分量值、B分量值以及R分量值;Gray表示计算得到的灰度值。
在实际应用中,可根据需要任意选用公式(1)或(2)进行计算。
然后,对于分别位于原始图像以及处理后的临时图像中的每一对对应像素点(即两个像素点,一个位于原始图像中,一个位于处理后的临时图像中,两者处于相同的位置),分别按照以下方式进行计算:
r1=r+((255-r)*(b_gray-a_gray)*255*K2/a_gray)/255 (3)
g1=g+((255-g)*(b_gray-a_gray)*255*K2/a_gray)/255 (4)
b1=b+((255-b)*(b_gray-a_gray)*255*K2/a_gray)/255 (5)
其中,b_gray表示位于处理后的临时图像上的像素点的灰度值;a_gray表示位于原始图像上的像素点的灰度值;r、g、b分别表示位于原始图像上的像素点中的R、G、B分量值;K2为预先设定的系数;r1、g1、b1分别表示位于最终所需图像上的像素点中的R、G、B分量值。
系数K2的具体取值可以为:K2=transparency*K1/(255*100)。其中,transparency表示透明度,用户可根据自身需要调节此参数,直至达到满意效果,即该参数的具体取值可由用户根据需要进行设置;K1为预先设定的系数,当原始图像上的像素点中的R分量值在三个分量值中取值最大时,K1=(R-MAX(G,B))*3,MAX表示取G分量值和B分量值中较大的一个;如果R分量值不是最大,则K1=0。
至此,即完成了本发明所述图像处理过程。
基于上述方法,图2为本发明图像处理装置实施例的组成结构示意图。如图2所示,该装置包括:
统计单元21,用于统计原始图像的所有像素点中的G、B两个分量值在预定取值区间内各自对应的像素个数;
处理单元22,用于将原始图像复制得到一临时图像,对统计出的G和B两个分量值各自对应的像素个数进行比较,如果G分量值对应的像素个数大于或等于B分量值对应的像素个数,则将临时图像每一个像素点中的R分量值均用该像素点上的G分量值代替;否则,将临时图像每一个像素点中的R分量值均用该像素点上的B分量值代替;
叠加单元23,用于按亮度模式将处理后的临时图像叠加到原始图像,得到最终所需图像。
其中,统计单元21中可具体包括:
建立子单元211,用于建立关于所述原始图像所有像素点中的G、B两个分量的直方图;
统计子单元212,用于根据所建立的直方图,分别统计G、B两个分量值在预定取值区间内各自对应的像素个数;所述预定取值区间通常为(85~255)。
叠加单元23中可具体包括:
第一计算子单元231,用于针对原始图像以及处理后的临时图像中的每一个像素点,分别按照以下方式进行计算:
Gray=(G*77+B*151+R*28)/255; (1)
或Gray=(G+B+R)/3; (2)
其中,G、B、R分别表示每个像素点中的G分量值、B分量值以及R分量值;Gray表示计算得到的灰度值;
第二计算子单元232,用于针对分别位于原始图像以及处理后的临时图像中的每一对对应像素点,分别按照以下方式进行计算:
r1=r+((255-r)*(b_gray-a_gray)*255*K2/a_gray)/255 (3)
g1=g+((255-g)*(b_gray-a_gray)*255*K2/a_gray)/255 (4)
b1=b+((255-b)*(b_gray-a_gray)*255*K2/a_gray)/255 (5)
其中,b_gray表示位于处理后的临时图像上的像素点的灰度值;a_gray表示位于原始图像上的像素点的灰度值;r、g、b分别表示位于原始图像上的像素点中的R、G、B分量值;r1、g1、b1分别表示位于最终所需图像上的像素点中的R、G、B分量值;
系数K2为:K2=transparency*K1/(255*100);其中,transparency为透明度;K1为预先设定的系数,当原始图像上的像素点中的R分量值在三个分量值中取值最大时,K1=(R-MAX(G,B))*3,MAX表示取G分量值和B分量值中较大的一个;否则,K1=0。
图2所示装置的具体工作流程请参照图1所示方法实施例中的相应说明,此处不再赘述。
总之,采用本发明的技术方案,能够在不影响其它颜色通道的前提下,对数码照片等图像中出现的红色溢出现象进行有效修复,从而恢复红色部分的细节,使红色部分更加鲜明,更有层次感,达到更完美的效果。另外,本发明所述方案可应用于软件中,用户只需点击相应的按键,软件自身即可按照本发明所述方案在后台自动完成处理,为用户节省了时间和费用,方便了用户使用。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。