发明内容
本发明实施例所要解决的技术问题在于,提供一种移色处理方法和装置,可以依据参考区域,对整张图像或图片进行移色处理。
为了解决上述技术问题,本发明实施例提供了一种移色处理方法,用于对图像或图片进行移色处理,包括以下步骤:
获取待处理的图像或图片中预置的参考区域的颜色信息和所述待处理的图像或图片中每一个像素的颜色信息;
将所述待处理的图像或图片中每一个像素的颜色信息与所述预置的参考区域的颜色信息进行对比;
根据对比结果,对所述待处理的图像或图片中每一个像素进行移色处理。
其中,所述获取待处理的图像或图片中预置的参考区域的颜色信息,包括:
遍历所述预置的参考区域的每一个像素,获取所述预置的参考区域的每一个像素的红色分量强度、绿色分量强度和蓝色分量强度;
采用预设的蓝色色度分量公式,计算所述预置的参考区域的每一个像素的蓝色色度分量;
采用预设的红色色度分量公式,计算所述预置的参考区域的所述每一个像素的红色色度分量;
将计算得到的所述预置的参考区域的每一个像素的蓝色色度分量和红色色度分量对应存入二维数组中。
其中,所述获取待处理的图像或图片中每一个像素的颜色信息,包括:
遍历所述待处理的图像或图片中每一个像素,获得所述待处理的图像或图片中每一个像素的红色分量强度、绿色分量强度和蓝色分量强度;
采用所述预设的蓝色色度分量公式,计算所述待处理的图像或图片中每一个像素的蓝色色度分量;
采用所述预设的红色色度分量公式,计算所述待处理的图像或图片中所述每一个像素的红色色度分量。
其中,所述将所述待处理的图像或图片中每一个像素的颜色信息与所述预置的参考区域的颜色信息进行对比,包括:
从所述二维数组中查找与所述待处理的图像或图片中每一个像素的颜色信息相同的像素的个数,所述与所述待处理的图像或图片中每一个像素的颜色信息相同包括:与所述待处理的图像或图片中每一个像素的蓝色色度分量和红色色度分量均相同;
判断所述相同的像素的个数是否大于预设值;
所述根据所述对比结果,对所述待处理的图像或图片中每一个像素进行移色处理,包括:
如果所述相同的像素的个数大于预设值,则保留所述像素的颜色,否则,将所述像素的颜色变灰。
其中,所述将所述像素的颜色变灰包括:
采用预设的亮度公式,计算该像素的亮度;
将该像素的亮度分别赋值给该像素的红色分量强度、绿色分量强度和蓝色分量强度。
相应地,本发明实施例还提供了一种移色处理装置,用于对图像或图片进行移色处理,包括:
第一获取模块,用于获取待处理的图像或图片中预置的参考区域的颜色信息;
第二获取模块,用于获取所述待处理的图像或图片中每一个像素的颜色信息;
对比模块,用于将所述第二获取模块获取的所述待处理的图像或图片中每一个像素的颜色信息与所述第一获取模块获取的所述预置的参考区域的颜色信息进行对比;
移色处理模块,用于根据所述对比模块的对比结果,对所述每一个像素进行移色处理。
其中,所述第一获取模块包括:
第一计算单元,用于采用预设的蓝色色度分量公式,计算所述预置的参考区域的每一个像素的蓝色色度分量;采用预设的红色色度分量公式,计算所述预置的参考区域的所述每一个像素的红色色度分量;
保存单元,用于将所述第一计算单元计算得到的所述预置的参考区域的所述每一个像素的蓝色色度分量和红色色度分量对应存入二维数组中;
所述第二获取模块包括:
第二计算单元,用于采用所述预设的蓝色色度分量公式,计算所述待处理的图像或图片中每一个像素的蓝色色度分量;采用所述预设的红色色度分量公式,计算所述待处理的图像或图片中所述每一个像素的红色色度分量。
其中,所述对比模块包括:
相同个数获得单元,用于从所述二维数组中查找与所述待处理的图像或图片中每一个像素的颜色信息相同的像素的个数,所述与所述待处理的图像或图片中每一个像素的颜色信息相同包括:与所述待处理的图像或图片中每一个像素的蓝色色度分量和红色色度分量均相同;
对比单元,用于判断所述相同的像素的个数是否大于预设值。
其中,所述移色处理模块包括:
第一移色处理单元,用于所述对比单元判断所述相同的像素的个数大于预设值时,保留所述像素的颜色;
第二移色处理单元,用于所述对比单元判断所述相同的个数小于或等于预设值时,将所述像素的颜色变灰。
其中,所述第二移色处理单元包括:
亮度计算单元,用于采用预设的亮度公式,计算该像素的亮度;
赋值单元,用于将该像素的亮度分别赋值给该像素的红色分量强度、绿色分量强度和蓝色分量强度。
实施本发明实施例,具有如下有益效果:
通过将获取的待处理的图像或图片的每一个像素的颜色信息与参考区域内的颜色信息进行对比,根据对比结果,对待处理的图像或图片的每一个像素进行移色处理,从而能够依据参考区域的颜色信息,对整张图像或图片进行移色处理,满足用户的移色需求。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,是本发明实施例的移色处理方法的第一实施例的流程示意图,所述方法包括以下步骤:
步骤S101,获取待处理的图像或图片中预置的参考区域的颜色信息;
其中,预置的参考区域在图像或图片中的位置和大小由用户选定,比如用户通过选框工具或魔棒工具等在图像或图片中选择某一大小的区域作为参考区域。由于参考区域由用户选定,所以参考区域能够反应用户实际的愿景,提高用户的体验度。
参考区域内的颜色信息包括:参考区域内每一个像素的蓝色色度分量和红色色度分量。在YCbCr色彩模式中,每一个像素由Y(亮度分量)、Cb(蓝色色度分量)和Cr(红色色度分量)按照一定的比例混合而成。因此,每一个像素点的蓝色色度分量Cb和红色色度分量Cr能够反应该像素的颜色信息,参考区域的所有像素的蓝色色度分量和红色色度分量的集合能够反应该参考区域的颜色信息。
步骤S102,获取待处理的图像或图片中每一个像素的颜色信息;
其中,所述待处理的图像图片中每一个像素的颜色信息包括:每一像素的红色色度分量和蓝色色度分量。
步骤S103,将所述步骤S102中获取的每一个像素的颜色信息与所述步骤S101中获取的参考区域内的颜色信息进行对比;
步骤S104,根据步骤S103的对比结果,对所述每一个像素进行移色处理。
上述步骤S101和步骤S102在时序上不分先后,可以先执行步骤S101,再执行步骤S102;也可以同时执行步骤S101和步骤S102,还可以先执行步骤S102,再执行步骤S101。在上述步骤S101至步骤S104中,由于对每一个像素处理均包括了对比(S103)和移色处理(S104)的步骤,所以能够在图像或图片中突出地显示与预置的参考区域颜色相同或相近似的颜色。上述的移色处理方法简单易行,可以应用于手机、PC(Personal Computer,个人计算机)、PDA(Personal DigitalAssistant,个人数字助理)或车载终端等设备中,实现对图像或图片的移色处理。
请参考图2,是上述移色处理方法中步骤S101的实施例的流程示意图,所述步骤S101包括:
步骤S201,遍历预置的参考区域的每一个像素,获得每一像素的红色分量强度、绿色分量强度和蓝色分量强度;
步骤S202,采用预设的蓝色色度分量公式计算所述参考区域的每一个像素的蓝色色度分量,采用预设的红色色度分量计算公式计算所述参考区域的所述每一个像素的红色色度分量;
步骤S203,将计算得到的预置的参考区域的每一个像素的蓝色色度分量和红色色度分量对应存入二维数组中。
上述步骤S202中,预设的蓝色色度分量公式可以为:蓝色色度分量=-0.148*红色分量强度-0.291*绿色分量强度+0.439*蓝色分量强度+128;
预设的红色色度分量公式可以为:红色色度分量=0.439*红色分量强度-0.368*绿色分量强度-0.071*蓝色分量强度+128;
在蓝色色度分量公式和红色色度分量公式中,等式左边的蓝色色度分量、红色色度分量是指YCbCr色彩模式中的蓝色色度分量和红色色度分量。等式右边的红色分量强度、绿色分量强度和蓝色分量强度分别是指RGB色彩模式中的红色分量强度、绿色分量强度和蓝色分量强度。在RGB色彩模式中,每一个像素的颜色由红(Red)、绿(Green)和蓝(Blue)三种基本颜色按照一定的比例混合而成。上述公式,构建了RGB色彩模式和YCbCr色彩模式之间颜色信息的相互转换。
上述步骤S203中,将计算得到的每一个像素的蓝色色度分量和红色色度分量对应存入二维数组arrayCb[Cb],arrayCr[Cr]中。数组arrayCb[Cb],arrayCr[Cr]表示记录了蓝色色度分量和红色色度分量值的个数,即记录了选定区域内像素的个数。
请参考图3,是上述移色处理方法的步骤S102的实施例的流程示意图,包括如下步骤:
步骤S301,遍历待处理的图像或图片中每一个像素,获得待处理的图像或图片中每一个像素的红色分量强度、绿色分量强度和蓝色分量强度;
步骤S302,采用预设的蓝色色度分量公式,计算待处理的图像或图片中每一个像素的蓝色色度分量;采用预设的红色色度分量公式,计算待处理的图像或图片中所述每一个像素的红色色度分量;
其中,在步骤S302中,预设的蓝色色度分量公式可以为:蓝色色度分量=-0.148*红色分量强度-0.291*绿色分量强度+0.439*蓝色分量强度+128;
预设的红色色度分量公式可以为:红色色度分量=0.439*红色分量强度-0.368*绿色分量强度-0.071*蓝色分量强度+128;
请参考图4,是上述移色处理方法的步骤S103的实施例的流程示意图,包括:
步骤S401,从二维数组中查找与待处理的图像或图片中每一个像素的颜色信息相同的像素的个数;
其中,与待处理的图像或图片中每一个像素的颜色信息相同包括:与待处理的图像或图片中每一个像素的蓝色色度分量和红色色度分量均相同。即判断两个像素的颜色信息相同,是指两个像素的蓝色色度分量和红色色度分量对应相等。
步骤S402,判断步骤S401中查找到的相同的像素的个数是否大于预设值。
其中,预设值由用户或系统设定,比如,将参考区域内像素的总个数乘以预定比例做为预设值,其中预定比例可以由系统预定或由用户指定。并且,该预定比例的大小与选定的参考区域的大小有关,当参考区域为一个点时,即一个像素时,该比例为100%;当参考区域的面积较大时,该预定的比例可以适当变小。
请参考图5,本发明实施例的移色处理方法的步骤S104的实施例的流程示意图,包括
步骤S501,若相同的像素的个数大于预设值,则保留该像素的颜色;
步骤S502,若相同的像素的个数小于或等于预设值,则将所述像素的颜色变灰。
请参考图6,是步骤S502中将所述像素的颜色变灰的实施例的流程示意图,包括如下步骤:
步骤S601,采用预设的亮度公式,计算该像素的亮度;
步骤S602,将该像素的亮度分别赋值给该像素的红色分量强度、绿色分量强度和蓝色分量强度。
其中,预设的亮度计算公式为:亮度=0.257*红色分量强度+0.504*绿色分量强度+0.098*蓝色分量强度+16。
将计算得到的亮度分别赋值给该像素的红色分量强度、绿色分量强度和蓝色分量强度,从而使该像素的颜色变灰,使其在图像或图片中的颜色变淡,起到突出其它颜色(保留的颜色)的目的。
请参考图7,本发明的移色处理方法第二实施例的流程示意图,所述移色处理方法包括:
步骤S701,遍历参考区域;
步骤S702,计算当前像素的蓝色色度分量Cb和红色色度分量Cr,并以二维数组的形式保存。
步骤S703,判断对参考区域的遍历是否完成,即判断对于参考区域的每一个像素,是否均计算了其蓝色色度分量Cb和红色色度分量Cr。如果遍历完成,则转到步骤S704进行接下来的操作,如果遍历没有完成,则转到步骤S501继续对参考区域进行遍历,直到遍历完成。
步骤S704,对整张图像或图片的像素进行遍历。
步骤S705,计算当前像素的蓝色色度分量Cb和红色色度分量Cr。
步骤S706,判断是否需要保存当前像素的颜色。判断的方法可以是,判断参考区域的像素中与当前像素的颜色相同的像素的个数与预设值的大小关系,即先获得参考区域中,有多少个像素的蓝色色度分量与红色色度分量同时与当前像素的蓝色色度分量和红色色度分量均相同,再判断相同的个数与预设值的关系,若大于预设值,则保留当前像素的颜色,转到步骤S707,否则,转到步骤S708。
步骤S707,判断是否完成遍历,若是,则结束处理流程,若否,则转到步骤S704继续执行;
步骤S708,计算当前像素的亮度,并将该亮度赋值给当前像素的红色分量强度、绿色分量强度和蓝色分量强度。然后转到步骤S707上。
通过步骤S701至步骤S708,对整张图像或图片的像素进行了移色处理,包括保留像素的颜色或将像素的颜色变灰,从而使经过上述移色处理方法处理的图像或图片能够突出地显示与参考区域相同或相近似的颜色。并且,由于参考区域的位置和大小可以是由用户选定的,移色处理的结果充分反映了用户的要求,提高了用户的体验度。同时,该种方式简单、快捷,适用于手机、PC、PDA或车载移动终端等设备上。
相应地,请参考图8,是本发明实施例的一种移色处理装置的实施例的结构示意图,所述移色处理装置80包括:
第一获取模块801,用于获取待处理的图像或图片中预置的参考区域的颜色信息;
第二获取模块802,用于获取待处理的图像或图片中每一个像素的颜色信息;
对比模块803,用于将所述第二获取模块802获取的每一个像素的颜色信息与所述第一获取模块801获取的预置的参考区域的颜色信息进行对比;
移色处理模块804,用于根据所述对比模块的对比结果,对所述每一个像素进行移色处理。
其中,第一获取模块801和第二获取模块802的功能可相互替换,或获取待处理图像或图片中预置的参考区域的颜色信息和获取待处理图像或图片中每一像素的颜色信息由同一个获取模块实现,比如仅由第一获取模块801或仅由第二获取模块802实现。移色处理模块803对像素的移色处理可以包括:保留像素的颜色或把像素的颜色变灰。
上述移色处理装置80,通过将第二获取模块802获取的每一个像素的颜色信息与第一获取模块801获取的参考区域总的颜色信息进行对比,从而依据对比结果对每一个像素进行相应的移色处理。使经过移色处理装置处理的图像或图片,能够突出显示与参考区域相同或相近似的效果,达到较好的移色处理效果。并且,该移色处理装置还可以集成在手机、PC、PDA或车载移动终端等设备上。使手机、PC、PDA或车载移动终端等设备具备对图像或图片的移色处理功能。
请参考图9,是本发明实施例的第一获取模块801的实施例结构示意图,所述第一获取模块801包括:
第一计算单元901,用于采用预设的蓝色色度分量公式,计算预置的参考区域的每一个像素的蓝色色度分量;采用预设的红色色度分量公式,计算预置的参考区域的所述每一个像素的红色色度分量;
其中,蓝色色度分量计算公式为:蓝色色度分量=-0.148*红色分量强度-0.291*绿色分量强度+0.439*蓝色分量强度+128;红色色度分量计算公式为:红色色度分量=0.439*红色分量强度-0.368*绿色分量强度-0.071*蓝色分量强度+128。
保存单元902,用于保存预置的参考区域的每一个像素的蓝色色度分量和红色色度分量,所述每一个像素的蓝色色度分量和红色色度分量以二维数组的形式保存。
将每一个像素的蓝色色度分量和红色色度分量保存到arrayCb[Cb],arrayCr[Cr]中。数组arrayCb[Cb],arrayCr[Cr]表示记录了蓝色色度分量和红色色度分量的个数,即记录了选定区域内总的像素个数。
请参考图10,是本发明实施例的第二获取模块802的实施例的结构示意图,所述第二获取模块802包括:
第二计算单元101′,用于采用预设的蓝色色度分量公式,计算待处理的图像或图片中每一个像素的蓝色色度分量;采用预设的红色色度分量公式,计算待处理的图像或图片中所述每一个像素的红色色度分量。
其中,蓝色色度分量计算公式为:蓝色色度分量=-0.148*红色分量强度-0.291*绿色分量强度+0.439*蓝色分量强度+128;红色色度分量计算公式为:红色色度分量=0.439*红色分量强度-0.368*绿色分量强度-0.071*蓝色分量强度+128。
请参考图11,是本发明实施例的对比模块803的实施例的结构示意图,所述对比模块803包括:
相同个数获得单元111′,用于从二维数组中查找与待处理的图像或图片中每一个像素的颜色信息相同的像素的个数;
其中,与待处理的图像或图片中每一个像素的颜色信息相同包括:与待处理的图像或图片中每一个像素的蓝色色度分量和红色色度分量均相同;
对比单元112′,用于判断相同的像素的个数是否大于预设值,并将判断得到的结果发送给移色处理模块804。
请参考图12,是本发明实施例的移色处理模块804的实施例的结构示意图,所述移色处理模块804包括:
第一移色处理单元121′,用于在对比单元112′判断到相同的像素的个数大于预设值时,保留所述像素的颜色;
第二移色处理单元122′,用于在对比单元112′判断到相同的个数小于或等于预设值时,将所述像素的颜色变灰。
所述预设值由用户或系统设定,比如,将参考区域内像素的总个数乘以预定比例做为预设值,其中预定比例可以由系统预定或由用户指定。并且,该预定比例的大小与选定的参考区域的大小有关,当参考区域为一个点时,即一个像素时,该比例为100%;当参考区域的面积较大时,该预定的比例可以适当变小。
请参考图13,是本发明实施例的第二移色处理单元122′的实施例的结构示意图,所述第二移色处理单元122′包括:
亮度计算单元131′,用于采用预设的亮度公式,计算该像素的亮度;
赋值单元132′,用于将亮度计算单元131′计算得到的该像素的亮度分别赋值给该像素的红色分量强度、绿色分量强度和蓝色分量强度。
所述亮度计算公式为:亮度=0.257*红色分量强度+0.504*绿色分量强度+0.098*蓝色分量强度+16。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。