图像处理方法及装置与流程

文档序号:31837954发布日期:2022-10-18 21:50阅读:91来源:国知局
图像处理方法及装置与流程

1.本公开涉及计算机视觉技术领域,尤其涉及一种图像处理方法及装置。


背景技术:

2.在许多场景下,需要对图像或者视频进行滤镜迁移操作,即根据参考图像/视频的色调风格调整原始图像/视频的色调风格,使得原始图像/视频与参考图像/视频的色调一致。
3.现有的滤镜迁移方法,将原始图像的各通道的直方图与参考图像的各个通道的直方图进行匹配,使得原始图像的各通道的直方图与参考图像接近。
4.然而,这样得到的滤镜迁移的效果不好。


技术实现要素:

5.为了解决上述技术问题,本公开提供了一种图像处理方法及装置。
6.第一方面,本公开提供了一种图像处理方法,包括:
7.将原始图像划分为多个原始区域;多个原始区域至少包括第一区域和第二区域,第一区域中像素点的亮度值大于第二区域中像素点的亮度值;
8.将参考图像划分为多个参考区域;参考区域至少包括第三区域和第四区域,其中,第三区域中像素点的亮度值大于第四区域中像素点的亮度值;
9.根据第一区域中像素点的颜色值和第三区域中像素点的颜色值,得到第一区域的变换矩阵,并根据第二区域中像素点的颜色值和第四区域中像素点的颜色值,得到第二区域的变换矩阵;
10.根据第一区域的变换矩阵和第二区域的变化矩阵,对原始图像进行颜色映射,得到目标图像。
11.可选的,根据第一区域中像素点的颜色值和第三区域中像素点的颜色值,得到第一区域的变换矩阵,并根据第二区域中像素点的颜色值和第四区域中像素点的颜色值,得到第二区域的变换矩阵,包括:
12.根据多个原始区域中像素点的颜色值,计算多个原始区域分别对应的颜色通道维度的协方差矩阵;
13.根据多个参考区域中像素点的颜色值,计算多个参考区域分别对应的颜色通道维度的协方差矩阵;
14.基于第一区域对应的颜色通道维度的协方差矩阵和第三区域对应的颜色通道维度的协方差矩阵,确定第一区域的变换矩阵;
15.基于第二区域对应的颜色通道维度的协方差矩阵和第四区域对应的颜色通道维度的协方差矩阵,确定第二区域的变换矩阵。
16.可选的,根据第一区域的变换矩阵和第二区域的变化矩阵,对原始图像进行颜色映射,得到目标图像,包括:
17.根据第一区域的变换矩阵,对原始图像中像素点的颜色值进行处理,得到第一区域的变换矩阵对应的第一修正图像;
18.根据第二区域的变换矩阵,对原始图像中像素点的颜色值进行处理,得到第二区域的变换矩阵对应的第二修正图像;
19.融合第一修正图像和第二修正图像,得到目标图像。
20.可选的,根据第一区域的变换矩阵和第二区域的变化矩阵,对原始图像进行颜色映射,得到目标图像,包括:
21.根据第一区域的变换矩阵,对第一区域中像素点的颜色值进行处理,得到第一区域对应的第一修正区域;
22.根据第二区域的变换矩阵,对第二区域中像素点的颜色值进行处理,得到第二区域对应的第二修正区域;
23.对第一修正区域和第二修正区域进行拼接,得到目标图像。
24.可选的,将原始图像划分为多个原始区域,包括:
25.将原始图像中像素点按照亮度值从低到高排列,确定至少一个第一分界值;
26.基于至少一个第一分界值将原始图像中像素点分为多个原始区域;
27.将参考图像划分为多个参考区域,包括:
28.将参考图像中像素点按照亮度值从低到高排列,确定至少一个第二分界值;
29.基于至少一个第二分界值将参考图像中像素点分为多个参考区域。
30.可选的,多个原始区域还包括第五区域,第五区域中像素点的亮度值大于第一区域中像素点的亮度值,或者,第五区域中像素点的亮度值小于第二区域中像素点的亮度值;
31.参考区域还包括第六区域,其中,第六区域中像素点的亮度值大于第三区域中像素点的亮度值,或者,第六区域中像素点的亮度值小于第四区域中像素点的亮度值;
32.方法还包括:
33.根据第五区域中像素点的颜色值和第六区域中像素点的颜色值,得到第五区域的变换矩阵;
34.根据第一区域的变换矩阵和第二区域的变化矩阵,对原始图像进行颜色映射,得到目标图像,包括:
35.根据第一区域的变换矩阵、第二区域的变化矩阵和第五区域的变换矩阵,对原始图像进行颜色映射,得到目标图像。
36.第二方面,本公开提供了一种图像处理装置,包括:
37.区域划分模块,用于将原始图像划分为多个原始区域;多个原始区域至少包括第一区域和第二区域,第一区域中像素点的亮度值大于第二区域中像素点的亮度值;将参考图像划分为多个参考区域;参考区域至少包括第三区域和第四区域,其中,第三区域中像素点的亮度值大于第四区域中像素点的亮度值;
38.变换矩阵生成模块,用于根据第一区域中像素点的颜色值和第三区域中像素点的颜色值,得到第一区域的变换矩阵,并根据第二区域中像素点的颜色值和第四区域中像素点的颜色值,得到第二区域的变换矩阵;
39.处理模块,用于根据第一区域的变换矩阵和第二区域的变化矩阵,对原始图像进行颜色映射,得到目标图像。
40.可选的,变换矩阵生成模块具体用于:
41.根据多个原始区域中像素点的颜色值,计算多个原始区域分别对应的颜色通道维度的协方差矩阵;根据多个参考区域中像素点的颜色值,计算多个参考区域分别对应的颜色通道维度的协方差矩阵;基于第一区域对应的颜色通道维度的协方差矩阵和第三区域对应的颜色通道维度的协方差矩阵,确定第一区域的变换矩阵;基于第二区域对应的颜色通道维度的协方差矩阵和第四区域对应的颜色通道维度的协方差矩阵,确定第二区域的变换矩阵。
42.可选的,处理模块具体用于:
43.根据第一区域的变换矩阵,对原始图像中像素点的颜色值进行处理,得到第一区域的变换矩阵对应的第一修正图像;根据第二区域的变换矩阵,对原始图像中像素点的颜色值进行处理,得到第二区域的变换矩阵对应的第二修正图像;融合第一修正图像和第二修正图像,得到目标图像。
44.可选的,处理模块具体用于:
45.根据第一区域的变换矩阵,对第一区域中像素点的颜色值进行处理,得到第一区域对应的第一修正区域;根据第二区域的变换矩阵,对第二区域中像素点的颜色值进行处理,得到第二区域对应的第二修正区域;对第一修正区域和第二修正区域进行拼接,得到目标图像。
46.可选的,区域划分模块具体用于:
47.将原始图像中像素点按照亮度值从低到高排列,确定至少一个第一分界值;基于至少一个第一分界值将原始图像中像素点分为多个原始区域;将参考图像中像素点按照亮度值从低到高排列,确定至少一个第二分界值;基于至少一个第二分界值将参考图像中像素点分为多个参考区域。
48.可选的,多个原始区域还包括第五区域,第五区域中像素点的亮度值大于第一区域中像素点的亮度值,或者,第五区域中像素点的亮度值小于第二区域中像素点的亮度值;
49.参考区域还包括第六区域,其中,第六区域中像素点的亮度值大于第三区域中像素点的亮度值,或者,第六区域中像素点的亮度值小于第四区域中像素点的亮度值;
50.变换矩阵生成模块还用于:
51.根据第五区域中像素点的颜色值和第六区域中像素点的颜色值,得到第五区域的变换矩阵;
52.处理模块具体用于:
53.根据第一区域的变换矩阵、第二区域的变化矩阵和第五区域的变换矩阵,对原始图像进行颜色映射,得到目标图像。
54.第三方面,本公开提供一种电子设备,包括:一个或多个处理器;存储器;以及一个或多个计算机程序;其中,一个或多个计算机程序被存储在存储器中;一个或多个处理器在执行一个或多个计算机程序时,使得电子设备实现如上述第一方面的图像处理方法。
55.第四方面,本公开提供一种计算机存储介质,包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行如上述第一方面的图像处理方法。
56.第五方面,本公开提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行如上述第一方面的图像处理方法。
57.本公开实施例提供的技术方案与现有技术相比具有如下优点:
58.通过将原始图像划分为多个原始区域,多个原始区域至少包括第一区域和第二区域,第一区域中像素点的亮度值大于第二区域中像素点的亮度值,将参考图像划分为至少两个参考区域,由此,根据原始图像和参考图像的亮度值,分别将原始图像和参考图像划分为一一对应的区域。根据第一区域中像素点的颜色值和第三区域中像素点的颜色值,得到第一区域的变换矩阵,并根据第二区域中像素点的颜色值和第四区域中像素点的颜色值,得到第二区域的变换矩阵,也就是,按照不同的区域进行单独处理,根据颜色值,得到每个区域对应的变换矩阵,然后根据第一区域的变换矩阵和第二区域的变化矩阵,对原始图像进行颜色映射,得到目标图像。根据亮度值将图像中像素点进行划分区域,对每个区域内的颜色值进行单独处理,得到变换矩阵,根据得到的至少两个变换矩阵进行滤镜迁移处理,从而得到的目标图像更自然,目标图像在色调上与参考图像更加接近,从而使得滤镜迁移效果更好。
附图说明
59.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
60.为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
61.图1a为一种原始图像示意图;
62.图1b为一种参考图像示意图;
63.图1c为一种滤镜迁移结果示意图;
64.图2为本公开实施例提供的一种图像处理方法的流程示意图;
65.图3为本公开实施例提供的另一种图像处理方法的流程示意图;
66.图4为本公开实施例提供的另一种图像处理方法的流程示意图;
67.图5为本公开实施例提供的另一种图像处理方法的流程示意图;
68.图6为本公开实施例提供的另一种图像处理方法的流程示意图;
69.图7为本公开实施例提供的一种图像处理装置的结构示意图。
具体实施方式
70.为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
71.在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
72.在许多场景下,需要通过电子设备对图像或者视频进行滤镜迁移操作。滤镜迁移是指根据参考图像/视频的色调风格调整原始图像/视频的色调风格,使得原始图像/视频与参考图像/视频的色调一致。
yellow black,简称cmyk)等颜色空间,本公开对此不作限定。可以先将原始图像转换为包含亮度值通道和颜色值通道的颜色空间。例如,需要在yuv颜色空间进行处理,可以将原始图像由rgb颜色空间转换为yuv颜色空间,然后进行后续处理。
87.在获取到的参考图像为没有亮度值通道的颜色空间的情况下,例如,参考图像的颜色空间可以为rgb或cmyk等颜色空间,本公开对此不作限定。可以先将参考图像转换为包含亮度值通道和颜色值通道的颜色空间。例如,需要在yuv颜色空间进行处理,将参考图像由rgb颜色空间转换为yuv颜色空间,然后进行后续处理。
88.可以根据原始图像中像素点的亮度值,对原始图像中像素点进行区域划分,得到多个原始区域。例如,yuv颜色空间中,根据原始图像的y通道的亮度值,对原始图像中像素点进行区域划分,将所有像素点划分至多个原始区域。
89.相应的,可以根据参考图像中像素点的亮度值,对参考图像中像素点进行区域划分,得到多个参考区域。例如,根据参考图像的y通道的亮度值,对原始图像中像素点进行区域划分,将所有像素点划分至多个参考区域。
90.得到的原始区域的数量与参考区域的数量相同,且原始区域与参考区域一一对应,后续针对划分的原始区域与对应的参考区域分别进行处理。也就是对于原始图像,根据像素点的亮度值和预设规则,得到多个原始区域,对于参考图像,根据像素点的亮度值和预设规则,得到多个参考区域,上述预设规则相同,则得到的原始区域与参考区域一一对应。例如,预设规则可以为将图像中像素点按照亮度值由高到底排列,或者由低到高排列,然后按照排列的顺序划分区域,因此,得到的原始区域与参考区域一一对应,即第一区域与第三区域对应,第二区域与第四区域对应。
91.假设,预设规则为将一个图像按照亮度值由高到低排列划分为两个区域,前二分之一的亮度值对应的像素点划分至第一个区域,后二分之一的亮度值对应的像素点划分至第二个区域。则划分的区域越靠前,区域内的像素点的亮度值相对越大。下面按照预设规则对原始图像和参考图像进行处理。将原始图像中像素点按照亮度值由高到底排列,前二分之一的亮度值对应的像素点划分至第一区域,后二分之一的亮度值对应的像素点划分至第二区域。相应的,将参考图像中像素点按照亮度值由高到底排列,前二分之一的亮度值对应的像素点划分至第三区域,后二分之一的亮度值对应的像素点划分至第四区域。则第一区域1和第三区域对应,第二区域2和第四区域对应。
92.可以理解,对于步骤s201和s202的执行没有先后顺序,可以先执行s201,再执行s202,也可以先执行s202,再执行s201,还可以同时执行s201和s202,本公开对此不做限定。
93.s203、根据第一区域中像素点的颜色值和第三区域中像素点的颜色值,得到第一区域的变换矩阵,并根据第二区域中像素点的颜色值和第四区域中像素点的颜色值,得到第二区域的变换矩阵。
94.滤镜迁移是一个颜色映射的过程,即将原始图像的颜色经过映射以后,得到映射后的目标图像的颜色。可以通过颜色的映射函数和原始图像的颜色得到目标图像的颜色,即v=t(u),其中,v为目标图像的颜色,u为原始图像的颜色,t为颜色的映射函数。参考图像和所要得到的目标图像的颜色相似,因此,根据原始图像的颜色和参考图像的颜色可以确定映射函数,便可得到目标图像,实现滤镜迁移。则为了得到目标图像需要先确定映射函数。
95.对于每个原始区域和原始区域对应的参考区域,根据原始区域中像素点的颜色值和参考区域中像素点的颜色值,得到原始区域的变换矩阵。其中,原始区域中像素点的颜色值为原始区域中像素点在颜色通道的值,参考区域中像素点的颜色值为参考区域中像素点在颜色通道的值。
96.由于第一区域与第三区域对应,第二区域与第四区域对应,因此,根据第一区域中像素点的颜色值和第三区域中像素点的颜色值,得到第一区域的变换矩阵,并根据第二区域中像素点的颜色值和第四区域中像素点的颜色值,得到第二区域的变换矩阵。其中,第一区域中像素点的颜色值为第一区域中像素点在颜色通道的值。第二区域中像素点的颜色值为第二区域中像素点在颜色通道的值。第三区域中像素点的颜色值为第三区域中像素点在颜色通道的值。第四区域中像素点的颜色值为第四区域中像素点在颜色通道的值。
97.以原始图像和参考图像为yuv颜色空间为例,则某一区域中像素点的颜色值为该区域中所有像素点的u通道的值和v通道的值。例如,第一区域中像素点的颜色值为第一区域中所有像素点的u通道的值和v通道的值。
98.在原始图像和参考图像所属的颜色空间中,颜色通道为两个或两个以上的情况下,一种可能的实现方式中,得到的每个原始区域的变换矩阵可以为一个。例如,可以得到原始区域像素点对应的至少两个颜色通道的协方差变换矩阵。
99.另一种可能的实现方式中,也可以针对每个原始区域中的每个颜色通道,得到每个颜色通道分别对应的变换矩阵,则原始区域的变换矩阵的数量与颜色通道的数量相同。例如,每个颜色通道得到一个标准差。
100.s204、根据第一区域的变换矩阵和第二区域的变化矩阵,对原始图像进行颜色映射,得到目标图像。
101.根据各原始区域的变换矩阵分别对原始图像的颜色通道进行颜色映射,得到各颜色映射结果,将各颜色映射结果和原始图像的亮度值进行融合,得到目标图像。即根据第一区域的变换矩阵和第二区域的变化矩阵,分别对原始图像进行颜色映射,得到两个颜色映射结果,将两个颜色映射结果和原始图像的亮度值进行融合,得到目标图像
102.进一步地,得到各颜色变换结果的一种可能的实现方式中,可以根据各原始区域的变换矩阵,各原始区域的颜色均值和各参考区域的颜色均值,得到各颜色变换结果。其中,原始区域的颜色均值为原始区域的所有像素点的颜色值的平均值。参考区域的颜色均值为参考区域的所有像素点的颜色值的平均值。颜色均值为对于每个颜色通道单独计算的平均值。以yuv色彩空间为例,颜色均值为u通道的值的平均值和v通道的值的平均值。
103.进一步地,将各颜色变换结果和原始图像的亮度值进行融合,得到目标图像的一种可能的实现方式中,可以根据得到的所有的颜色变换结果,得到目标图像的颜色值,将每个像素点的颜色值和对应的原始图像的亮度值相融合,得到目标图像。
104.可选的,若在进行上述图像处理的步骤前,若原始图像为没有亮度值通道的颜色空间,则在对原始图像进行处理之前,需要将原始图像转换到包含亮度值通道和颜色通道的颜色空间,再对原始图像进行处理,则得到的目标图像所属的颜色空间与原始图像所属的颜色空间不同,需要将目标图像所属的颜色空间转换为进行上述图像处理步骤前的原始图像的颜色空间。
105.例如,原始图像为rgb颜色空间,在进行上述图像处理的步骤前,将原始图像从rgb
颜色空间转换为yuv颜色空间,从而通过上述图像处理步骤,得到的目标图像为yuv颜色空间,将目标图像由yuv颜色空间转换为rgb颜色空间,从而得到最终需要的目标图像。
106.本实施例,通过将原始图像划分为多个原始区域,多个原始区域至少包括第一区域和第二区域,第一区域中像素点的亮度值大于第二区域中像素点的亮度值,将参考图像划分为至少两个参考区域,由此,根据原始图像和参考图像的亮度值,分别将原始图像和参考图像划分为一一对应的区域。根据第一区域中像素点的颜色值和第三区域中像素点的颜色值,得到第一区域的变换矩阵,并根据第二区域中像素点的颜色值和第四区域中像素点的颜色值,得到第二区域的变换矩阵,也就是,按照不同的区域进行单独处理,根据颜色值,得到每个区域对应的变换矩阵,然后根据第一区域的变换矩阵和第二区域的变化矩阵,对原始图像进行颜色映射,得到目标图像。根据亮度值将图像中像素点进行划分区域,对每个区域内的颜色值进行单独处理,得到变换矩阵,根据得到的至少两个变换矩阵进行滤镜迁移处理,从而得到的目标图像更自然,目标图像在色调上与参考图像更加接近,从而使得滤镜迁移效果更好。
107.进一步地,在图2所示实施例的基础上,s201和s202的一种可能的实现方式可以为将像素点按照亮度值从低到高排列,确定区域划分的分界值,再根据分界值划分区域,请参见图3,图3为本公开实施例提供的另一种图像处理方法的流程示意图,图3是在图2所示实施例的基础上,s2011和s2012为s201的一种具体的实现方式,相应的,s2021和s2022为s202的一种具体的实现方式:
108.s2011、将原始图像中像素点按照亮度值从低到高排列,确定至少一个第一分界值。
109.s2012、基于至少一个第一分界值将原始图像中像素点分为多个原始区域。
110.每个原始图像中像素点对应一个亮度值,可以获取这些亮度值,按照从低到高的顺序排列成为亮度值序列,按照预设取值规则,确定至少一个第一分界值。
111.其中,预设取值规则为每隔预设数量的亮度值获取一个第一分界值。示例性的,预设取值规则可以为每隔相同数量的亮度值获取一个第一分界值,第一分界值将亮度值序列均分,若像素点总数无法实现完全的均分,则可以将第一分界值对应的像素点划分到其相邻的两个原始区域中,或者划分到相邻的两个原始区域中的一个原始区域中,对此本公开对此不做限定。
112.例如,获取到的原始图像中像素点的亮度值分别为20、30、50、200、50、150、150、210和160,则首先按照从低到高进行排列,得到亮度值序列为:20、30、50、50、150、150、160、200、210,假设为了将像素点按照亮度值均分为两个原始区域,则第一分界值可以取150,由于像素点总数为9,分成2个原始区域无法实现完全的均分,因此,按照第一分界值划分的原始区域可以为第二区域中包含的像素点为20,30,50,50,第一区域中包含的像素点为150,150,160,200,210。还可以为第二区域中包含的像素点为20,30,50,50,150,第一区域中包含的像素点为150,160,200,210,其中,亮度值为150的两个像素点分别划分到了第一区域和第二区域,至于哪一个划分到第一区域不公开不做限定。
113.s2021、将参考图像中像素点按照亮度值从低到高排列,确定至少一个第二分界值。
114.s2022、基于至少一个第二分界值将参考图像中像素点均分为多个参考区域。
115.步骤s2021-s2022与上述步骤s2011-s2012类似,此处不再赘述。
116.需要说明的是,第一分界值与第二分界值的数量相等。得到第一分界值和第二分界值的预设取值规则相同。
117.本实施例,在对原始图像和参考图像进行区域划分时,分别根据通过各自像素点的亮度值从低到高排列,确定数量相同的分界值,再根据分界值进行划分区域。由于第一分界值与第二分界值的数量相等,因此,原始区域和参考区域的数量相等,并且按照亮度值从低到高排列得到的分界值,进行区域划分,从而使得原始图像的原始区域与参考图像的参考区域一一对应。便于进行后续处理,使得得到目标图像更加自然,且在色调上与参考图像更加接近,从而使得滤镜迁移效果更好。
118.在图3实施例的基础上,进一步地,本实施例以第一分界值和第二分界值的数量均为两个,也即原始图像和参考图像均分为三个区域为例进行进一步的说明。
119.步骤s2011的一种具体的实现方式为:将原始图像中像素点按照亮度值从低到高排列,确定两个第一分界值。
120.相应的,s2012的一种具体的实现方式为:基于两个第一分界值将像素点分为三个原始区域。
121.也就是原始区域除了包括第一区域和第二区域以外,还包括第五区域,其中,第五区域中像素点的亮度值大于第一区域中像素点的亮度值,或者,第五区域中像素点的亮度值小于第二区域中像素点的亮度值。
122.以yuv颜色空间为例,y通道为亮度值通道,可以统计原始图像在y通道上的像素点的亮度值的累计分布,从而确定出两个第一分界值,可以得到三个原始区域。
123.例如,像素点的亮度值的累计分布中前1/3所对应的亮度值作为暗部和中间调的第一分界点,前2/3所对应的亮度值作为中间调和高亮的第一分界点。根据上述两个第一分界点,将原始图像中的像素点分为了三个原始区域。三个原始区域中的第一个原始区域中包含的像素点的亮度相对最低,可以叫做原始暗部区域;第二个原始区域中包含的像素点的亮度比第一个原始区域的高,可以叫做原始中间调区域;第三个原始区域中包含的像素点的亮度相对最高,可以叫做原始高亮区域。
124.s2021的一种具体的实现方式可以为:将参考图像中像素点按照亮度值从低到高排列,确定两个第二分界值。
125.相应的,s2022的一种具体的实现方式可以为:基于两个第二分界值将像素点均分为三个参考区域。
126.也就是参考区域除了包括第三区域和第四区域以外,还包括第六区域,其中,第六区域中像素点的亮度值大于第三区域中像素点的亮度值,或者,第六区域中像素点的亮度值小于第四区域中像素点的亮度值。
127.需要说明的是,第六区域与第五区域对应。若第五区域中像素点的亮度值大于第一区域中像素点的亮度值,则第六区域中像素点的亮度值大于第三区域中像素点的亮度值。若第五区域中像素点的亮度值小于第二区域中像素点的亮度值,则第六区域中像素点的亮度值小于第四区域中像素点的亮度值。
128.以yuv颜色空间为例,可以统计参考图像在y通道上的像素点的亮度值的累计分布,从而确定出两个第二分界值,基于两个第二分界值,可以得到三个参考区域。
129.例如,像素点的亮度值的累计分布中前1/3所对应的亮度值作为暗部和中间调的第二分界点,前2/3所对应的亮度值作为中间调和高亮的第二分界点。根据上述两个第二分界点,将像素点分为了三个参考区域。三个参考区域中的第一个参考区域中包含的像素点的亮度相对最低,可以叫做参考暗部区域;第二个参考区域中包含的像素点的亮度比第一个参考区域的高,可以叫做参考中间调区域;第三个参考区域中包含的像素点的亮度相对最高,可以叫做参考高亮区域。
130.则原始暗部区域与参考暗部区域对应,原始中间调区域与参考中间调区域对应,原始高亮区域与参考高亮区域对应。
131.从而本实施例的方法在上述实施例方法的基础上,还包括如下步骤:
132.根据第五区域中像素点的颜色值和第六区域中像素点的颜色值,得到第五区域的变换矩阵。
133.由于第五区域和第六区域对应,因此,使用与得到第一区域的变换矩阵类似的方法,得到第五区域的变换矩阵。
134.相应的,s204的一种具体的事项方式为:
135.根据第一区域的变换矩阵、第二区域的变化矩阵和第五区域的变换矩阵,对原始图像进行颜色映射,得到目标图像。
136.从而根据第一区域、第二区域和第五区域分别对应的变换矩阵,对原始图像进行颜色映射,得到目标图像。
137.本实施例,通过将原始图像分为三个区域,参考图像分为三个区域,从而在分为三个区域的情况下,分别得到每个区域对应的变换矩阵,从而得到目标图像。若区域划分越多,则得到目标图像的滤镜迁移效果越好,但相应的计算量也会增多,因此,划分为三个区域,即可以使得计算量适中,又可以实现较好的滤镜迁移效果。
138.在上述实施例的基础上,s203的一种实现方式中,可以通过计算协方差矩阵,进而确定变换矩阵,请参见图4,图4为本公开实施例提供的另一种图像处理方法的流程示意图,图4是在图2或图3所示实施例的基础上,s2031-s2034为s203的一种具体的实现方式:
139.s2031、根据多个原始区域中像素点的颜色值,计算多个原始区域分别对应的颜色通道维度的协方差矩阵。
140.s2032、根据多个参考区域中像素点的颜色值,计算多个参考区域分别对应的颜色通道维度的协方差矩阵。
141.在原始图像和参考图像所属的颜色空间中,颜色通道为两个或两个以上,计算多个原始区域分别对应的颜色通道维度的协方差矩阵,其中,颜色通道维度的协方差矩阵为以颜色空间中包含的颜色通道为维度,计算得到的协方差变换矩阵。
142.示例性的,以yuv颜色空间为例,第一区域中的每个像素点的u通道的值和v通道的值作为一个二维变量,第一区域中所有像素点的颜色值可以看做一系列的二维变量,可以计算第一区域对应的协方差矩阵,可以理解,其二维变量的两个维度分别为u通道和v通道,该协方差矩阵为一个2
×
2的矩阵。则对于每个原始区域可以得到一个2
×
2的协方差矩阵。相应的,第三区域中像素点的u通道的值和v通道的值作为一系列的二维变量,计算第三区域对应的协方差矩阵,可以理解,其二维变量的两个维度分别为u通道和v通道,该协方差矩阵为一个2
×
2的矩阵。则对于每个参考区域可以得到一个2
×
2的协方差矩阵。
143.需要说明的是,对于步骤s2031和s2032的执行没有先后顺序,可以先执行s2031,再执行s2032,也可以先执行s2032,再执行s2031,还可以同时执行s2031和s2032,本公开对此不做限定。
144.s2033、基于第一区域对应的颜色通道维度的协方差矩阵和第三区域对应的颜色通道维度的协方差矩阵,确定第一区域的变换矩阵。
145.s2034、基于第二区域对应的颜色通道维度的协方差矩阵和第四区域对应的颜色通道维度的协方差矩阵,确定第二区域的变换矩阵。
146.由图2所示实施例可知,通过颜色的映射函数t和原始图像的颜色u,可以得到目标图像的颜色v,即v=t(u),在此需要确定映射函数t,则便可以得到目标图像的颜色v。由于一个线性函数足以拟合颜色映射情况,而且对于线性函数的求解也会相对简单,计算复杂度较低,映射函数t可以为一个线性函数,即目标图像的颜色v可以表示为v=a*u+b,其中,a和b为参数,原始图像的颜色u可以通过线性变换t转换为目标图像的颜色v。根据线性变换的数学理论,如果两个变量之间存在一个线性变换,则线性变换有适用于两个变量的协方差矩阵,由于目标图像的颜色风格与参考图像的颜色风格类似,则原始图像的协方差矩阵经过线性变换t后等于参考图像的协方差矩阵,通过原始图像的协方差矩阵和参考图像的协方差矩阵可以得到映射函数。
147.因此,对于上述获得的每个原始区域和其对应的参考区域,可以得到一个变换矩阵。也就是针对每个原始区域的颜色通道维度的协方差矩阵以及原始区域对应的参考区域的颜色通道维度的协方差矩阵,可以得到原始区域的变换矩阵。可以理解,由于第一区域与第三区域对应,第二区域与第四区域对应,则基于第一区域对应的颜色通道维度的协方差矩阵和第三区域对应的颜色通道维度的协方差矩阵,确定第一区域的变换矩阵。基于第二区域对应的颜色通道维度的协方差矩阵和第四区域对应的颜色通道维度的协方差矩阵,确定第二区域的变换矩阵。
148.以yuv颜色空间为例,对于原始图像和参考图像的对应区域的变换矩阵,为颜色通道维度(也就是u通道和v通道维度)的变换矩阵,针对每个原始区域及其对应的参考区域,分别计算他们之间u通道和v通道的变换矩阵,即得到颜色的映射函数。
149.示例性的,可以使用蒙格
·
康托罗维奇(monge-kantorovitch)作为求解的方法,原始区域的协方差矩阵为∑_u,与原始区域对应的参考区域的协方差矩阵为∑_v,变换矩阵t可以通过如下公式(1)得到:
[0150][0151]
其中,u为原始区域的协方差矩阵,v为参考区域的协方差矩阵。
[0152]
本实施例,通过根据多个原始区域中像素点的颜色值,计算多个原始区域分别对应的颜色通道维度的协方差矩阵,根据多个参考区域中像素点的颜色值,计算多个参考区域分别对应的颜色通道维度的协方差矩阵,基于第一区域对应的颜色通道维度的协方差矩阵和第三区域对应的颜色通道维度的协方差矩阵,确定第一区域的变换矩阵,基于第二区域对应的颜色通道维度的协方差矩阵和第四区域对应的颜色通道维度的协方差矩阵,确定第二区域的变换矩阵,即针对每个原始区域与其对应的参考区域分别对应的协方差矩阵,得到变换矩阵,由于协方差矩阵能够体现颜色通道间的关联性,因此,使得根据协方差矩阵
最终得到的目标图像的各个颜色通道间的过渡更加自然,目标图像的色调与参考图像接近,从而实现滤镜迁移。
[0153]
在上述实施例的基础上,进一步地,步骤s204的一种可能的实现方式中可以针对每个原始区域单独进行处理,根据该原始区域的变换矩阵,对原始区域中像素点进行处理,得到原始区域对应的修正区域,再将各原始区域对应的修正区域进行拼接,从而得到目标图像,请参见图5,图5为本公开实施例提供的另一种图像处理方法的流程示意图,s2041-s2043为s204的一种具体的实现方式,下面进行具体的说明。
[0154]
s2041、根据第一区域的变换矩阵,对原始区域中像素点的颜色值进行处理,得到第一区域对应的第一修正区域。
[0155]
s2042、根据第二区域的变换矩阵,对第二区域中像素点的颜色值进行处理,得到第二区域对应的第二修正区域。
[0156]
对于每个原始区域进行单独处理,根据原始区域对应的变换矩阵,对该原始区域中像素点的颜色值进行处理,得到该原始区域对应的修正区域,从而得到了各原始区域对应的修正区域。
[0157]
进一步地,对于每个原始区域,根据原始区域的颜色均值,与该原始区域对应的参考区域的颜色均值,对原始区域中像素点的颜色值进行处理,得到该原始区域对应的修正区域。其中,原始区域对应的修正区域为原始区域中每个像素点对应的目标颜色值。以yuv颜色空间为例,原始区域的修正区域为原始区域中每个像素点对应的u通道的目标值和v通道的目标值。
[0158]
一种可能的实现方式中,针对每个原始区域,可以通过如下步骤1-3得到原始区域对应的修正区域:
[0159]
步骤1、将原始区域中的各像素点的颜色值减去原始区域的颜色均值,得到去零结果。
[0160]
步骤2、基于原始区域的变换矩阵对去零结果进行处理,得到变换结果。
[0161]
步骤3、针对变换结果加上参考区域的颜色均值,得到原始区域对应的修正区域。
[0162]
另一种可能的实现方式中,上述步骤1-3可以看做是对颜色维度的向量按顺序进行平移、旋转缩放和平移的操作,因此,可以根据原始区域的变换矩阵,原始区域的颜色均值和参考区域的颜色均值,得到总变换矩阵。基于总变换矩阵,对原始区域中像素点的颜色值进行处理,得到原始区域对应的修正区域。
[0163]
s2043、对第一修正区域和第二修正区域进行拼接,得到目标图像。
[0164]
对所有的原始区域对应的修正区域进行拼接,得到目标图像的颜色结果。将目标图像的颜色结果和原始图像的亮度值融合,得到目标图像。
[0165]
将所有的原始区域对应的修正区域,按照其包含的像素点在原始图像的位置进行拼接,得到目标图像的颜色结果。其中,目标图像的颜色结果为目标图像的每个像素点对应的目标颜色值,以yuv颜色空间为例,目标图像的颜色结果为目标图像中每个像素点对应的u通道的目标值和v通道的目标值。
[0166]
由于滤镜迁移为对颜色进行转换,因此,在之前的步骤中并未对原始图像的像素点的亮度值进行改变,从而,得到目标图像的颜色结果之后,将目标图像的颜色结果和原始图像的像素点的亮度值融合,得到完整的目标图像。
[0167]
本实施例,通过对每个原始区域中像素点的颜色值进行单独处理,得到原始区域的修正区域,再将各原始区域的修正区域进行拼接,从而得到目标图像,每个原始区域的变换矩阵对该原始区域进行处理,从而使得每个原始区域得到的修正区域更加准确,进而使得目标图像更接近参考图像,滤镜迁移效果更好。
[0168]
在上述实施例的基础上,进一步地,步骤s204的另一种可能的实现方式中,可以根据原始区域的变换矩阵、颜色均值,与该原始区域对应的参考区域的颜色均值,对原始图像的所有像素点进行处理,得到变换矩阵对应的颜色变换结果,计算所有的颜色变换结果的均值,从而得到目标图像,请参见图6,图6为本公开实施例提供的另一种图像处理方法的流程示意图,s204a-s204c为s204的一种具体的实现方式:
[0169]
s204a、根据第一区域的变换矩阵,对原始图像中像素点的颜色值进行处理,得到第一区域的变换矩阵对应的第一修正图像。
[0170]
s204b、根据第二区域的变换矩阵,对原始图像中像素点的颜色值进行处理,得到第二区域的变换矩阵对应的第二修正图像。
[0171]
对于每个原始区域的变换矩阵,可以根据原始区域的变换矩阵,对原始图像中的各像素点的颜色值进行处理,得到变换矩阵对应的修正图像。由此,得到了各变换矩阵对应的修正图像。
[0172]
进一步地,对于每个原始区域,根据原始区域的的颜色均值,与该原始区域对应的参考区域的颜色均值,对原始图像中的各像素点的颜色值进行处理。由此可以得到与原始区域数量相等的修正图像。其中,变换矩阵对应的修正图像为原始图像中每个像素点对应的匹配颜色值。原始图像中的每个像素点可以得到至少两个匹配颜色值,匹配颜色值的数量与原始区域的数量相等。以yuv颜色空间为例,原始区域的变换矩阵对应的修正图像为原始图像中每个像素点对应的u通道的匹配颜色值和v通道的匹配颜色值。
[0173]
一种可能的实现方式中,针对每个原始区域的变换矩阵,可以通过如下步骤a-c得到变换矩阵对应的修正图像:
[0174]
步骤a、将原始图像的像素点的颜色值减去原始区域的颜色均值,得到去零结果。
[0175]
步骤b、基于原始区域的变换矩阵对去零结果进行处理,得到变换结果。
[0176]
步骤c、变换结果加上参考区域的颜色均值,得到变换矩阵对应的修正图像。
[0177]
另一种可能的实现方式中,上述步骤a-c可以看做是对颜色维度的向量按顺序进行平移、旋转缩放和平移的操作,因此,可以根据各原始区域的变换矩阵,各原始区域的颜色均值和各与原始区域对应的参考区域的颜色均值,分别得到各变换矩阵对应的总变换矩阵。基于各变换矩阵对应的总变换矩阵,对原始图像进行处理,得到变换矩阵对应的修正图像。
[0178]
s204c、融合第一修正图像和第二修正图像,得到目标图像。
[0179]
将原始图像中的每个像素点在各修正图像中的颜色值进行融合处理,得到每个像素点的目标值,即为目标图像的值。
[0180]
进一步地,可以计算所有的原始区域的变换矩阵对应的修正图像的均值,得到目标图像。示例性的,可以分别计算每个像素点在所有的修正图像中的颜色值的均值,得到目标图像的颜色结果。该均值即为目标图像中该像素点的目标颜色值。由此可以得到目标图像的所有像素点分别对应的目标颜色值,即得到了目标图像的颜色结果。
[0181]
由于滤镜迁移为对颜色进行转换,因此,在之前的步骤中并未对原始图像的像素点的亮度值进行改变,从而,将目标图像的颜色结果和原始图像的像素点的亮度值融合,得到目标图像。
[0182]
本实施例,通过根据第一区域的变换矩阵,对原始图像中像素点的颜色值进行处理,得到第一区域的变换矩阵对应的第一修正图像,根据第二区域的变换矩阵,对原始图像中像素点的颜色值进行处理,得到第二区域的变换矩阵对应的第二修正图像,也即根据各原始区域的变换矩阵,分别对原始图像的所有像素点进行处理,得到多个原始图像的修正图像,再融合所有的修正图像,得到目标图像,使得得到的目标图像不同亮度的像素点之间的过度更加自然,从而使得目标图像更加自然。
[0183]
在上述实施例的基础上,进一步地,若需要根据参考视频或者参考图像的色调风格对原始视频进行滤镜迁移操作,则将原始视频中包含的每一帧图像作为一个原始图像,与参考图像进行上述图像处理方法,得到目标图像,按照原始图像在视频中的位置,将目标图像组成目标视频的画面。
[0184]
可选的,如果原始视频为同一个场景,即原始视频的每一帧原始图像之间的场景不变,原始图像的第一帧原始图像通过上述实施例的方法可以得到目标图像,从原始图像的第二帧原始图像开始,无需进行s201-s203步骤,即无需计算该帧原始图像的每个原始区域分别对应的变换矩阵,在s204步骤中直接根据原始视频的第一帧图像和参考图像得到的每个原始区域的变换矩阵。
[0185]
对视频进行滤镜迁移时,在电子设备中使用gpu进行处理,对于720p的视频能实现每帧耗时2ms以内,从而大大提高了视频的滤镜迁移效率。
[0186]
图7为本公开实施例提供的一种图像处理装置的结构示意图,如图7所示,本实施例提供的装置包括:
[0187]
区域划分模块701,用于将原始图像划分为多个原始区域;多个原始区域至少包括第一区域和第二区域,第一区域中像素点的亮度值大于第二区域中像素点的亮度值;将参考图像划分为多个参考区域;参考区域至少包括第三区域和第四区域,其中,第三区域中像素点的亮度值大于第四区域中像素点的亮度值;
[0188]
变换矩阵生成模块702,用于根据第一区域中像素点的颜色值和第三区域中像素点的颜色值,得到第一区域的变换矩阵,并根据第二区域中像素点的颜色值和第四区域中像素点的颜色值,得到第二区域的变换矩阵;
[0189]
处理模块703,用于根据第一区域的变换矩阵和第二区域的变化矩阵,对原始图像进行颜色映射,得到目标图像。
[0190]
可选的,变换矩阵生成模块702具体用于:
[0191]
根据多个原始区域中像素点的颜色值,计算多个原始区域分别对应的颜色通道维度的协方差矩阵;根据多个参考区域中像素点的颜色值,计算多个参考区域分别对应的颜色通道维度的协方差矩阵;基于第一区域对应的颜色通道维度的协方差矩阵和第三区域对应的颜色通道维度的协方差矩阵,确定第一区域的变换矩阵;基于第二区域对应的颜色通道维度的协方差矩阵和第四区域对应的颜色通道维度的协方差矩阵,确定第二区域的变换矩阵。
[0192]
可选的,处理模块703具体用于:
[0193]
根据第一区域的变换矩阵,对原始图像中像素点的颜色值进行处理,得到第一区域的变换矩阵对应的第一修正图像;根据第二区域的变换矩阵,对原始图像中像素点的颜色值进行处理,得到第二区域的变换矩阵对应的第二修正图像;融合第一修正图像和第二修正图像,得到目标图像。
[0194]
可选的,处理模块703具体用于:
[0195]
根据第一区域的变换矩阵,对第一区域中像素点的颜色值进行处理,得到第一区域对应的第一修正区域;根据第二区域的变换矩阵,对第二区域中像素点的颜色值进行处理,得到第二区域对应的第二修正区域;对第一修正区域和第二修正区域进行拼接,得到目标图像。
[0196]
可选的,区域划分模块701具体用于:
[0197]
将原始图像中像素点按照亮度值从低到高排列,确定至少一个第一分界值;基于至少一个第一分界值将原始图像中像素点分为多个原始区域;将参考图像中像素点按照亮度值从低到高排列,确定至少一个第二分界值;基于至少一个第二分界值将参考图像中像素点分为多个参考区域。
[0198]
可选的,多个原始区域还包括第五区域,第五区域中像素点的亮度值大于第一区域中像素点的亮度值,或者,第五区域中像素点的亮度值小于第二区域中像素点的亮度值;
[0199]
参考区域还包括第六区域,其中,第六区域中像素点的亮度值大于第三区域中像素点的亮度值,或者,第六区域中像素点的亮度值小于第四区域中像素点的亮度值;
[0200]
变换矩阵生成模块702还用于:
[0201]
根据第五区域中像素点的颜色值和第六区域中像素点的颜色值,得到第五区域的变换矩阵;
[0202]
处理模块703具体用于:
[0203]
根据第一区域的变换矩阵、第二区域的变化矩阵和第五区域的变换矩阵,对原始图像进行颜色映射,得到目标图像。
[0204]
上述实施例的装置,可以用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
[0205]
本公开实施例提供一种电子设备,包括:一个或多个处理器;存储器;以及一个或多个计算机程序;其中,一个或多个计算机程序被存储在存储器中;一个或多个处理器在执行一个或多个计算机程序时,使得电子设备实现如上述图2-图6任一所示实施例的图像处理方法。
[0206]
本公开实施例提供一种计算机存储介质,包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行如上述图2-图6任一所示实施例的图像处理方法。
[0207]
本公开实施例提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行如上述图2-图6任一所示实施例的图像处理方法。
[0208]
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设
备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0209]
以上仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1