一种彩色图像颜色迁移方法与流程

文档序号:13767177阅读:210来源:国知局
本发明属于图像处理
技术领域
,具体涉及一种对彩色图像进行颜色迁移的方法。
背景技术
:在图像处理中,经常需要改变图像的颜色。例如电影行业中对图像进行特效处理、场景变换等,摄影行业中人物的美化与渲染,机器人视觉中的三维景物的理解与识别,军事安防领域中的图片修复、场景模拟再现等。颜色迁移技术为改变图像的颜色提供了一种有效的方法,但是目前的颜色迁移方法存在着很大的不足:基于统计匹配的颜色迁移算法在源图像和目标图像差异较大的情况下很难获得满意的迁移效果,因此适用范围有限;基于人工交互的颜色迁移算法难以实现自动化批量处理;基于图像分割的颜色迁移算法复杂度较高,边缘区域迁移效果不理想。技术实现要素:为了解决上述技术问题,本发明提供了一种新的彩色图像颜色迁移方法,能够增加颜色迁移的适用范围,提高迁移质量。本发明所采用的技术方案是:一种彩色图像颜色迁移方法,其特征在于,包括以下步骤:步骤1:构建中间图像;提取参考图像(颜色图像)的颜色特征,根据这些颜色特征构建一幅中间图像,以此中间图像代替原始的参考图像进行颜色迁移;步骤2:网格划分处理;将待处理图像(形状图像)以像素为单位划分为若干个网格块,然后依次对每一个网格块进行颜色迁移处理;步骤3:颜色迁移处理;首先计算网格块的平均颜色Caver,然后在中间图像中查找与Caver最接近的颜色,记为Cdes;依次将该网格块中的每一个像素迁移到Cdes上,从而完成该网格块的颜色迁移处理;依次处理每一个网格块,最终完成整幅图像的颜色迁移过程。作为优选,步骤1中所述构建中间图像,其具体实现过程包括以下子步骤:步骤1.1:颜色分类;遍历图像,根据像素RGB三通道值的大小关系,将图像的所有像素归为三类:第一类,RGB三通道中R值最小;第二类,RGB三通道中G值最小;第三类,RGB三通道中B值最小;归类后,若某一类中包含的像素数目为0,则认为该类不存在;假设每一类代表一种颜色,则归类后一幅图像最多包含三种颜色、最少包含一种颜色(若某一类不存在,则包含两种颜色,若某两类不存在,则包含一种颜色);步骤1.2:颜色特征提取;若颜色分类后的图像包含两种或者三种颜色,则分别统计每一种颜色的平均颜色、最大颜色、最小颜色,以这三个量作为一组颜色特征,则最终得到两组或者三组颜色特征;其中最大颜色定义为:RGB三通道之和最大;最小颜色定义为:RGB三通道之和最小;若颜色分类后的图像只包含一种颜色,则根据另外两个通道的值的大小关系将该种颜色再细分为两种或者一种颜色;若再细分为两种颜色,则分别计算这两种颜色的平均颜色、最大颜色、最小颜色;若无法继续细分,则计算该种颜色的平均颜色、最大颜色、最小颜色,得到一组颜色特征,另外再统计出该种颜色中具有最高饱和度和最大亮度的颜色值,以此颜色作为平均颜色,与最大颜色、最小颜色组合成另一组颜色特征;因此任何一幅图像都能提取出至少两组、至多三组颜色特征;其中最大颜色由前n个最大颜色计算平均值得到、最小颜色由前n个最小颜色计算平均值得到;步骤1.3:构建中间图像;有了至少两组颜色特征之后,利用这些颜色特征构建一幅二维的渐变图像,具体的构建方法为:首先,本发明中,利用四个颜色C1(r1,g1,b1)、C2(r2,g2,b2)、C3(r3,g3,b3)、C4(r4,g4,b4)构建一幅高为L1(单位:像素)、宽为L2(单位:像素)的渐变图像S的方法为:令S的左上角为坐标原点,横向往右为x轴增大方向,纵向往下为y轴增大方向,则S中任意一个像素可以用S(x,y)来表示,其中1≤x≤L2,1≤y≤L1;因此,渐变图像S的四个顶点坐标分别记为C1=S(1,1),C2=S(L2,1),C3=S(1,L1),C4=S(L2,L1);S中其余像素为待生成像素;然后,对渐变图像第一列进行线性插值,利用左上角点S(1,1)与左下角点S(1,L1)计算出第一列的其他所有像素点颜色值S(1,k),即S(1,k)=(r(1,k),g(1,k),b(1,k)),其中r(1,k)=r1+r3-r1L1×k,g(1,k)=g1+g3-g1L1×k,]]>b(1,k)=b1+b3-b1L1×k,1≤k≤L1;]]>同理,对渐变图像最右一列进行线性插值,利用右上角点S(L2,1)与右下角点S(L2,L1)可以计算出最右一列中所有其他像素点的颜色值S(L2,k),即S(L2,k)=(r(L2,k),g(L2,k),b(L2,k)),其中g(L2,k)=g2+g4-g2L1×k,b(L2,k)=b2+b4-b2L1×k,1≤k≤L1;]]>依据渐变图中已经获得的第一列和最右一列的所有像素点的颜色值,进而对渐变图像中第k行按照上述方式进行线性插值;通过第k行的第一列S(1,k)与最右一列S(L2,k),可以计算出第k行的每一个像素点颜色值S(j,k),即S(j,k)=(r(j,k),g(j,k),b(j,k)),其中g(j,k)=g(1,k)+g(L2,k)-g(1,k)L2×j,b(j,k)=b(1,k)+b(L2,k)-b(1,k)L2×j,]]>1≤j≤L2,1≤k≤L1;]]>按此方法可以依次计算出S中的每一个像素,从而完成渐变图像生成过程;将上述方法进一步拓展,若提取到两组颜色特征,假设第一组颜色特征由C1、C2、C3组成,其中C1为最小颜色,C2为平均颜色,C3为最大颜色;第二组颜色特征由C4、C5、C6组成,其中C4为最小颜色,C5为平均颜色,C6为最大颜色;则利用C1、C2、C4、C5这四个颜色可以生成一幅宽为L1,长为L2的图像S1(其中C1在S1中的坐标为(1,1),C2坐标为(L2,1),C4坐标为(1,L1),C5坐标为(L2,L1)),同样,利用C2、C3、C5、C6这四个颜色可以生成一幅宽为L1,长为L2的图像S2(其中C2在S2中的坐标为(1,1),C3坐标为(L2,1),C5坐标为(1,L1),C6坐标为(L2,L1));将S1与S2拼接在一起组成一幅图像即为由两组颜色特征最终生成的中间图像;将上述方法进一步拓展,若提取到三组颜色特征,则将这三组颜色特征进行两两组合,然后按照上述方法生成图像,最终可以生成三幅图像(每一幅图像都是由某两组颜色特征组合起来生成的),将这三幅图像拼接在一起,则最终组成一幅由三组颜色特征生成的中间图像。作为优选,步骤3中所述计算网格块的平均颜色Caver,具体实现过程是假设网格块G的大小为m×n(单位:像素),G中第k个像素值为Ck=(rk,gk,bk),1≤k≤m×n,则能求得网格块G的平均颜色Caver(raver,gaver,baver),其中gaver=Σi=1m×ngim×n,baver=Σi=1m×nbim×n.]]>作为优选,步骤3中所述在中间图像中查找与Caver最接近的颜色,记为Cdes;具体实现过程是首先根据步骤1.1中对颜色图像的颜色分类结果,确定查找的颜色空间:若归类后颜色图像包含两种或者三种颜色,则颜色空间为Lαβ颜色空间;若归类后仅包含一种颜色,则选用HSI颜色空间;若选用Lαβ颜色空间,则利用欧式距离在中间图像中查找与Caver最接近的颜色;若选用HSI颜色空间,则先在中间图像中找出前n个具有最接近的I值的颜色,然后再在这n个颜色中找出前m个具有最接近的S值的颜色,最后再在这m个颜色中找到具有最接近的H的颜色,最终完成颜色查找过程。作为优选,步骤3中所述将网格块中的每一个像素迁移到Cdes上,具体实现过程是假设网格块G的大小为m×n(单位:像素),G中第k个像素值为Ck=(rk,gk,bk),1≤k≤m×n,网格块G的平均颜色为Caver(raver,gaver,baver),在中间图像中找到与Caver最接近的颜色为Cdes(rdes,gdes,bdes),则迁移后G中第k个像素的值Ck=(rk×rdesraver,gk×gdesgaver,bk×bdesbaver).]]>与现有技术相比,本发明具有如下的优点和有益效果:1、设计了一种新的对彩色图像进行颜色迁移的方法,该方法效果较好,处理速度较快;2、设计了构造中间图像代替原始的颜色图像进行颜色迁移的方法,提高了颜色迁移的适用范围;3、本方法尤其适合对彩色图像进行某一种颜色的渲染处理。附图说明图1是本发明实施例利用两组颜色特征生成渐变的中间图像示意图。图2是本发明实施例颜色迁移示意图。图3是本发明实施例对图像进行网格划分示意图。具体实施方式为了便于本领域普通技术人员理解和实施本发明,下面结合附图及实施例对本发明作进一步的详细描述,应当理解,此处所描述的实施示例仅用于说明和解释本发明,并不用于限定本发明。本发明提供的一种彩色图像颜色迁移方法,包括以下步骤:步骤1:构建中间图像;提取参考图像(以下也称为“颜色图像”)的颜色特征,根据这些颜色特征构建一幅中间图像,以此中间图像代替原始的参考图像进行颜色迁移;其具体实现过程包括以下子步骤:步骤1.1:颜色分类;遍历图像,根据像素RGB三通道值的大小关系,将图像的所有像素归为三类:第一类,RGB三通道中R值最小;第二类,RGB三通道中G值最小;第三类,RGB三通道中B值最小;归类后,若某一类中包含的像素数目为0,则认为该类不存在;假设每一类代表一种颜色,则归类后一幅图像最多包含三种颜色、最少包含一种颜色(若某一类不存在,则包含两种颜色,若某两类不存在,则包含一种颜色);步骤1.2:颜色特征提取;若颜色分类后的图像包含两种或者三种颜色,则分别统计每一种颜色的平均颜色、最大颜色、最小颜色,以这三个量作为一组颜色特征,则最终得到两组或者三组颜色特征;其中最大颜色定义为:RGB三通道之和最大;最小颜色定义为:RGB三通道之和最小;若颜色分类后的图像只包含一种颜色,则根据另外两个通道(即不是最小通道的那两个通道)的值的大小关系将该种颜色再细分为两种或者一种颜色;若再细分为两种颜色,则分别计算这两种颜色的平均颜色、最大颜色、最小颜色;若无法继续细分,则计算该种颜色的平均颜色、最大颜色、最小颜色,得到一组颜色特征,另外再统计出该种颜色中具有最高饱和度和最大亮度的颜色值,以此颜色作为平均颜色,与最大颜色、最小颜色组合成另一组颜色特征;因此任何一幅图像都能提取出至少两组、至多三组颜色特征;其中最大颜色由前n个最大颜色计算平均值得到、最小颜色由前n个最小颜色计算平均值得到;步骤1.3:构建中间图像;有了至少两组颜色特征之后,利用这些颜色特征构建一幅二维的渐变图像,具体的构建方法为:首先,本发明中,利用四个颜色C1(r1,g1,b1)、C2(r2,g2,b2)、C3(r3,g3,b3)、C4(r4,g4,b4)构建一幅高为L1(单位:像素)、宽为L2(单位:像素)的渐变图像S的方法为:令S的左上角为坐标原点,横向往右为x轴增大方向,纵向往下为y轴增大方向,则S中任意一个像素可以用S(x,y)来表示,其中1≤x≤L2,1≤y≤L1;因此,渐变图像S的四个顶点坐标分别记为C1=S(1,1),C2=S(L2,1),C3=S(1,L1),C4=S(L2,L1);S中其余像素为待生成像素;然后,对渐变图像第一列进行线性插值,利用左上角点S(1,1)与左下角点S(1,L1)计算出第一列的其他所有像素点颜色值S(1,k),即S(1,k)=(r(1,k),g(1,k),b(1,k)),其中r(1,k)=r1+r3-r1L1×k,g(1,k)=g1+g3-g1L1×k,]]>b(1,k)=b1+b3-b1L1×k,1≤k≤L1;]]>同理,对渐变图像最右一列进行线性插值,利用右上角点S(L2,1)与右下角点S(L2,L1)可以计算出最右一列中所有其他像素点的颜色值S(L2,k),即S(L2,k)=(r(L2,k),g(L2,k),b(L2,k)),其中g(L2,k)=g2+g4-g2L1×k,b(L2,k)=b2+b4-b2L1×k,1≤k≤L1;]]>依据渐变图中已经获得的第一列和最右一列的所有像素点的颜色值,进而对渐变图像中第k行按照上述方式进行线性插值;通过第k行的第一列S(1,k)与最右一列S(L2,k),可以计算出第k行的每一个像素点颜色值S(j,k),即S(j,k)=(r(j,k),g(j,k),b(j,k)),其中g(j,k)=g(1,k)+(L2,k)-g(1,k)L2×j,b(j,k)=b(1,k)+b(L2,k)-b(1,k)L2×j,]]>1≤j≤L2,1≤k≤L1;]]>按此方法可以依次计算出S中的每一个像素,从而完成渐变图像生成过程;将上述方法进一步拓展,若提取到两组颜色特征,假设第一组颜色特征由C1、C2、C3组成,其中C1为最小颜色,C2为平均颜色,C3为最大颜色;第二组颜色特征由C4、C5、C6组成,其中C4为最小颜色,C5为平均颜色,C6为最大颜色;则利用C1、C2、C4、C5这四个颜色可以生成一幅宽为L1,长为L2的图像S1(其中C1在S1中的坐标为(1,1),C2坐标为(L2,1),C4坐标为(1,L1),C5坐标为(L2,L1)),同样,利用C2、C3、C5、C6这四个颜色可以生成一幅宽为L1,长为L2的图像S2(其中C2在S2中的坐标为(1,1),C3坐标为(L2,1),C5坐标为(1,L1),C6坐标为(L2,L1));将S1与S2拼接在一起组成一幅图像即为由两组颜色特征最终生成的中间图像;将上述方法进一步拓展,若提取到三组颜色特征,则将这三组颜色特征进行两两组合,然后按照上述方法生成图像,最终可以生成三幅图像(每一幅图像都是由某两组颜色特征组合起来生成的),将这三幅图像拼接在一起,则最终组成一幅由三组颜色特征生成的中间图像。步骤2:网格划分处理;将待处理图像(以下也称为“形状图像”)以像素为单位划分为若干个网格块,然后依次对每一个网格块进行颜色迁移处理;步骤3:颜色迁移处理;步骤3.1:首先计算网格块的平均颜色Caver,具体实现过程是假设网格块G的大小为m×n(单位:像素),G中第k个像素值为Ck=(rk,gk,bk),1≤k≤m×n,则能求得网格块G的平均颜色Caver(raver,gaver,baver),其中baver=Σi=1m×nbim×n.]]>步骤3.2:然后在中间图像中查找与Caver最接近的颜色,记为Cdes;具体实现过程是首先根据步骤1.1中对颜色图像的颜色分类结果,确定查找的颜色空间:若归类后颜色图像包含两种或者三种颜色,则颜色空间为Lαβ颜色空间;若归类后仅包含一种颜色,则选用HSI颜色空间;若选用Lαβ颜色空间,则利用欧式距离在中间图像中查找与Caver最接近的颜色;若选用HSI颜色空间,则先在中间图像中找出前n个具有最接近的I值的颜色,然后再在这n个颜色中找出前m个具有最接近的S值的颜色,最后再在这m个颜色中找到具有最接近的H的颜色,最终完成颜色查找过程。步骤3.3:依次将该网格块中的每一个像素迁移到Cdes上,从而完成该网格块的颜色迁移处理;依次处理每一个网格块,最终完成整幅图像的颜色迁移过程;其中将网格块中的每一个像素迁移到Cdes上,具体实现过程是假设网格块G的大小为m×n(单位:像素),G中第k个像素值为Ck=(rk,gk,bk),1≤k≤m×n,网格块G的平均颜色为Caver(raver,gaver,baver),在中间图像中找到与Caver最接近的颜色为Cdes(rdes,gdes,bdes),则迁移后G中第k个像素的值Ck=(rk×rdesraver,gk×gdesgωer,bk×bdesbaver).]]>本实施例以两组颜色特征为例,如图1所示,第一组颜色特征由C1(r1,g1,b1)、C2(r2,g2,b2)、C3(r3,g3,b3)组成,其中C1为最小颜色,C2为平均颜色,C3为最大颜色;第二组颜色特征由C4(r4,g4,b4)、C5(r5,g5,b5)、C6(r6,g6,b6)组成,其中C4为最小颜色,C5为平均颜色,C6为最大颜色。纵向渐变长度为L1(单位:像素),横向渐变长度为2×L2(单位:像素)。本发明中,两个颜色之间的渐变方法为:以C2(r2,g2,b2)与C5(r5,g5,b5)之间的渐变为例,由于渐变长度为L1,则C2与C5之间可以生成L1个颜色(图中纵向虚线所在位置),其中第i个颜色Caver_i=(r2+r5-r2L1×i,g2+g5-g2L1×i,b2+b5-b2L1×i),1≤i≤L1.]]>同理,C3与C6在纵向上也可以生成L1个颜色,其中第i个颜色为Cmax_i=(r3+r6-r3L1×i,g3+g6-g3L1×i,b3+b6-b3L1×i),1≤i≤L1.]]>利用Caver_i与Cmax_i,可以在横向上生成一系列渐变颜色(图中横向虚线所示位置,渐变长度为L2)。当i的值从1增加到L1时,可以生成图中右半部分的颜色(图中垂直虚线右侧部分)。同样,利用上述方法可以生成左半部分,最终完成渐变图像的生成。如果从原图像中提取到三组颜色特征,则三组颜色特征按照上述方法两两之间生成图像,共生成三个渐变图像,将这三个图像拼接在一起组成最终的中间图像。假设有两幅图像组合起来进行颜色迁移,如图2中2a所示:左边图像为形状图像,右边图像为颜色图像。首先根据颜色图像构建一幅中间图像,如图2中2b所示,然后将形状图像与中间图像组合起来进行颜色迁移,如图2中2c所示。同时根据对颜色图像的颜色归类结果选择特定的颜色空间,将中间图像的所有颜色转换到特定的颜色空间中。然后对形状图像以像素为单位进行网格化划分,如图3所示:其中3a为图像层面上的划分示意图;3b为像素层面上的划分的示意图,其中圆点代表像素,虚线代表划分方法。接着从上到下、从左到右依次对每一个网格块做相同的处理。以某一个网格块G为例,假设G的大小为3×3(单位:像素),如图3b中左上角矩形框所示,G中第k个颜色Ck=(rk,gk,bk),1≤k≤9。计算出网格块G的平均颜色Caver=(raver,gaver,baver),将Caver转换到与中间图像相同的颜色空间中,然后在中间图像中查找与Caver最接近的颜色,假设为Cdes(rdes,gdes,bdes),则G中第k个像素迁移后颜色值为按上述方法依次处理每一个网格块,最终完成整幅图像的颜色迁移。迁移结果如图2中2d所示。此外,令处理过程中,如果raver为0,则令raver=1,则r取值范围为0-255,迁移过程中将r的取值限定在0.2-3.5之间,方法为:r=r,0.3≤r≤2.5k1×r+b1,r>2.5k2×r+b2,r<0.3]]>其中b1=2.5-2.5×k1;b2=0.2。同理,令对g与b做与r相同的处理。应当理解的是,本说明书未详细阐述的部分均属于现有技术。应当理解的是,上述针对较佳实施例的描述较为详细,并不能因此而认为是对本发明专利保护范围的限制,本领域的普通技术人员在本发明的启示下,在不脱离本发明权利要求所保护的范围情况下,还可以做出替换或变形,均落入本发明的保护范围之内,本发明的请求保护范围应以所附权利要求为准。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1