CN114219877A - 人像头发流动特效处理方法、装置、介质和电子设备 - Google Patents
人像头发流动特效处理方法、装置、介质和电子设备 Download PDFInfo
- Publication number
- CN114219877A CN114219877A CN202111477583.3A CN202111477583A CN114219877A CN 114219877 A CN114219877 A CN 114219877A CN 202111477583 A CN202111477583 A CN 202111477583A CN 114219877 A CN114219877 A CN 114219877A
- Authority
- CN
- China
- Prior art keywords
- hair
- flowing
- data
- pixel
- special effect
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000000694 effects Effects 0.000 title claims abstract description 160
- 238000003672 processing method Methods 0.000 title claims abstract description 19
- 230000007797 corrosion Effects 0.000 claims abstract description 53
- 238000005260 corrosion Methods 0.000 claims abstract description 53
- 238000000034 method Methods 0.000 claims description 48
- 238000005530 etching Methods 0.000 claims description 35
- 238000010606 normalization Methods 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 12
- 238000004364 calculation method Methods 0.000 claims description 9
- 230000003628 erosive effect Effects 0.000 description 18
- 230000008569 process Effects 0.000 description 9
- 230000003648 hair appearance Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- FGUUSXIOTUKUDN-IBGZPJMESA-N C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 Chemical compound C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 FGUUSXIOTUKUDN-IBGZPJMESA-N 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 241000760358 Enodes Species 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000877 morphologic effect Effects 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
- G06T13/40—3D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
Abstract
本公开涉及一种人像头发流动特效处理方法、装置、介质和电子设备,其中方法包括:确定原始图像中头发区域的掩膜以及第一头发流动数据,所述第一头发流动数据包括所述头发区域每个像素点沿预设流动方向的流动距离;对所述掩膜进行腐蚀操作,以对所述头发区域实现分层得到多个头发子区域;基于所述第一头发流动数据,确定每个所述头发子区域对应的第二头发流动数据;其中每个所述第二头发流动数据包括对应的所述头发子区域每个像素点的流动速度;获取时间参数,基于所述时间参数、每个所述头发子区域对应的第二头发流动数据以及所述原始图像,生成头发流动特效视频。
Description
技术领域
本公开实施例涉及图像处理技术领域,尤其涉及一种人像头发流动特效处理方法,人像头发流动特效处理装置,以及实现人像头发流动特效处理方法的计算机可读存储介质和电子设备。
背景技术
随着短视频的广泛传播和视频处理技术的提升,视频处理方式变得丰富多样,其中,在视频中添加特效越来越流行。
相关技术中可在视频中人像区域添加头发流动特效画面,从而提高视频的趣味性和视觉效果。但是目前添加时视频中人像的头发区域整个都会被处理,无法实现对部分头发区域处理以添加头发流动特效画面,使得头发流动特效添加的灵活性较差,头发流动特效画面逼真度也较低。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本公开实施例提供了一种人像头发流动特效处理方法,人像头发流动特效处理装置,以及实现人像头发流动特效处理方法的计算机可读存储介质和电子设备。
第一方面,本公开实施例提供了一种人像头发流动特效处理方法,其特征在于,包括:
确定原始图像中头发区域的掩膜以及第一头发流动数据,所述第一头发流动数据包括所述头发区域每个像素点沿预设流动方向的流动距离;
对所述掩膜进行腐蚀操作,以对所述头发区域实现分层得到多个头发子区域;
基于所述第一头发流动数据,确定每个所述头发子区域对应的第二头发流动数据;其中,每个所述第二头发流动数据包括对应的所述头发子区域每个像素点的流动速度;
获取时间参数,基于所述时间参数、每个所述头发子区域对应的第二头发流动数据以及所述原始图像,生成头发流动特效视频。
在一个实施例中,所述方法还包括:
获取腐蚀操作所需的腐蚀参数,所述腐蚀参数包括像素宽度和/或像素高度;
所述对所述掩膜进行腐蚀操作,以对所述头发区域实现分层得到多个头发子区域,包括:
基于所述像素宽度和/或像素高度,对所述掩膜进行逐像素点的腐蚀操作,得到第一腐蚀结果数据,所述第一腐蚀结果数据包括所述掩膜中每个像素点对应的第一像素值;
比较所述第一腐蚀结果数据中的每个第一像素值与第一预设阈值的大小,基于第一像素值大于或等于所述第一预设阈值的像素点确定第一头发子区域,基于第一像素值小于所述第一预设阈值的像素点确定第二头发子区域。
在一个实施例中,所述获取腐蚀操作所需的腐蚀参数,包括:
通过中央处理器(CPU)中运行的指定Lua代码获取腐蚀操作所需的所述腐蚀参数;
和/或,
所述对所述掩膜进行腐蚀操作,以对所述头发区域实现分层得到多个头发子区域,包括:
通过图形处理器(GPU)中运行的着色器(Shader)对所述掩膜进行腐蚀操作,以对所述头发区域实现分层得到多个头发子区域。
在一个实施例中,所述方法还包括:
基于所述像素宽度和/或像素高度,对所述第二头发子区域进行逐像素点的腐蚀操作,得到第二腐蚀结果数据,所述第二腐蚀结果数据包括所述第二头发子区域中每个像素点对应的第二像素值;
比较所述第二腐蚀结果数据中的每个第二像素值与第二预设阈值的大小,基于第二像素值大于或等于所述第二预设阈值的像素点确定第三头发子区域;其中,所述第二预设阈值小于所述第一预设阈值。
在一个实施例中,所述方法还包括:
获取每个所述头发子区域对应的第一调节系数;其中,不同的所述头发子区域对应的第一调节系数不同;
所述基于所述第一头发流动数据,确定每个所述头发子区域对应的第二头发流动数据,包括:
基于每个所述头发子区域对应的第一调节系数,以及所述第一头发流动数据,确定每个所述头发子区域对应的第二头发流动数据。
在一个实施例中,所述基于每个所述头发子区域对应的第一调节系数,以及所述第一头发流动数据,确定每个所述头发子区域对应的第二头发流动数据之前,所述方法还包括:
对所述第一头发流动数据进行归一化处理,得到目标头发流动数据;
所述基于每个所述头发子区域对应的第一调节系数,以及所述第一头发流动数据,确定每个所述头发子区域对应的第二头发流动数据,包括:
基于每个所述头发子区域对应的第一调节系数,以及所述目标头发流动数据,确定每个所述头发子区域对应的第二头发流动数据。
在一个实施例中,所述对所述第一头发流动数据进行归一化处理,得到目标头发流动数据之前,所述方法还包括:
确定所述原始图像中头发区域中每个像素点的流动距离的最大值和最小值;
所述对所述第一头发流动数据进行归一化处理,得到目标头发流动数据,包括:
基于所述流动距离的最大值和最小值,对所述第一头发流动数据进行归一化处理,得到目标头发流动数据。
在一个实施例中,基于所述流动距离的最大值和最小值,对所述第一头发流动数据进行归一化处理,得到目标头发流动数据,包括:
计算所述流动距离的最大值和最小值的差值;
分别计算所述第一头发流动数据中每个像素点对应的流动距离与所述差值的乘积值;
分别计算所述第一头发流动数据中每个像素点对应的所述乘积值与所述最小值的和值;
基于所述第一头发流动数据中每个像素点对应的所述和值,确定所述目标头发流动数据。
在一个实施例中,所述获取时间参数,基于所述时间参数、每个所述头发子区域对应的第二头发流动数据以及所述原始图像,生成头发流动特效视频,包括:
获取时间参数;
基于所述时间参数,以及每个所述头发子区域对应的第二头发流动数据,确定对应的第三头发流动数据,每个所述第三头发流动数据包括对应的头发子区域中每个像素点的第一流动偏移量;
基于每个所述第三头发流动数据,以及所述原始图像得到第一头发流动偏移区域;
获取所述原始图像中所述第一头发流动偏移区域对应的第一像素值;
基于所述第一头发流动偏移区域对应的第一像素值,确定头发流动特效图像数据,返回所述获取时间参数的步骤,直至得到预设帧数的头发流动特效图像数据;
基于所述预设帧数的头发流动特效图像数据,生成头发流动特效视频。
在一个实施例中,所述方法还包括:
对所述时间参数乘以第二调节系数,得到第一参数值,所述第二调节系数是大于1的自然数;
对所述第一参数值求余数,得到第二参数值;
所述基于所述时间参数,以及每个所述头发子区域对应的第二头发流动数据,确定对应的第三头发流动数据,包括:
基于所述第二参数值以及每个所述头发子区域对应的第二头发流动数据,确定对应的第三头发流动数据;
所述基于所述第一头发流动偏移区域对应的第一像素值,确定头发流动特效图像数据,包括:
基于所述第一头发流动偏移区域对应的第一像素值,以及所述第二参数值,确定第一头发流动特效图像数据并作为所述头发流动特效图像数据。
在一个实施例中,所述方法还包括:
基于所述第二参数值,确定第三参数值,所述第三参数值与所述第二参数值之和等于一;
基于所述第三参数值以及每个所述头发子区域对应的第二头发流动数据,确定对应的第四头发流动数据,每个所述第四头发流动数据包括对应的头发子区域中每个像素点的第二流动偏移量;
基于每个所述第四头发流动数据,以及所述原始图像得到第二头发流动偏移区域;
获取所述原始图像中所述第二头发流动偏移区域对应的第二像素值;
基于所述第二头发流动偏移区域对应的第二像素值,以及所述第三参数值,确定第二头发流动特效图像数据;
基于所述第二头发流动特效图像数据、所述第一头发流动特效图像数据,确定所述头发流动特效图像数据。
第二方面,本公开实施例提供一种人像头发流动特效处理装置,包括:
数据确定模块,用于确定原始图像中头发区域的掩膜以及第一头发流动数据,所述第一头发流动数据包括所述头发区域每个像素点沿预设流动方向的流动距离;
头发分层模块,用于对所述掩膜进行腐蚀操作,以对所述头发区域实现分层得到多个头发子区域;
数据计算模块,用于基于所述第一头发流动数据,确定每个所述头发子区域对应的第二头发流动数据;其中,每个所述第二头发流动数据包括对应的所述头发子区域每个像素点的流动速度;
特效处理模块,用于获取时间参数,基于所述时间参数、每个所述头发子区域对应的第二头发流动数据以及所述原始图像,生成头发流动特效视频。
第三方面,本公开实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任一实施例所述人像头发流动特效处理方法的步骤。
第四方面,本公开实施例提供一种电子设备,包括:
处理器;以及
存储器,用于存储计算机程序;
其中,所述处理器配置为经由执行所述计算机程序来执行上述任一实施例所述人像头发流动特效处理方法的步骤。
本公开实施例提供的技术方案与现有技术相比具有如下优点:
本公开实施例提供的人像头发流动特效处理方法、装置、介质和电子设备,确定原始图像中头发区域的掩膜以及第一头发流动数据,所述第一头发流动数据包括所述头发区域每个像素点沿预设流动方向的流动距离;对所述掩膜进行腐蚀操作以对所述头发区域实现分层得到多个头发子区域;基于所述第一头发流动数据,确定每个所述头发子区域对应的第二头发流动数据,其中每个所述第二头发流动数据包括对应的所述头发子区域每个像素点的流动速度;获取时间参数,基于所述时间参数、每个所述头发子区域对应的第二头发流动数据以及所述原始图像,生成头发流动特效视频。这样,本实施例中可以通过对原始图像中头发区域的掩膜的腐蚀操作实现对头发区域的分层,从而可以实现对部分头发区域如一个或多个头发子区域处理以添加头发流动特效画面,使得头发流动特效添加的灵活性较好,满足不同用户个性化添加头发流动特效的需求,另外,加入时间参数实现头发流动特效画面,头发流动特效画面质量较好,如头发流动连续、流动特效画面逼真度较高等。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本公开实施例人像头发流动特效处理方法流程图;
图2为本公开另一实施例人像头发流动特效处理方法流程图;
图3为本公开实施例腐蚀操作对头发区域分层效果示意图;
图4为本公开又一实施例人像头发流动特效处理方法流程图;
图5为本公开再一实施例人像头发流动特效处理方法流程图;
图6为本公开实施例人像头发流动特效处理装置示意图;
图7为本公开实施例实现人像头发流动特效处理方法的电子设备示意图。
具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
应当理解,在下文中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
图1为本公开实施例示出的人像头发流动特效处理方法流程图,该方法可以由电子设备如智能手机等执行,具体可以包括以下步骤:
步骤S101:确定原始图像中头发区域的掩膜以及第一头发流动数据,所述第一头发流动数据包括所述头发区域每个像素点沿预设流动方向的流动距离。
示例性的,本实施例中可以对原始图像中的人物的头部的头发区域分割得到掩膜(mask),便于后续对图像中的头发区域进行处理。预设流动方向可以包括二维平面的X方向即左右方向和Y方向即上下方向,第一头发流动数据可以包括头发区域每个像素点P沿X方向的流动距离x(-1≤x≤1)和/或沿Y方向的流动距离y(-1≤y≤1),也即预测的沿X方向和Y方向各自的偏移距离,流动距离x的绝对值小于等于1个像素宽度,流动距离y的绝对值小于等于1个像素高度,x和y的取值可以是正值,也可以是负值,x取正值表示流动方向为右,x取负值表示流动方向为左,y取正值表示流动方向为上,y取负值表示流动方向为下。
步骤S102:对所述掩膜进行腐蚀操作,以对所述头发区域实现分层得到多个头发子区域。
具体的,可以对头发区域的mask进行二值化处理,然后进行腐蚀(Erode)操作。腐蚀操作是图像处理中形态学操作中的一种,以模板像素结构的中心点为准心,在图像中找能满足模板像素结构的像素点即为腐蚀,例如移动模板像素结构,如果模板像素结构与图像的交集(包括至少一个像素点)完全属于图像的区域内,则保存该交集中的像素点,然后继续移动模板像素结构进行腐蚀操作,直至所有满足条件的交集中的像素点构成图像被模板像素结构腐蚀的结果。其中模板像素结构例如是像素高度乘以像素宽度的矩形结构,但也不限于此。
本实施例中通过腐蚀操作实现对图像中的头发区域进行分层,以得到多个头发子区域,每个头发子区域是头发区域中的一部分。其中可以进行多次腐蚀操作,具体次数可以根据需要设置,对此不作限制,头发子区域的数量也可根据需要确定,本实施例中对此也不作限制。
步骤S103:基于所述第一头发流动数据,确定每个所述头发子区域对应的第二头发流动数据;其中,每个所述第二头发流动数据包括对应的所述头发子区域每个像素点的流动速度。
示例性的,第一头发流动数据如头发区域每个像素点P沿X方向的流动距离x和/或沿Y方向的流动距离y,基于第一头发流动数据如每个像素点Pi沿X方向的流动距离xi和/或沿Y方向的流动距离yi以及时间,确定每个头发子区域的第二头发流动数据即每个头发子区域中每个像素点的流动速度。例如头发区域包括10000个像素点,而分层后的头发子区域1包括3000个像素点,头发子区域2包括5000个像素点,头发子区域3包括2000个像素点,那么基于头发子区域1中3000个像素点各自对应的沿X方向的流动距离x和/或沿Y方向的流动距离y,除以单位时间如1秒得到头发子区域1中各个像素点的流动速度,如X方向的流动速度和/或沿Y方向的流动速度。
步骤S104:获取时间参数,基于所述时间参数、每个所述头发子区域对应的第二头发流动数据以及所述原始图像,生成头发流动特效视频。
示例性的,时间参数可以是当前时间的时间戳,但不限于此。在得到例如头发子区域1中各个像素点的流动速度之后,与时间参数相乘可以确定头发子区域1中各个像素点的流动距离即从原始位置偏移后的距离,从而确定偏移后头发子区域1中各个像素点的位置区域,然后在该位置区域结合原始图像融合生成头发流动特效视频,其他头发子区域也是相同的处理,最终得到整个的头发流动特效视频。例如将静态用户照片自动生成头发区域发丝流动漂浮特效视频画面。
本实施例中可以通过对原始图像中头发区域的掩膜的腐蚀操作实现对头发区域的分层,从而可以实现对部分头发区域处理以添加头发流动特效画面,使得头发流动特效添加的灵活性较好,满足不同用户个性化添加头发流动特效的需求,另外,加入时间参数实现头发流动特效画面,头发流动特效画面质量较好,如头发流动连续、流动特效画面逼真度较高等。
在上述实施例的基础上,在一个实施例中,如图2所示,所述方法还可以包括步骤201:获取腐蚀操作所需的腐蚀参数,所述腐蚀参数包括像素宽度和/或像素高度。
示例性的,腐蚀操作是逐像素点的操作,需要知道一个像素点周围的像素点的位置,腐蚀参数可以是像素宽度widthOffset和/或像素高度heightOffset,这样便于腐蚀操作时的逐像素点偏移,如模板像素结构从一个像素点位置移动一个像素宽度和/或像素高度到达另一个像素点位置。实际处理时可以配置缓冲区RT,用来记录腐蚀操作的中间过程,腐蚀参数如像素宽度widthOffset和像素高度heightOffset可以存储于缓冲区RT。
步骤S102中对所述掩膜进行腐蚀操作,以对所述头发区域实现分层得到多个头发子区域,具体可以包括以下步骤:
步骤S202:基于所述像素宽度和/或像素高度,对所述掩膜进行逐像素点的腐蚀操作,得到第一腐蚀结果数据,所述第一腐蚀结果数据包括所述掩膜中每个像素点对应的第一像素值。
示例性的,从所述缓冲区RT中读取像素宽度widthOffset和像素高度heightOffset,基于像素宽度和/或像素高度对掩膜进行逐像素点的腐蚀操作,腐蚀操作的中间结果可以写入缓冲区RT,最终得到第一腐蚀结果数据即掩膜中每个像素点对应的第一像素值如RGB值。
步骤S203:比较所述第一腐蚀结果数据中的每个第一像素值与第一预设阈值的大小,基于第一像素值大于或等于所述第一预设阈值的像素点确定第一头发子区域,基于第一像素值小于所述第一预设阈值的像素点确定第二头发子区域。
示例性的,第一预设阈值可以根据需要设置,对此不作限制。结合图3中所示,比较第一腐蚀结果数据中的每个第一像素值如RGB值与第一预设阈值的大小,基于第一像素值如RGB值大于或等于第一预设阈值的像素点确定第一头发子区域301,基于第一像素值如RGB值小于第一预设阈值的像素点确定第二头发子区域如区域302和303组成的区域。这样即实现将头发区域分成两层即两部分。步骤S203之后即可跳转执行步骤S103。
本实施例中可以通过对原始图像中头发区域的掩膜的腐蚀操作实现对头发区域的分层,从而可以实现对部分头发区域处理以添加头发流动特效画面,使得头发流动特效添加的灵活性较好,满足不同用户个性化添加头发流动特效的需求,另外,加入时间参数实现头发流动特效画面,头发流动特效画面质量较好,如头发流动连续、流动特效画面逼真度较高等。另外,基于上述腐蚀参数进行腐蚀操作,可以提高腐蚀操作的结果的准确性,进而提高对头发区域的分层结果的准确性,使得后续添加头发流动特效的位置准确性提高,提升头发流动特效画面质量。
在一个实施例中,上述步骤S201中获取腐蚀操作所需的腐蚀参数,具体可以包括:通过中央处理器(CPU)中运行的指定Lua代码获取腐蚀操作所需的所述腐蚀参数。
具体的,Lua是目前最为流行的、轻量级嵌入式脚本语言。通过编写指定的Lua代码,并运行于CPU中,该运行的指定Lua代码可以配置缓冲区RT,并在缓冲区RT中配置腐蚀参数如像素宽度widthOffset和像素高度heightOffset,使用时从缓冲区RT读取腐蚀操作所需的该腐蚀参数如像素宽度widthOffset和像素高度heightOffset。如此可以利用Lua代码的优点提升在添加头发流动特效时的处理效率。
在另一个实施例中,或者在上述实施例基础上的又一个实施例中,上述步骤S102中对所述掩膜进行腐蚀操作,以对所述头发区域实现分层得到多个头发子区域,具体可以包括:通过图形处理器(GPU)中运行的着色器(Shader)对所述掩膜进行腐蚀操作,以对所述头发区域实现分层得到多个头发子区域。
示例性的,在一个示例中,Shader进行腐蚀操作所需的腐蚀参数可以由CPU中运行的指定Lua代码获取。通过CPU中的指定Lua代码和GPU中的Shader的协同工作,提升了腐蚀操作的效率,进而提升在添加头发流动特效时的整体处理效率。
在上述任一实施例的基础上,在又一个实施例中,如图4所示,所述方法还可以包括以下步骤:
步骤S401:基于所述像素宽度和/或像素高度,对所述第二头发子区域进行逐像素点的腐蚀操作,得到第二腐蚀结果数据,所述第二腐蚀结果数据包括所述第二头发子区域中每个像素点对应的第二像素值。
示例性的,从缓冲区RT中读取像素宽度widthOffset和像素高度heightOffset,基于像素宽度和/或像素高度对第二头发子区域进行逐像素点的腐蚀操作,腐蚀操作的中间结果可以写入缓冲区RT,最终得到第二腐蚀结果数据即第二头发子区域中每个像素点对应的第二像素值如RGB值。
步骤S402:比较所述第二腐蚀结果数据中的每个第二像素值与第二预设阈值的大小,基于第二像素值大于或等于所述第二预设阈值的像素点确定第三头发子区域;其中,所述第二预设阈值小于所述第一预设阈值。
示例性的,第二预设阈值也可以根据需要设置,对此不作限制。再次结合图3中所示,比较第二腐蚀结果数据中的每个第二像素值如RGB值与第二预设阈值的大小,基于第二像素值如RGB值大于或等于第二预设阈值的像素点确定第三头发子区域如区域303。这样即实现将头发区域分成三层即三部分。可选的,也可以继续基于第二像素值如RGB值小于第二预设阈值的像素点确定第四头发子区域实现将头发区域分成四层,具体分层的数量可以根据需要设置,本实施例中对此不作限制。
本实施例中可以通过对原始图像中头发区域的掩膜的多次腐蚀操作实现对头发区域的灵活分层,从而可以实现对部分头发区域处理以添加头发流动特效画面,使得头发流动特效添加的灵活性较好,满足不同用户个性化添加头发流动特效的需求。
在上述任一实施例的基础上,在又一个实施例中,如图5所示,所述方法还可以包括以下步骤:
步骤S501:获取每个所述头发子区域对应的第一调节系数;其中,不同的所述头发子区域对应的第一调节系数不同。
示例性的,该第一调节系数可以预先设置,例如根据头发特效画面的不同展示效果需求自定义设置,不同头发子区域即分层后不同层的头发对应的第一调节系数不同。
步骤S103中基于所述第一头发流动数据,确定每个所述头发子区域对应的第二头发流动数据,具体可以包括:
步骤S502:基于每个所述头发子区域对应的第一调节系数,以及所述第一头发流动数据,确定每个所述头发子区域对应的第二头发流动数据。
示例性的,第一头发流动数据包括头发区域每个像素点P沿X方向的流动距离x和/或沿Y方向的流动距离y,基于该第一头发流动数据计算得到的每个头发子区域对应的第二头发流动数据即每个头发子区域中每个像素点的流动速度可能并不理想,需要控制调整流动速度使其变得理想如满足可控目标速度的要求。因此本实施例中,可以根据每个头发子区域对应的第一调节系数来进行调整,使得第二头发流动数据即每个头发子区域中每个像素点的流动速度可控。
在一个示例中,针对每个头发子区域如头发子区域1,其中计算得到的各个像素点的流动速度如X方向的流动速度和Y方向的流动速度分别再乘以第一调节系数即得到调整后每个像素点的流动速度,如得到调整后每个像素点沿X方向的流动速度和Y方向的流动速度。
本实施例中,基于每个头发子区域对应的第一调节系数,调整每个头发子区域中每个像素点的流动速度,使其可控在目标速度的要求,每个头发子区域对应的第一调节系数不同,可以使得最终展示的头发流动特效不同,从而满足个性化添加头发流动特效的需求。
为了方便计算处理,提高添加头发流动特效处理的效率,在一个实施例中,步骤S502中基于每个所述头发子区域对应的第一调节系数,以及所述第一头发流动数据,确定每个所述头发子区域对应的第二头发流动数据之前,所述方法还可以包括步骤A:对所述第一头发流动数据进行归一化处理,得到目标头发流动数据。
示例性的,第一头发流动数据包括头发区域每个像素点P沿X方向的流动距离x和/或沿Y方向的流动距离y,其中x和y的取值通常较小,一般均在-0.02和0.02之间。因此直接基于第一头发流动数据进行计算处理量化误差较大,不便于计算处理。因此本实施例中先对第一头发流动数据进行归一化处理,之后再进行后续计算处理。
相应的,步骤S502中基于每个所述头发子区域对应的第一调节系数,以及所述第一头发流动数据,确定每个所述头发子区域对应的第二头发流动数据,具体可以包括:基于每个所述头发子区域对应的第一调节系数,以及所述目标头发流动数据,确定每个所述头发子区域对应的第二头发流动数据。
在一个示例中,针对每个头发子区域,例如对其中一个像素点沿X方向的流动距离x归一化处理得到x’,用x’除以单位时间如1秒得到该像素点沿X方向的流动速度v,该流动速度v再乘以对应的第一调节系数,即得到调整后的该像素点沿X方向的流动速度v’,该流动速度v’的取值介于0和1之间,其他像素点也是同样的处理过程;另外,Y方向的数据处理方式也是与此相同的方式,此处不再赘述。
在一个实施例中,步骤A中对所述第一头发流动数据进行归一化处理,得到目标头发流动数据之前,所述方法还可以包括步骤B:确定所述原始图像中头发区域中每个像素点的流动距离的最大值和最小值。相应的,步骤A中对所述第一头发流动数据进行归一化处理,得到目标头发流动数据,具体可以包括步骤A’:基于所述流动距离的最大值和最小值,对所述第一头发流动数据进行归一化处理,得到目标头发流动数据。
在一个实施例中,步骤A’中基于所述流动距离的最大值和最小值,对所述第一头发流动数据进行归一化处理,得到目标头发流动数据,具体可以包括以下步骤:计算所述流动距离的最大值和最小值的差值;分别计算所述第一头发流动数据中每个像素点对应的流动距离与所述差值的乘积值;分别计算所述第一头发流动数据中每个像素点对应的所述乘积值与所述最小值的和值;基于所述第一头发流动数据中每个像素点对应的所述和值,确定所述目标头发流动数据。
示例性的,针对每个像素点在X方向的流动距离x,以上归一化处理过程可以用以下公式表达:
x’=x*(xmax-xmin)+xmin;
其中,x’是像素点对应的目标头发流动数据即归一化后的流动距离,xmax是X方向的流动距离的最大值,xmin是X方向的流动距离的最小值。
针对每个像素点在Y方向的流动距离y,以上归一化处理过程可以用以下公式表达:
y’=y*(Ymax-Ymin)+Ymin;
其中,y’是像素点对应的目标头发流动数据即归一化后的流动距离,Ymax是Y方向的流动距离的最大值,Ymin是Y方向的流动距离的最小值。
在上述任一实施例的基础上,在一个实施例中,步骤S104具体可以包括以下步骤:
步骤a):获取时间参数t。
示例性的,该时间参数t可以是时间戳,如“384289346932.832897”。
步骤b):基于所述时间参数t,以及每个所述头发子区域对应的第二头发流动数据,确定对应的第三头发流动数据,每个所述第三头发流动数据包括对应的头发子区域中每个像素点的第一流动偏移量。
示例性的,第二头发流动数据即相应头发子区域每个像素点的流动速度,因此时间参数t乘以每个像素点的流动速度,即可得到对应的第三头发流动数据即每个像素点的第一流动偏移量即偏移的距离。
步骤c):基于每个所述第三头发流动数据,以及所述原始图像得到第一头发流动偏移区域。
示例性的,针对每个头发子区域,基于其中每个像素点的第一流动偏移量即偏移的距离与原始图像对应的该每个像素点的原始坐标位置比对,即可确定第一头发流动偏移区域,即随着时间变化,该头发子区域从一个原始位置区域偏移到另一位置区域。
步骤d):获取所述原始图像中所述第一头发流动偏移区域对应的第一像素值。
示例性的,采样获取原始图像中第一头发流动偏移区域对应的位置的第一像素值如RGB值。
步骤e):基于所述第一头发流动偏移区域对应的第一像素值,确定头发流动特效图像数据,返回所述获取时间参数的步骤,直至得到预设帧数的头发流动特效图像数据。
示例性的,基于获取的第一头发流动偏移区域对应的位置的第一像素值如RGB值,生成头发流动特效图像数据如RGB值数据,然后返回步骤a)获取下一时间参数,重复上述过程直至得到预设帧数的头发流动特效图像数据。其中预设帧数可以根据需要设置,对此不作限制。
步骤f):基于所述预设帧数的头发流动特效图像数据,生成头发流动特效视频。
示例性的,基于得到的预设帧数如5帧的头发流动特效图像数据,生成头发流动特效视频,每帧头发流动特效图像数据对应一帧图像。
本实施例中可以通过对原始图像中头发区域的掩膜的腐蚀操作实现对头发区域的分层,从而可以实现对部分头发区域处理以添加头发流动特效画面,使得头发流动特效添加的灵活性较好,满足不同用户个性化添加头发流动特效的需求,另外,时间是连续变化的,加入时间参数实现头发流动特效画面,头发流动特效画面质量如头发流动连续性好,头发流动特效画面逼真度提高。
在上述实施例的基础上,在一个实施例中,所述方法还可以包括以下步骤:
步骤i):对所述时间参数乘以第二调节系数,得到第一参数值,所述第二调节系数是大于1的自然数。
示例性的,第二调节系数可以根据需要设置,对此不作限制。
步骤ii):对所述第一参数值求余数,得到第二参数值。
示例性的,求余数可以采用求余函数MOD得到,例如第二调节系数是4,则第二参数值af=mod(t*4,1)。
相应的,步骤b)中基于所述时间参数,以及每个所述头发子区域对应的第二头发流动数据,确定对应的第三头发流动数据,具体可包括:基于所述第二参数值以及每个所述头发子区域对应的第二头发流动数据,确定对应的第三头发流动数据。
示例性的,第二参数值af是基于时间参数t得到,本质也是一个时间参数,因此每个头发子区域对应的第二头发流动数据即每个像素点的流动速度乘以第二参数值af,即可得到对应的第三头发流动数据即每个像素点的第一流动偏移量即偏移的距离。然后执行步骤c)~步骤d。
步骤e)中基于所述第一头发流动偏移区域对应的第一像素值,确定头发流动特效图像数据,具体可以包括:基于所述第一头发流动偏移区域对应的第一像素值,以及所述第二参数值,确定第一头发流动特效图像数据并作为所述头发流动特效图像数据。
示例性的,基于获取的第一头发流动偏移区域对应的位置的第一像素值如RGB值再乘以第二参数值af,生成第一头发流动特效图像数据如RGB值数据并作为所述头发流动特效图像数据,然后返回步骤a)直至得到预设帧数的头发流动特效图像数据,然后执行步骤f)。
本实施例中,加入时间参数实现头发流动特效画面,其中对时间参数乘以第二调节系数并取余数再进行后续计算,可以保证生成的头发流动特效中的头发流动的周期性,丰富了头发流动特效样式,同时头发流动特效画面质量如头发流动连续性好,头发流动特效画面逼真度提高。
在上述实施例的基础上,在一个实施例中,所述方法还可以包括以下步骤:
步骤1):基于所述第二参数值,确定第三参数值,所述第三参数值与所述第二参数值之和等于一。示例性的,第三参数值ar=1-af。
步骤2):基于所述第三参数值以及每个所述头发子区域对应的第二头发流动数据,确定对应的第四头发流动数据,每个所述第四头发流动数据包括对应的头发子区域中每个像素点的第二流动偏移量。
示例性的,第三参数值ar也是基于时间参数t得到,本质也是一个时间参数,因此每个头发子区域对应的第二头发流动数据即每个像素点的流动速度还可以乘以第三参数值ar,得到对应的第四头发流动数据即每个像素点的第二流动偏移量即偏移的距离。
步骤3):基于每个所述第四头发流动数据,以及所述原始图像得到第二头发流动偏移区域。
示例性的,针对每个头发子区域,基于其中每个像素点的第二流动偏移量即偏移的距离与原始图像对应的该每个像素点的原始坐标位置比对,即可确定第二头发流动偏移区域,即随着时间变化,该头发子区域从一个原始位置区域偏移到另一位置区域。
步骤4):获取所述原始图像中所述第二头发流动偏移区域对应的第二像素值。
示例性的,采样获取原始图像中第二头发流动偏移区域对应的位置的第二像素值如RGB值。
步骤5):基于所述第二头发流动偏移区域对应的第二像素值,以及所述第三参数值,确定第二头发流动特效图像数据;
示例性的,基于获取的第二头发流动偏移区域对应的位置的第二像素值如RGB值再乘以第三参数值ar,生成第二头发流动特效图像数据如RGB值数据。
步骤6):基于所述第二头发流动特效图像数据、所述第一头发流动特效图像数据,确定所述头发流动特效图像数据。
示例性的,基于第二头发流动特效图像数据如RGB值数据以及上述第一头发流动特效图像数据如RGB值数据,生成最终的头发流动特效图像数据。
本实施例中基于第二参数值和第三参数值分别确定了两个流动偏移量,进而确定两个头发流动偏移区域,然后基于该两个头发流动偏移区域在原始图像中对应位置的像素值以及第二参数值和第三参数值,融合生成最终的头发流动特效图像数据,如此可以使得头发流动特效画面质量如画面逼真度进一步提高。
需要说明的是,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。另外,也易于理解的是,这些步骤可以是例如在多个模块/进程/线程中同步或异步执行。
本公开实施例提供一种人像头发流动特效处理装置,如图6所示人像头发流动特效处理装置可包括:
数据确定模块601,用于确定原始图像中头发区域的掩膜以及第一头发流动数据,所述第一头发流动数据包括所述头发区域每个像素点沿预设流动方向的流动距离;
头发分层模块602,用于对所述掩膜进行腐蚀操作,以对所述头发区域实现分层得到多个头发子区域;
数据计算模块603,用于基于所述第一头发流动数据,确定每个所述头发子区域对应的第二头发流动数据;其中,每个所述第二头发流动数据包括对应的所述头发子区域每个像素点的流动速度;
特效处理模块604,用于获取时间参数,基于所述时间参数、每个所述头发子区域对应的第二头发流动数据以及所述原始图像,生成头发流动特效视频。
在一个实施例中,所述装置还包括参数获取模块,用于获取腐蚀操作所需的腐蚀参数,所述腐蚀参数包括像素宽度和/或像素高度。
所述头发分层模块602,还用于基于所述像素宽度和/或像素高度,对所述掩膜进行逐像素点的腐蚀操作,得到第一腐蚀结果数据,所述第一腐蚀结果数据包括所述掩膜中每个像素点对应的第一像素值;比较所述第一腐蚀结果数据中的每个第一像素值与第一预设阈值的大小,基于第一像素值大于或等于所述第一预设阈值的像素点确定第一头发子区域,基于第一像素值小于所述第一预设阈值的像素点确定第二头发子区域。
在一个实施例中,所述参数获取模块,用于通过中央处理器中运行的指定Lua代码获取腐蚀操作所需的所述腐蚀参数。
在一个实施例中,所述头发分层模块602,用于通过图形处理器中运行的着色器对所述掩膜进行腐蚀操作,以对所述头发区域实现分层得到多个头发子区域。
在一个实施例中,所述头发分层模块602,还用于基于所述像素宽度和/或像素高度,对所述第二头发子区域进行逐像素点的腐蚀操作,得到第二腐蚀结果数据,所述第二腐蚀结果数据包括所述第二头发子区域中每个像素点对应的第二像素值;比较所述第二腐蚀结果数据中的每个第二像素值与第二预设阈值的大小,基于第二像素值大于或等于所述第二预设阈值的像素点确定第三头发子区域;其中,所述第二预设阈值小于所述第一预设阈值。
在一个实施例中,所述装置还包括系数获取模块,用于获取每个所述头发子区域对应的第一调节系数;其中,不同的所述头发子区域对应的第一调节系数不同。
所述数据计算模块603,用于基于每个所述头发子区域对应的第一调节系数,以及所述第一头发流动数据,确定每个所述头发子区域对应的第二头发流动数据。
在一个实施例中,所述装置还可包括归一化处理模块,用于在所述数据计算模块基于每个所述头发子区域对应的第一调节系数,以及所述第一头发流动数据,确定每个所述头发子区域对应的第二头发流动数据之前,对所述第一头发流动数据进行归一化处理,得到目标头发流动数据。所述数据计算模块,用于基于每个所述头发子区域对应的第一调节系数,以及所述目标头发流动数据,确定每个所述头发子区域对应的第二头发流动数据。
在一个实施例中,所述数据确定模块还用于在所述归一化处理模块对所述第一头发流动数据进行归一化处理,得到目标头发流动数据之前,确定所述原始图像中头发区域中每个像素点的流动距离的最大值和最小值。所述归一化处理模块,用于基于所述流动距离的最大值和最小值,对所述第一头发流动数据进行归一化处理,得到目标头发流动数据。
在一个实施例中,归一化处理模块用于:计算所述流动距离的最大值和最小值的差值;分别计算所述第一头发流动数据中每个像素点对应的流动距离与所述差值的乘积值;分别计算所述第一头发流动数据中每个像素点对应的所述乘积值与所述最小值的和值;基于所述第一头发流动数据中每个像素点对应的所述和值,确定所述目标头发流动数据。
在一个实施例中,所述特效处理模块,用于:获取时间参数;基于所述时间参数,以及每个所述头发子区域对应的第二头发流动数据,确定对应的第三头发流动数据,每个所述第三头发流动数据包括对应的头发子区域中每个像素点的第一流动偏移量;基于每个所述第三头发流动数据,以及所述原始图像得到第一头发流动偏移区域;获取所述原始图像中所述第一头发流动偏移区域对应的第一像素值;基于所述第一头发流动偏移区域对应的第一像素值,确定头发流动特效图像数据,返回所述获取时间参数的步骤,直至得到预设帧数的头发流动特效图像数据;基于所述预设帧数的头发流动特效图像数据,生成头发流动特效视频。
在一个实施例中,所述装置还可包括参数处理模块,用于对所述时间参数乘以第二调节系数,得到第一参数值,所述第二调节系数是大于1的自然数;对所述第一参数值求余数,得到第二参数值。所述特效处理模块,用于基于所述第二参数值以及每个所述头发子区域对应的第二头发流动数据,确定对应的第三头发流动数据。所述特效处理模块,还用于基于所述第一头发流动偏移区域对应的第一像素值,以及所述第二参数值,确定第一头发流动特效图像数据并作为所述头发流动特效图像数据。
在一个实施例中,所述参数处理模块,还用于基于所述第二参数值,确定第三参数值,所述第三参数值与所述第二参数值之和等于一。
所述特效处理模块,还用于基于所述第三参数值以及每个所述头发子区域对应的第二头发流动数据,确定对应的第四头发流动数据,每个所述第四头发流动数据包括对应的头发子区域中每个像素点的第二流动偏移量;基于每个所述第四头发流动数据,以及所述原始图像得到第二头发流动偏移区域;获取所述原始图像中所述第二头发流动偏移区域对应的第二像素值;基于所述第二头发流动偏移区域对应的第二像素值,以及所述第三参数值,确定第二头发流动特效图像数据;基于所述第二头发流动特效图像数据、所述第一头发流动特效图像数据,确定所述头发流动特效图像数据。
关于上述实施例中的装置,其中各个模块执行操作的具体方式以及带来的相应技术效果已经在有关该方法的实施例中进行了对应的详细描述,此处将不做详细阐述说明。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。作为模块或单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现木公开方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本公开实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任一项实施例所述人像头发流动特效处理方法的步骤。
示例性的,该可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
本公开实施例还提供一种电子设备,如图7所示电子设备可包括处理器701以及存储器702,存储器702用于存储计算机程序。其中,所述处理器701配置为经由执行所述计算机程序来执行上述任一项实施例中所述人像头发流动特效处理方法的步骤。示例性的,电子设备可以是智能手机、平板电脑等,本实施例中对此不作限制。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (14)
1.一种人像头发流动特效处理方法,其特征在于,包括:
确定原始图像中头发区域的掩膜以及第一头发流动数据,所述第一头发流动数据包括所述头发区域每个像素点沿预设流动方向的流动距离;
对所述掩膜进行腐蚀操作,以对所述头发区域实现分层得到多个头发子区域;
基于所述第一头发流动数据,确定每个所述头发子区域对应的第二头发流动数据;其中,每个所述第二头发流动数据包括对应的所述头发子区域每个像素点的流动速度;
获取时间参数,基于所述时间参数、每个所述头发子区域对应的第二头发流动数据以及所述原始图像,生成头发流动特效视频。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取腐蚀操作所需的腐蚀参数,所述腐蚀参数包括像素宽度和/或像素高度;
所述对所述掩膜进行腐蚀操作,以对所述头发区域实现分层得到多个头发子区域,包括:
基于所述像素宽度和/或像素高度,对所述掩膜进行逐像素点的腐蚀操作,得到第一腐蚀结果数据,所述第一腐蚀结果数据包括所述掩膜中每个像素点对应的第一像素值;
比较所述第一腐蚀结果数据中的每个第一像素值与第一预设阈值的大小,基于第一像素值大于或等于所述第一预设阈值的像素点确定第一头发子区域,基于第一像素值小于所述第一预设阈值的像素点确定第二头发子区域。
3.根据权利要求2所述的方法,其特征在于,所述获取腐蚀操作所需的腐蚀参数,包括:
通过中央处理器中运行的指定Lua代码获取腐蚀操作所需的所述腐蚀参数;
和/或,
所述对所述掩膜进行腐蚀操作,以对所述头发区域实现分层得到多个头发子区域,包括:
通过图形处理器中运行的着色器对所述掩膜进行腐蚀操作,以对所述头发区域实现分层得到多个头发子区域。
4.根据权利要求2或3所述的方法,其特征在于,所述方法还包括:
基于所述像素宽度和/或像素高度,对所述第二头发子区域进行逐像素点的腐蚀操作,得到第二腐蚀结果数据,所述第二腐蚀结果数据包括所述第二头发子区域中每个像素点对应的第二像素值;
比较所述第二腐蚀结果数据中的每个第二像素值与第二预设阈值的大小,基于第二像素值大于或等于所述第二预设阈值的像素点确定第三头发子区域;其中,所述第二预设阈值小于所述第一预设阈值。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取每个所述头发子区域对应的第一调节系数;其中,不同的所述头发子区域对应的第一调节系数不同;
所述基于所述第一头发流动数据,确定每个所述头发子区域对应的第二头发流动数据,包括:
基于每个所述头发子区域对应的第一调节系数,以及所述第一头发流动数据,确定每个所述头发子区域对应的第二头发流动数据。
6.根据权利要求5所述的方法,其特征在于,所述基于每个所述头发子区域对应的第一调节系数,以及所述第一头发流动数据,确定每个所述头发子区域对应的第二头发流动数据之前,所述方法还包括:
对所述第一头发流动数据进行归一化处理,得到目标头发流动数据;
所述基于每个所述头发子区域对应的第一调节系数,以及所述第一头发流动数据,确定每个所述头发子区域对应的第二头发流动数据,包括:
基于每个所述头发子区域对应的第一调节系数,以及所述目标头发流动数据,确定每个所述头发子区域对应的第二头发流动数据。
7.根据权利要求6所述的方法,其特征在于,所述对所述第一头发流动数据进行归一化处理,得到目标头发流动数据之前,所述方法还包括:
确定所述原始图像中头发区域中每个像素点的流动距离的最大值和最小值;
所述对所述第一头发流动数据进行归一化处理,得到目标头发流动数据,包括:
基于所述流动距离的最大值和最小值,对所述第一头发流动数据进行归一化处理,得到目标头发流动数据。
8.根据权利要求7所述的方法,其特征在于,基于所述流动距离的最大值和最小值,对所述第一头发流动数据进行归一化处理,得到目标头发流动数据,包括:
计算所述流动距离的最大值和最小值的差值;
分别计算所述第一头发流动数据中每个像素点对应的流动距离与所述差值的乘积值;
分别计算所述第一头发流动数据中每个像素点对应的所述乘积值与所述最小值的和值;
基于所述第一头发流动数据中每个像素点对应的所述和值,确定所述目标头发流动数据。
9.根据权利要求1~7任一项所述的方法,其特征在于,所述获取时间参数,基于所述时间参数、每个所述头发子区域对应的第二头发流动数据以及所述原始图像,生成头发流动特效视频,包括:
获取时间参数;
基于所述时间参数,以及每个所述头发子区域对应的第二头发流动数据,确定对应的第三头发流动数据,每个所述第三头发流动数据包括对应的头发子区域中每个像素点的第一流动偏移量;
基于每个所述第三头发流动数据,以及所述原始图像得到第一头发流动偏移区域;
获取所述原始图像中所述第一头发流动偏移区域对应的第一像素值;
基于所述第一头发流动偏移区域对应的第一像素值,确定头发流动特效图像数据,返回所述获取时间参数的步骤,直至得到预设帧数的头发流动特效图像数据;
基于所述预设帧数的头发流动特效图像数据,生成头发流动特效视频。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
对所述时间参数乘以第二调节系数,得到第一参数值,所述第二调节系数是大于1的自然数;
对所述第一参数值求余数,得到第二参数值;
所述基于所述时间参数,以及每个所述头发子区域对应的第二头发流动数据,确定对应的第三头发流动数据,包括:
基于所述第二参数值以及每个所述头发子区域对应的第二头发流动数据,确定对应的第三头发流动数据;
所述基于所述第一头发流动偏移区域对应的第一像素值,确定头发流动特效图像数据,包括:
基于所述第一头发流动偏移区域对应的第一像素值,以及所述第二参数值,确定第一头发流动特效图像数据并作为所述头发流动特效图像数据。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
基于所述第二参数值,确定第三参数值,所述第三参数值与所述第二参数值之和等于一;
基于所述第三参数值以及每个所述头发子区域对应的第二头发流动数据,确定对应的第四头发流动数据,每个所述第四头发流动数据包括对应的头发子区域中每个像素点的第二流动偏移量;
基于每个所述第四头发流动数据,以及所述原始图像得到第二头发流动偏移区域;
获取所述原始图像中所述第二头发流动偏移区域对应的第二像素值;
基于所述第二头发流动偏移区域对应的第二像素值,以及所述第三参数值,确定第二头发流动特效图像数据;
基于所述第二头发流动特效图像数据、所述第一头发流动特效图像数据,确定所述头发流动特效图像数据。
12.一种人像头发流动特效处理装置,其特征在于,包括:
数据确定模块,用于确定原始图像中头发区域的掩膜以及第一头发流动数据,所述第一头发流动数据包括所述头发区域每个像素点沿预设流动方向的流动距离;
头发分层模块,用于对所述掩膜进行腐蚀操作,以对所述头发区域实现分层得到多个头发子区域;
数据计算模块,用于基于所述第一头发流动数据,确定每个所述头发子区域对应的第二头发流动数据;其中,每个所述第二头发流动数据包括对应的所述头发子区域每个像素点的流动速度;
特效处理模块,用于获取时间参数,基于所述时间参数、每个所述头发子区域对应的第二头发流动数据以及所述原始图像,生成头发流动特效视频。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1~11任一项所述人像头发流动特效处理方法的步骤。
14.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储计算机程序;
其中,所述处理器配置为经由执行所述计算机程序来执行权利要求1~11任一项所述人像头发流动特效处理方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111477583.3A CN114219877B (zh) | 2021-12-06 | 人像头发流动特效处理方法、装置、介质和电子设备 | |
PCT/CN2022/130618 WO2023103684A1 (zh) | 2021-12-06 | 2022-11-08 | 人像头发流动特效处理方法、装置、介质和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111477583.3A CN114219877B (zh) | 2021-12-06 | 人像头发流动特效处理方法、装置、介质和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114219877A true CN114219877A (zh) | 2022-03-22 |
CN114219877B CN114219877B (zh) | 2024-06-25 |
Family
ID=
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023103684A1 (zh) * | 2021-12-06 | 2023-06-15 | 北京字节跳动网络技术有限公司 | 人像头发流动特效处理方法、装置、介质和电子设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180005428A1 (en) * | 2016-06-29 | 2018-01-04 | Carlos Montero | Method and apparatus for generating graphic images |
US20180268591A1 (en) * | 2015-02-15 | 2018-09-20 | Zhejiang University | Real-Time Animation Method for Hair-Object Collisions |
CN111047675A (zh) * | 2018-10-11 | 2020-04-21 | 真玫智能科技(深圳)有限公司 | 一种头发仿真的方法及装置 |
CN111583367A (zh) * | 2020-05-22 | 2020-08-25 | 构范(厦门)信息技术有限公司 | 一种头发模拟方法及系统 |
CN111986212A (zh) * | 2020-08-20 | 2020-11-24 | 杭州趣维科技有限公司 | 一种人像发丝流动特效实现方法 |
CN112884637A (zh) * | 2021-01-29 | 2021-06-01 | 北京市商汤科技开发有限公司 | 特效生成方法、装置、设备及存储介质 |
US20210374995A1 (en) * | 2020-06-01 | 2021-12-02 | Beijing Dajia Internet Information Technology Co., Ltd. | Method and electronic device for processing images |
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180268591A1 (en) * | 2015-02-15 | 2018-09-20 | Zhejiang University | Real-Time Animation Method for Hair-Object Collisions |
US20180005428A1 (en) * | 2016-06-29 | 2018-01-04 | Carlos Montero | Method and apparatus for generating graphic images |
CN111047675A (zh) * | 2018-10-11 | 2020-04-21 | 真玫智能科技(深圳)有限公司 | 一种头发仿真的方法及装置 |
CN111583367A (zh) * | 2020-05-22 | 2020-08-25 | 构范(厦门)信息技术有限公司 | 一种头发模拟方法及系统 |
US20210374995A1 (en) * | 2020-06-01 | 2021-12-02 | Beijing Dajia Internet Information Technology Co., Ltd. | Method and electronic device for processing images |
CN111986212A (zh) * | 2020-08-20 | 2020-11-24 | 杭州趣维科技有限公司 | 一种人像发丝流动特效实现方法 |
CN112884637A (zh) * | 2021-01-29 | 2021-06-01 | 北京市商汤科技开发有限公司 | 特效生成方法、装置、设备及存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023103684A1 (zh) * | 2021-12-06 | 2023-06-15 | 北京字节跳动网络技术有限公司 | 人像头发流动特效处理方法、装置、介质和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2023103684A1 (zh) | 2023-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109671126B (zh) | 使用神经网络预测分块位移图 | |
CN110188760B (zh) | 一种图像处理模型训练方法、图像处理方法及电子设备 | |
KR102107709B1 (ko) | 공간 트랜스포머 모듈들 | |
CN109771951B (zh) | 游戏地图生成的方法、装置、存储介质和电子设备 | |
US8717390B2 (en) | Art-directable retargeting for streaming video | |
JP2006012166A (ja) | カラーセグメンテーションに基づくステレオ3次元再構成システムおよびプロセス | |
CN110516598B (zh) | 用于生成图像的方法和装置 | |
CN111104837A (zh) | 移动设备和相关视频编辑方法 | |
US20230082050A1 (en) | Universal style transfer using multi-scale feature transform and user controls | |
CN111915587B (zh) | 视频处理方法、装置、存储介质和电子设备 | |
US9786055B1 (en) | Method and apparatus for real-time matting using local color estimation and propagation | |
AU2019200269B2 (en) | An interactive user interface and its corresponding engine for improving image completion quality | |
CN114219877A (zh) | 人像头发流动特效处理方法、装置、介质和电子设备 | |
JP5473096B2 (ja) | イメージベースドビジュアルハルにおける凹状表面のモデリング | |
CN114219877B (zh) | 人像头发流动特效处理方法、装置、介质和电子设备 | |
CN115272575B (zh) | 图像生成方法及装置、存储介质和电子设备 | |
CN115457206A (zh) | 三维模型生成方法、装置、设备及存储介质 | |
CN115619904A (zh) | 图像处理方法、装置及设备 | |
US20230368340A1 (en) | Gating of Contextual Attention and Convolutional Features | |
US9330434B1 (en) | Art-directable retargeting for streaming video | |
JP2023526860A (ja) | 階層化ニューラルレンダリングによる映像中のオブジェクトのリタイミング | |
WO2019186833A1 (ja) | 画像処理装置、画像処理方法、及び、コンピュータ読み取り可能な記録媒体 | |
CN110689609A (zh) | 图像处理方法、装置、电子设备及存储介质 | |
CN117201874B (zh) | 一种人脸图像替换方法、装置、电子设备及存储介质 | |
US20220383628A1 (en) | Conditional Object-Centric Learning with Slot Attention for Video and Other Sequential Data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |