CN112614227B - 图像特效的实现方法、装置、电子设备及存储介质 - Google Patents
图像特效的实现方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN112614227B CN112614227B CN202011498009.1A CN202011498009A CN112614227B CN 112614227 B CN112614227 B CN 112614227B CN 202011498009 A CN202011498009 A CN 202011498009A CN 112614227 B CN112614227 B CN 112614227B
- Authority
- CN
- China
- Prior art keywords
- grid
- special effect
- dot product
- product operation
- preset
- 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.)
- Active
Links
- 230000000694 effects Effects 0.000 title claims abstract description 292
- 238000000034 method Methods 0.000 title claims abstract description 61
- 239000013598 vector Substances 0.000 claims abstract description 137
- 238000009877 rendering Methods 0.000 claims abstract description 16
- 230000006870 function Effects 0.000 claims description 27
- 238000012545 processing Methods 0.000 claims description 23
- 239000011159 matrix material Substances 0.000 claims description 7
- 238000010606 normalization Methods 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 24
- 238000004891 communication Methods 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 238000004590 computer program Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000005236 sound signal Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000004576 sand Substances 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 102100029469 WD repeat and HMG-box DNA-binding protein 1 Human genes 0.000 description 1
- 101710097421 WD repeat and HMG-box DNA-binding protein 1 Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000004397 blinking Effects 0.000 description 1
- 239000002537 cosmetic Substances 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 229910003460 diamond Inorganic materials 0.000 description 1
- 239000010432 diamond Substances 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 238000010438 heat treatment Methods 0.000 description 1
- 238000000265 homogenisation Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
- G06T15/205—Image-based rendering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/80—Shading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Computing Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Software Systems (AREA)
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请提供了一种图像特效的实现方法、装置、电子设备及存储介质,该方法包括:获取包括多个网格单元的网格模型,每个网格单元用于表示一个特效对象;为每个网格单元添加一个随机法向量,随机法向量用于反映特效对象的朝向;针对网格模型的每个网格单元,将网格单元对应的视线向量与网格单元的随机法向量进行点积运算,得到点积运算结果;按照所述网格单元的点积运算结果对所述网格单元进行渲染,生成第一图像特效。本申请中,通过将网格单元基于随机法向量和视线向量得到的点积运算结果作为图像特效的展示参数,提供了一种高真实感的特效功能;另外,结构简单的网格模型对计算资源的依赖不高,降低了终端的计算量。
Description
技术领域
本申请实施例涉及图像处理技术领域,尤其涉及一种图像特效的实现方法、装置、电子设备及存储介质。
背景技术
在美妆滤镜应用中,沙砾闪烁特效是一种提升美妆质感的图像特效,沙砾闪烁特效常常用于亮片眼影美妆上面。这类效果是模拟沙砾在光的照射下,光线反射到视点中的现象。
相关技术中,具有两种方式实现砂砾闪烁特效,方式一,通过预先定义的一系列固定的沙砾闪烁效果图像,然后根据时间去获取当前应展示的图像,通过循环播放机制来模拟闪烁效果。方式二,采用程序化噪声生成技术,根据视线、光线、人脸几何数据来产生一组噪声数据,噪声数据对预先准备好的特效图像进行干扰,从而模拟特效对象在不同视线、光线下的闪烁效果。
但是,目前方案中,方案一的图像素材的设计较为繁琐,且图像特效只是一个序列帧动画,效果呆板,普适性较差。方案二中噪声数据的生成和计算需要消耗大量的计算资源,最终使得终端发烫严重。
发明内容
本申请实施例提供一种图像特效的实现方法、装置、电子设备及存储介质,以解决相关技术中图像特效的效果呆板,普适性较差,针对图像特效的噪声数据的生成和计算,需要消耗大量的计算资源的问题。
第一方面,本申请实施例提供了一种图像特效的实现方法,该方法包括:
获取包括多个网格单元的网格模型,每个所述网格单元用于表示一个特效对象;
为每个所述网格单元添加一个随机法向量,所述随机法向量用于反映所述特效对象的朝向;
针对所述网格模型的每个网格单元,将所述网格单元对应的视线向量与所述网格单元的随机法向量进行点积运算,得到点积运算结果,所述视线向量用于反映由参与点积运算的网格单元指向视点的视线;
按照所述网格单元的点积运算结果对所述网格单元进行渲染,生成第一图像特效。
在一种可选实施方式中,在所述针对所述网格模型的每个网格单元,将所述网格单元对应的视线向量与所述网格单元的随机法向量进行点积运算,得到点积运算结果之后,所述方法还包括:
针对所述网格模型的每个网格单元,将第一预设速度系数作为幂次,对所述网格单元的点积运算结果进行幂次运算,得到第一幂次运算结果,所述第一预设速度系数用于控制所述特效对象的闪烁速度;
或,针对所述网格模型的每个网格单元,将第一预设明暗系数与所述网格单元的点积运算结果进行乘积运算,得到第一乘积结果,所述第一预设明暗系数用于控制所述特效对象的明暗程度;
按照所述网格单元的第一幂次运算结果或第一乘积结果对所述网格单元进行渲染,生成第二图像特效。
在一种可选实施方式中,在所述将第一预设速度系数作为幂次,对所述网格单元的点积运算结果进行幂次运算,得到第一幂次运算结果的情况下,所述方法还包括:
针对所述网格模型的每个网格单元,将第二预设明暗系数与所述网格单元的第一幂次运算结果进行乘积运算,得到第二乘积结果,所述第二预设明暗系数用于控制所述特效对象的明暗程度;
按照所述网格单元的第二乘积结果对所述网格单元进行渲染,生成第三图像特效。
在一种可选实施方式中,在所述将第一预设明暗系数与所述网格单元的点积运算结果进行乘积运算,得到第一乘积结果的情况下,所述方法还包括:
针对所述网格模型的每个网格单元,将第二预设速度系数作为幂次,对所述所述网格单元的第一乘积结果进行幂次运算,得到第二幂次运算结果,所述第二预设速度系数用于控制所述特效对象的闪烁速度;
按照所述网格单元的第二幂次运算结果对所述网格单元进行渲染,生成第四图像特效。
在一种可选实施方式中,所述方法还包括:
通过预设密度系数,控制对每个所述网格单元进行点积运算的次数,并仅保留每个所述网格单元最大的点积运算结果,从而调整所述网格模型中亮度大于或等于预设亮度阈值的网格单元的数量,每个所述网格单元在进行不同的点积运算时添加有不同的随机法向量,所述网格单元对应的特效对象的亮度,随着所述网格单元的点积运算结果的增大而增大。
在一种可选实施方式中,所述方法还包括:
针对所述网格模型的每个网格单元,将预设旋转矩阵与所述网格单元的位置坐标进行乘积运算,从而调整所述网格单元的形状。
在一种可选实施方式中,所述为每个所述网格单元添加一个随机法向量,包括:
获取每个所述网格单元在网格模型中的索引坐标,所述索引坐标反映了所述网格单元在所述网格模型中的相对位置;
将所述索引坐标输入随机函数,得到所述随机函数输出的每个所述网格单元的随机法向量。
在一种可选实施方式中,在所述将所述网格单元对应的视线向量与所述网格单元的随机法向量进行点积运算,得到点积运算结果之前,所述方法还包括:
将所述随机法向量的每个分量减去预设分量值;
对所述随机法向量进行归一化处理。
第二方面,本申请实施例提供了一种图像特效的实现装置,该装置包括:
获取模块,被配置为获取包括多个网格单元的网格模型,每个所述网格单元用于表示一个特效对象;
添加模块,被配置为为每个所述网格单元添加一个随机法向量,所述随机法向量用于反映所述特效对象的朝向;
点积模块,被配置为针对所述网格模型的每个网格单元,将所述网格单元对应的视线向量与所述网格单元的随机法向量进行点积运算,得到点积运算结果,所述视线向量用于反映由参与点积运算的网格单元指向视点的视线;
第一展示模块,被配置为按照所述网格单元的点积运算结果对所述网格单元进行渲染,生成第一图像特效。
在一种可选实施方式中,所述装置还包括:
第一幂次模块,被配置为针对所述网格模型的每个网格单元,将第一预设速度系数作为幂次,对所述网格单元的点积运算结果进行幂次运算,得到第一幂次运算结果,所述第一预设速度系数用于控制所述特效对象的闪烁速度;
或,第一乘积模块,被配置为针对所述网格模型的每个网格单元,将第一预设明暗系数与所述网格单元的点积运算结果进行乘积运算,得到第一乘积结果,所述第一预设明暗系数用于控制所述特效对象的明暗程度;
第二展示模块,被配置为按照所述网格单元的第一幂次运算结果或第一乘积结果对所述网格单元进行渲染,生成第二图像特效。
在一种可选实施方式中,在所述将第一预设速度系数作为幂次,对所述网格单元的点积运算结果进行幂次运算,得到第一幂次运算结果的情况下,所述装置还包括:
第二幂次模块,被配置为针对所述网格模型的每个网格单元,将第二预设明暗系数与所述网格单元的第一幂次运算结果进行乘积运算,得到第二乘积结果,所述第二预设明暗系数用于控制所述特效对象的明暗程度;
第三展示模块,被配置为按照所述网格单元的第二乘积结果对所述网格单元进行渲染,生成第三图像特效。
在一种可选实施方式中,在所述将第一预设明暗系数与所述网格单元的点积运算结果进行乘积运算,得到第一乘积结果的情况下,所述装置还包括:
第二乘积模块,被配置为针对所述网格模型的每个网格单元,将第二预设速度系数作为幂次,对所述所述网格单元的第一乘积结果进行幂次运算,得到第二幂次运算结果,所述第二预设速度系数用于控制所述特效对象的闪烁速度;
第四展示模块,被配置为按照所述网格单元的第二幂次运算结果对所述网格单元进行渲染,生成第四图像特效。
在一种可选实施方式中,所述装置还包括:
密度设置模块,被配置为通过预设密度系数,控制对每个所述网格单元进行点积运算的次数,并仅保留每个所述网格单元最大的点积运算结果,从而调整所述网格模型中亮度大于或等于预设亮度阈值的网格单元的数量,每个所述网格单元在进行不同的点积运算时添加有不同的随机法向量,所述网格单元对应的特效对象的亮度,随着所述网格单元的点积运算结果的增大而增大。
在一种可选实施方式中,所述装置还包括:
网格单元设置模块,被配置为针对所述网格模型的每个网格单元,将预设旋转矩阵与所述网格单元的位置坐标进行乘积运算,从而调整所述网格单元的形状。
在一种可选实施方式中,所述添加模块,包括:
第一获取子模块,被配置为获取每个所述网格单元在网格模型中的索引坐标,所述索引坐标反映了所述网格单元在所述网格模型中的相对位置;
随机函数子模块,被配置为将所述索引坐标输入随机函数,得到所述随机函数输出的每个所述网格单元的随机法向量。
在一种可选实施方式中,其特征在于,所述装置还包括:
均匀处理模块,被配置为将所述随机法向量的每个分量减去预设分量值;
归一处理模块,被配置为对所述随机法向量进行归一化处理。
第三方面,本申请实施例还提供了一种电子设备,包括用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现所述的图像特效的实现方法。
第四方面,本申请实施例还提供了一种存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行所述的图像特效的实现方法。
第五方面,本申请实施例还提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现所述的图像特效的实现方法。
在本申请实施例中,可以提出一种参数化的网格模型,通过网格单元的随机法向量和视线向量的点积运算结果,反映该网格单元对应的特效对象的真实物理特性,使得该图像特效的效果真实、丰富,普适性较强,另外,本申请仅通过结构简单的网格模型,以及针对网格单元的简单运算即可实现对图像特效的模拟,该方法对计算资源的依赖不高,计算量不大,一定程度上降低了终端的图像处理器的使用率,降低了终端的发热量。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1是本申请实施例提供的一种图像特效的实现方法的步骤流程图;
图2是本申请实施例提供的一种特效对象的简化模型示意图;
图3是本申请实施例提供的一种网格模型示意图;
图4是本申请实施例提供的另一种图像特效的实现方法的步骤流程图;
图5是本申请实施例提供的一种网格模型的索引坐标示意图;
图6是本申请实施例提供的一种随机法向量的分布示意图;
图7是本申请实施例提供的一种特效对象的分布示意图;
图8是本申请实施例提供的另一种特效对象的分布示意图;
图9是本申请实施例提供的另一种特效对象的分布示意图;
图10是本申请实施例提供的另一种特效对象的分布示意图;
图11是本申请实施例提供的一种网格面的示意图;
图12是本申请实施例提供的一种图像特效的实现装置的框图;
图13是本申请一个实施例的电子设备的逻辑框图;
图14是本申请另一个实施例的电子设备的逻辑框图。
具体实施方式
下面将参照附图更详细地描述本申请的示例性实施例。虽然附图中显示了本申请的示例性实施例,然而应当理解,可以以各种形式实现本申请而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本申请,并且能够将本申请的范围完整的传达给本领域的技术人员。
图1是本申请实施例提供的一种图像特效的实现方法的步骤流程图,如图1所示,该方法可以包括:
步骤101,获取包括多个网格单元的网格模型,每个所述网格单元用于表示一个特效对象。
在本申请实施例中,砂砾图像特效可以模拟许多数量的特效对象在光的照射下,光线反射到视点中的现象,随着砂砾对应的朝向的不同以及视点的移动,砂砾对应的光反射路径会发生变化,其反射强度呈现一种由弱到强,或由强到弱的状态,从而形成砂砾在亮暗状态下不断闪烁的效果。需要说明的是,本申请实施例还可以适用于其他类型的闪烁型图像特效,如特效对象为钻石、玻璃片等类型的图像特效,这种图像特效同样可以达到多个特效对象发生明暗闪烁的效果。
具体的,参照图2,其示出了本申请实施例提供的一种特效对象的简化模型示意图,该特效对象可以为砂砾,通过对特效对象的物理特性以及图像特效的需求的分析,可以将一个特效对象简化为一个具有法向量的网格单元,其中,法向量可以反映该特效对象的朝向,而光线照射特效对象的效果与特效对象的朝向强相关,这就使得在光线照射特效对象时,光线方向是从光源射向特效对象,而视线方向是从特效对象射向视点。
因此,在本申请实施例中,参照图3,其示出了本申请实施例提供的一种网格模型示意图,可以通过对砂砾特效对象的模型简化,将一个砂砾特效对象构建为一个网格单元11,并构建包括多个网格单元11的均匀的网格模型10,通过网格模型来反映多个砂砾。在砂砾闪烁的特效中,可以认为砂砾特效对象的法向量12是固定的,变换的是视点位置,也就是反映视线方向的视线向量。
步骤102、为每个所述网格单元添加一个随机法向量,所述随机法向量用于反映所述特效对象的朝向。
参照图2,在对一个简化为网格单元的特效对象进行真实物理特性的模拟时,为该网格单元添加的法向量可以用于反映该特效对象的朝向,在图2中,当一个网格单元的法向量与该网格单元的表面垂直时,说明该特效对象的朝向为正,此时的光线、视线如图2所示。
但是,在实际物理架构中,特效对象的朝向不可能永远为正,不同的特效对象的朝向可能不同,因此,在本申请实施例中,参照图3,可以为每个网格单元11添加一个具有随机朝向的随机法向量12,从而达到真实物理环境中特效对象随机朝向的特性。
步骤103、针对所述网格模型的每个网格单元,将所述网格单元对应的视线向量与所述网格单元的随机法向量进行点积运算,得到点积运算结果,所述视线向量用于反映由参与点积运算的网格单元指向视点的视线。
在本申请实施例中,为了模拟图像特效的真实物理场景,可以在构建图像特效的过程中引入视线,引入视线可以使得随着视线的变化,特效对象对光的反射路径会发生变化,从而可以显示出闪烁的效果。
具体的,本申请实施例可以设定一个固定的目标视线向量,也可以设定一个不断变化的目标视线向量,以目标视线向量对随机法向量做点积运算,得到每个网格单元的点积运算结果,根据向量点积定义可知:两个单位向量的夹角越小,他们的点积结果越接近于1;两个单位向量的夹角越大,点积结果越接近-1,一般来说,当点积运算的点积运算结果小于或等于0时,可以认为该特效对象不反光,不作显示,当点积运算的点积运算结果大于0时,可以认为该特效对象反光并进行显示。
因此,本申请实施例可以将网格单元的点积运算结果作为特效对象闪烁变化的量值,点积运算结果的值越小,特效对象越暗;点积运算结果的值越大,特效对象越亮。当视点与特效对象形成的视线方向与随机法向量作向量点积时,可以使得每个特效对象表现出不同的明暗效果。
例如,假设网格模型中,反映一个特效对象的网格单元的随机法向量为(0.0,1.0,0.0),目标视线向量为则/>
步骤104、按照所述网格单元的点积运算结果对所述网格单元进行渲染,生成第一图像特效。
在本申请实施例中,由于每个网格单元具有对应的法向量以及由视点确定的视点向量,因此,法向量和视点的点积运算结果,可以,从而能够构建一个模拟了真实物理环境的图像特效,具体的,网格单元的点积运算结果可以作为该网格单元的渲染参数,并在根据点积运算结果对网格单元进行渲染后,生成第一图像特效,第一图像特效用于反映网格单元对应的特效对象在真实物理环境中的亮暗闪烁效果。
进一步的,通过一些配置参数与网格单元的点积运算结果进行进一步运算,可以改变网格单元对应的特效对象的展示效果,如亮暗、闪烁速度、大小、数量等,本申请实施例可以通过调整配置参数的值的大小,影响到闪烁效果的对应指标的强度。
如,配置参数可以包括对特效对象亮暗程度进行调整的参数、对特效对象数量和密度调整的参数、对特效对象闪烁速度调整的参数等。通过相应调制这些参数的值的大小,可以调整网格模型中网格单元对应的特效对象在展示时的数量、密度、亮暗、闪烁速度等指标。
在本申请实施例中,在目标应用场景中具体应用图像特效时,一种实现方式可以通过图像特效构建一个模拟了真实物体特性(视线、特效对象朝向、数量、亮暗、闪烁速度等)的图像特效贴图,并可以由用户将该图像特效贴图添加至视频或图像中的对应位置,达到提升多媒体内容美感的目的。另一种实现方式中,图像特效可以应用于人脸图像,具体为将图像特效添加人脸的眼影美妆上,实现眼影的亮片美妆。
综上所述,本申请实施例提供的一种图像特效的实现方法,本申请提出了一种参数化的网格模型,通过网格单元的随机法向量和视线向量的点积运算结果,反映该网格单元对应的特效对象的真实物理特性,使得该图像特效的效果真实、丰富,普适性较强,另外,本申请仅通过结构简单的网格模型,以及针对网格单元的简单运算即可实现对图像特效的模拟,该方法对计算资源的依赖不高,计算量不大,一定程度上降低了终端的图像处理器的使用率,降低了终端的发热量。
图4是本申请实施例提供的另一种图像特效的实现方法的步骤流程图,如图4所示,该方法可以包括:
步骤201、获取包括多个网格单元的网格模型,每个所述网格单元用于表示一个特效对象。
本步骤的实现方式与上述步骤101的实现过程类似,本申请实施例在此不再详述。
步骤202、为每个所述网格单元添加一个随机法向量,所述随机法向量用于反映所述特效对象的朝向。
本步骤的实现方式与上述步骤102的实现过程类似,本申请实施例在此不再详述。
可选的,步骤202具体可以包括:
子步骤2021、获取每个所述网格单元在网格模型中的索引坐标,所述索引坐标反映了所述网格单元在所述网格模型中的相对位置。
子步骤2022、将所述索引坐标输入随机函数,得到所述随机函数输出的每个所述网格单元的随机法向量。
在本申请实施例中,可以利用随机函数进行随机法向量的生成,每个网格单元都具有在网格模型中的索引坐标,随机函数可以以网格单元在网格模型中的索引坐标为输入,以网格单元对应的随机法向量为输出。
具体的,本申请实施例可以建立网格模型对应的坐标系,从而确定每个网格单元在网格模型中的索引坐标,参照图5,其示出了本申请实施例提供的一种网格模型的索引坐标示意图,假设网格模型包括4×4的网格面,则可以将该网格模型作为一个坐标系,从左至右表示X轴,从下至上表示Y轴,于是每个网格单元都有一个可供表示的索引坐标值,来反映该网格单元在网格模型中的索引坐标。在实现过程中,可通过取整函数获取特效对象对应的网格单元的索引坐标,随后使用随机函数生成该网格单元的随机法向量。
需要说明的是,随机函数就是产生数的函数,如在C语言中,随机函数可以为rand(),srand()等函数。函数rand()就是生成伪随机数的函数,伪随机数生成函数依赖于一个初值,也称为种子,其通过初值来生成对应的随机数序列,函数rand()可以采用输入的初值(种子),从预定义的区间([0,1])中生成一个伪随机数,只要初值确定了,函数rand()所生成的伪随机数就是完全确定的。
可选的,在子步骤2022之后,还可以包括:
子步骤2023、将所述随机法向量的每个分量减去预设分量值。
子步骤2024、对所述随机法向量进行归一化处理。
在真实环境中,特效对象并不是始终反射光线的,这些是由反映特效对象朝向的法向量决定的,如,有的特效对象的朝向可以产生反射光,该特效对象则表现出发光状态;有的特效对象的朝向则不会产生反射光,使得该特效对象表现出为黑色不发光状态。
网格模型模拟图像特效的过程中,网格单元的随机法向量与反映用户视线的视线向量进行点积运算的结果,可以表达该网格单元对应的特效对象的亮暗变化,并且,一个随机法向量由3个分量构成,每个分量的范围是0.0~1.0,为了模拟真实的物理环境,使得特效对象均匀化,本申请实施例可以将随机法向量的每个分量的范围减去0.5,使得每个分量的范围变化为-0.5~0.5,之后再通过对随机法向量进行归一化处理,将随机法向量均匀化。
在本申请实施例中,将随机法向量的每个分量的范围减去0.5是为了更好的让随机法向量朝向均匀,均匀化的目的是为了随机法向量分布均匀,不至于分布到部分区域,参照图6,其示出了本申请实施例提供的一种随机法向量的分布示意图,其中,左上角的分布表示每个分量的范围减去0.9的效果,代表随机法向量朝向主要分布到了人脸网格的后面;右下角的分布表示每个分量的范围减去0的效果,代表随机法向量主要集中在人脸网格左下角;左下角的分布表示每个分量的范围减去0.3的效果,代表随机法向量主要集中在人脸网格左下角(但相较减去0分布更均匀一些);右上角的分布表示每个分量的范围减去0.5的效果,代表随机法向量在各方向上朝向均匀。
具体的,参照图7,其示出了本申请实施例提供的一种特效对象的分布示意图,展示了归一化处理之后的各个特效对象的随机法向量,其中,有灰度的方块表示随机法向量的3个分量都大于0,黑色区域表示3个分量中存在至少一个分量小于0,因此,这些黑色区域可以认为是特效对象不发光的区域,使得黑色区域代表的特效对象在与视线向量进行点积运算后结果始终小于0,最终表现为黑色区域代表的特效对象不发光。有灰度的区域表示发光的特效对象,使得有灰度区域代表的特效对象在与视线向量进行点积运算后结果处于0.0~1.0,最终表现为随着视线的移动,有灰度区域代表的特效对象会出现明暗变化的现象。
步骤203、针对所述网格模型的每个网格单元,将所述网格单元对应的视线向量与所述网格单元的随机法向量进行点积运算,得到点积运算结果,所述视线向量用于反映由参与点积运算的网格单元指向视点的视线。
本步骤的实现方式与上述步骤103的实现过程类似,本申请实施例在此不再详述。
步骤204、按照所述网格单元的点积运算结果对所述网格单元进行渲染,生成第一图像特效。
本步骤的实现方式与上述步骤104的实现过程类似,本申请实施例在此不再详述。
可选的,在步骤203之后,还可以包括:
步骤205、针对所述网格模型的每个网格单元,将第一预设速度系数作为幂次,对所述网格单元的点积运算结果进行幂次运算,得到第一幂次运算结果,所述第一预设速度系数用于控制所述特效对象的闪烁速度。
在本申请实施例中,根据网格单元的点积运算结果构建的图像特效已可以满足不同应用场景下的需求,从而达到图像特效的普适性,即在各个应用场景下,都可以通过调整图像特效的展示效果,来使得图像特效的展示效果能够满足该应用场景下的需求。
具体的,本申请实施例可以进一步针对网格模型设置可供调整的配置参数,可以使得用户在不同应用场景下,能够进一步通过调整网格模型的配置参数,来达到改变图像特效的展示效果的目的,从而达到更高的普适性需求。
其中,根据对图像特效展示效果的需求的总结,配置参数可以包括对特效对象亮暗程度进行调整的参数、对特效对象数量和密度调整的参数、对特效对象闪烁速度调整的参数等。这些配置参数通过融入网格模型的内部计算过程,从而影响到图像特效展示效果。
在该步骤中,不同应用场景下,对图像特效中特效对象的闪烁速度具有不同的需求,闪烁速度可以认为是特效对象由亮变暗或由暗变亮的速度。本申请实施例可以在构建特效对象的网格模型时,引入第一预设速度系数来调整特效对象的闪烁速度。
具体的,可以在步骤203的点积运算得到的点积运算结果的基础上,通过第一预设速度系数对点积运算结果进行幂次运算得到第一幂次运算结果,来实现对特效对象的闪烁速度的控制。需要说明的是,第一预设速度系数的值用于控制闪烁速度的快慢,第一预设速度系数的值越大,闪烁越块,第一预设速度系数的值一般取100以上,例如100、150、200等。
进一步的,在执行了步骤203之后,点积运算结果的范围处于-1.0~1.0,为了简化计算,可以不关心点积运算结果中小于0.0的部分,因为这部分始终是暗部,不做显示,具体可以通过使用clamp函数将点积运算结果钳制到0.0~1.0。从而将一个小于1.0的值进行基于第一预设速度系数的幂次运算,得到第一幂次运算结果,第一预设速度系数越大,运算后结果越小,因此第一预设速度系数控制了特效对象闪烁的快慢程度;因为特效对象的随机法向量是不变的,只要视点稍有细微变化,将会导致特效对象有明显的闪烁。
需要说明的是,第一预设速度系数也会影响特效对象的亮度,该值越大,只要目标视线向量与特效对象的随机法向量稍微不一致,将会导致特效对象的亮度变得很暗,最终看起来像是该特效对象不存在,如图8所示,其示出了本申请实施例提供的另一种特效对象的分布示意图,其中,右下角的分布为第一预设速度系数的值取200,可以看出特效对象的数量从视觉上看减少了很多。左下角的分布为第一预设速度系数的值取100;右上角的分布为第一预设速度系数的值取50;左上角的分布为第一预设速度系数的值取10,可以看出,随着第一预设速度系数的取值越小,特效对象的数量从视觉上看不断增多。
步骤206、按照所述网格单元的第一幂次运算结果对所述网格单元进行渲染,生成第二图像特效。
在本申请实施例中,用户可以通过第一预设速度系数对网格单元的点积运算结果进行进一步的幂次运算,可以达到调整网格单元对应的特效对象的闪烁速度的目的,从而达到满足用户的个性化需求的目的。
可选的,在步骤205之后,所述方法还可以包括:
步骤207、针对所述网格模型的每个网格单元,将第二预设明暗系数与所述网格单元的第一幂次运算结果进行乘积运算,得到第二乘积结果,所述第二预设明暗系数用于控制所述特效对象的明暗程度。
在本申请实施例中,还可以在构建图像特效的过程中,引入一个总体控制特效对象亮度的第二预设明暗系数,第二预设明暗系数的值越大,特效对象看起来越明亮。第二预设明暗系数的范围可以为1.0~3.0。
参照图9,其示出了本申请实施例提供的另一种特效对象的分布示意图,其中,右下角的分布为第二预设明暗系数的值取2.0;左下角的分布为第二预设明暗系数的值取1.5;右上角的分布为第二预设明暗系数的值取1.0;左上角的分布为第二预设明暗系数的值取0.5。可以看出,随着第二预设明暗系数的不断增大,特效对象的亮度明显增强。
步骤208、按照所述网格单元的第二乘积结果对所述网格单元进行渲染,生成第三图像特效。
在本申请实施例中,用户可以通过第而预设速度系数对网格单元的第一幂次运算结果进行进一步的乘积运算,可以达到调整网格单元对应的特效对象的亮暗程度的目的,从而达到满足用户的个性化需求的目的。
可选的,在步骤203之后,还可以包括:
步骤209、针对所述网格模型的每个网格单元,将第一预设明暗系数与所述网格单元的点积运算结果进行乘积运算,得到第一乘积结果,所述第一预设明暗系数用于控制所述特效对象的明暗程度.
步骤210、按照所述网格单元的第一乘积结果对所述网格单元进行渲染,生成第二图像特效。
在本申请实施例的另一种实现方式中,还可以在步骤203的点积运算得到的点积运算结果的基础上,先通过第一预设明暗系数对点积运算结果进行乘积运算得到第一乘积运算结果,来实现对特效对象的亮暗的控制。
可选的,在步骤209之后,还可以包括:
步骤211、针对所述网格模型的每个网格单元,将第二预设速度系数作为幂次,对所述所述网格单元的第一乘积结果进行幂次运算,得到第二幂次运算结果,所述第二预设速度系数用于控制所述特效对象的闪烁速度。
步骤212、按照所述网格单元的第二幂次运算结果对所述网格单元进行渲染,生成第四图像特效。
在本申请实施例的另一种实现方式中,在步骤209的乘积运算得到的第一乘积运算结果的基础上,可以再通过第二预设速度系数对第一乘积运算结果进行幂次运算得到第二乘积运算结果,来进一步实现对特效对象的闪烁速度的控制。
可选的,在一种实现方式中,所述方法还可以包括:
步骤213、根据网格单元的运算结果生成图像特效贴图。
步骤214、根据接收到的移动操作,将所述图像特效贴图移动至目标图像中的目标位置。
在应用场景中具体应用图像特效时,一种实现方式可以通过网格模型中网格单元的运算结果构建一个图像特效贴图,并可以由用户将该图像特效贴图添加至与目标应用场景对应的目标图像中的对应位置,达到提升多目标图像美感的目的。
如,针对夜拍场景,获取夜拍图像,并在夜拍场景下通过对应的目标图像对网格模型进行配置,从而得到符合夜拍需求的图像特效的目标网格模型,在利用目标网格模型生成图像特效贴图后,可以由用户根据移动操作,将图像特效贴图移动至夜拍图像的对应位置,从而实现图像特效的添加。
可选的,在另一种实现方式中,所述方法还可以包括:
步骤215、获取人脸图像。
步骤216、提取与所述人脸图像匹配的人脸网格模型。
步骤217、根据所述人脸网格模型、所述人脸图像和所述网格模型,得到具有网格模型对应的图像特效的人脸图像。
在应用场景中具体应用图像特效时,另一种实现方式可以为人脸图像中眼部美妆的图像特效添加场景,具体的,可以先获取目标应用场景对应的人脸图像,提取与人脸图像匹配的人脸网格模型,经网格模型可以以人脸网格模型和人脸图像为模型输入,自动根据人脸网格模型确定到人脸图像的眼部区域,并将生成的图像特效添加至该眼部区域,从而实现了目标应用场景下,人脸图像中眼部闪烁的亮片特效的添加,增加了美妆效果。
可选的,所述方法还可以包括:
步骤218、通过预设密度系数,控制对每个所述网格单元进行点积运算的次数,并仅保留每个所述网格单元最大的点积运算结果,从而调整所述网格模型中亮度大于或等于预设亮度阈值的网格单元的数量。
在本申请实施例中,由于第一/第二预设速度系数取值较大会导致特效对象闪烁速度过快,从而带来视觉上特效对象减少的后果,为了降低第一/第二预设速度系数的取值较大带来的后果,本申请实施例可以引入一个预设密度系数,该预设密度系数的引入可以增加视觉上发光的亮片特效对象的数量,保证在预设速度系数的取值较大时也会让场景看起来有很多特效对象在闪烁的效果,可以在特效对象中亮片特效对象的数量一定时,通过调整预设密度系数来增加特效对象中亮片特效对象的密度,预设密度系数的值大于或等于1.0,例如可以以取2、3、4、5等。
具体的,预设密度系数可以调整每个网格单元进行点积运算的次数,如预设密度系数为2的情况下,每个网格单元执行两次点击运算,即对于一个网格单元,第一次点击运算为:该网格单元添加随机法向量A,并通过视线向量和随机法向量A的点积运算,得到该网格单元的第一点积运算结果;第二次点击运算为:该网格单元添加另一个随机法向量B,并通过视线向量和随机法向量B的点积运算,得到该网格单元的第二点积运算结果,通过比较第一点积运算结果和第二点积运算结果的大小,最后取其中的最大值为网格单元的最终运算值。对于预设密度系数为3、4…等值时,其计算过程可以依次类推。
由于点积运算结果的范围为-1-1之间,且点积运算结果大于0则代表网格单元对应的特效对象为亮片特效对象,点积运算结果越大,该网格单元对应的特效对象的亮度就越大,因此,在每个网格单元进行多次点积运算并仅保留最大点积运算结果后,可以提升网格单元为亮片的特效对象的几率,亮片的特效对象即指亮度大于或等于预设亮度阈值的网格单元所对应的特效对象,另外,网格单元执行点积运算的次数越多,该网格单元为亮片特效对象的几率越大,对于整个网格模型来说,其包含的亮片的特效对象的数量也就越多。
例如,参照图10,其示出了本申请实施例提供的另一种特效对象的分布示意图,其中,在预设速度系数取值为200时,右下角的分布为预设密度系数的值取8;左下角的分布为预设密度系数的值取4;右上角的分布为预设密度系数的值取2;左上角的分布为预设密度系数的值取1。可以看出,随着预设密度系数的不断增大,特效对象的密度明显增大。
可选的,所述方法还可以包括:
步骤219、根据所述网格单元数量系数,设置所述网格模型包括的网格单元的数量。
在本申请实施例中,根据目标应用场景的需求,也可以通过引入网格单元数量系数,来确定网格模型包括的网格单元的数量,由于网格模型的网格面的尺寸固定,因此,网格单元数量系数越大,特效对象的数量也就越大,每个特效对象的尺寸也就越小。例如,参照图11,其示出了本申请实施例提供的一种网格面的示意图,其中,a状态表示网格单元数量系数为4×4的网格面;b状态表示网格单元数量系数为8×8的网格面;c状态表示网格单元数量系数为16×16的网格面;d状态表示网格单元数量系数为32×32的网格面。
可选的,所述方法还可以包括:
步骤220、针对所述网格模型的每个网格单元,将预设旋转矩阵与所述网格单元的位置坐标进行乘积运算,从而调整所述网格单元的形状。
在本申请实施例中,还可以通过控制特效对象的形状,得到更丰富的特效对象闪烁特效,具体的,默认情况下,特效对象对应的网格单元的形状是一个标准的正方形,渲染出来的形状基本也是轴对称的,本申请是实施例可以通过一个旋转矩阵对特效对象对应的网格单元的形状进行变换,达到重新定义每个单元个的形状的目的,例如星形、十字形等,进一步控制特效对象的展示形状。
可选的,在步骤203之前,还可以包括:
步骤A1、将所述随机法向量的每个分量减去预设分量值。
步骤A2、对所述随机法向量进行归一化处理。
步骤A1至A2具体可以参照上述子步骤2023至2024,此处不再赘述。
综上所述,本申请实施例提供的一种图像特效的实现方法,本申请提出了一种参数化的网格模型,通过网格单元的随机法向量和视线向量的点积运算结果,反映该网格单元对应的特效对象的真实物理特性,使得该图像特效的效果真实、丰富,普适性较强,另外,本申请仅通过结构简单的网格模型,以及针对网格单元的简单运算即可实现对图像特效的模拟,该方法对计算资源的依赖不高,计算量不大,一定程度上降低了终端的图像处理器的使用率,降低了终端的发热量。
图12是本申请实施例提供的一种图像特效的实现装置的框图,如图12所示,包括:获取模块301、添加模块302、点积模块303、第一展示模块304。
获取模块301,被配置为获取包括多个网格单元的网格模型,每个所述网格单元用于表示一个特效对象;
添加模块302,被配置为为每个所述网格单元添加一个随机法向量,所述随机法向量用于反映所述特效对象的朝向;
点积模块303,被配置为针对所述网格模型的每个网格单元,将所述网格单元对应的视线向量与所述网格单元的随机法向量进行点积运算,得到点积运算结果,所述视线向量用于反映由参与点积运算的网格单元指向视点的视线;
第一展示模块304,被配置为按照所述网格单元的点积运算结果对所述网格单元进行渲染,生成第一图像特效。
在一种可选实施方式中,所述装置还包括:第一幂次模块,被配置为针对所述网格模型的每个网格单元,将第一预设速度系数作为幂次,对所述网格单元的点积运算结果进行幂次运算,得到第一幂次运算结果,所述第一预设速度系数用于控制所述特效对象的闪烁速度;
或,第一乘积模块,被配置为针对所述网格模型的每个网格单元,将第一预设明暗系数与所述网格单元的点积运算结果进行乘积运算,得到第一乘积结果,所述第一预设明暗系数用于控制所述特效对象的明暗程度;
第二展示模块,被配置为按照所述网格单元的第一幂次运算结果或第一乘积结果对所述网格单元进行渲染,生成第二图像特效。
在一种可选实施方式中,在所述将第一预设速度系数作为幂次,对所述网格单元的点积运算结果进行幂次运算,得到第一幂次运算结果的情况下,所述装置还包括:
第二幂次模块,被配置为针对所述网格模型的每个网格单元,将第二预设明暗系数与所述网格单元的第一幂次运算结果进行乘积运算,得到第二乘积结果,所述第二预设明暗系数用于控制所述特效对象的明暗程度;
第三展示模块,被配置为按照所述网格单元的第二乘积结果对所述网格单元进行渲染,生成第三图像特效。
在一种可选实施方式中,在所述将第一预设明暗系数与所述网格单元的点积运算结果进行乘积运算,得到第一乘积结果的情况下,所述装置还包括:
第二乘积模块,被配置为针对所述网格模型的每个网格单元,将第二预设速度系数作为幂次,对所述所述网格单元的第一乘积结果进行幂次运算,得到第二幂次运算结果,所述第二预设速度系数用于控制所述特效对象的闪烁速度;
第四展示模块,被配置为按照所述网格单元的第二幂次运算结果对所述网格单元进行渲染,生成第四图像特效。
在一种可选实施方式中,所述装置还包括:
密度设置模块,被配置为通过预设密度系数,控制对每个所述网格单元进行点积运算的次数,并仅保留每个所述网格单元最大的点积运算结果,从而调整所述网格模型中亮度大于或等于预设亮度阈值的网格单元的数量,每个所述网格单元在进行不同的点积运算时添加有不同的随机法向量,所述网格单元对应的特效对象的亮度,随着所述网格单元的点积运算结果的增大而增大。
在一种可选实施方式中,所述装置还包括:
网格单元设置模块,被配置为针对所述网格模型的每个网格单元,将预设旋转矩阵与所述网格单元的位置坐标进行乘积运算,从而调整所述网格单元的形状。
在一种可选实施方式中,所述添加模块,包括:
第一获取子模块,被配置为获取每个所述网格单元在网格模型中的索引坐标,所述索引坐标反映了所述网格单元在所述网格模型中的相对位置;
随机函数子模块,被配置为将所述索引坐标输入随机函数,得到所述随机函数输出的每个所述网格单元的随机法向量。
在一种可选实施方式中,其特征在于,所述装置还包括:
均匀处理模块,被配置为将所述随机法向量的每个分量减去预设分量值;
归一处理模块,被配置为对所述随机法向量进行归一化处理。
综上所述,本申请实施例提供的一种图像特效的实现装置,本申请提出了一种参数化的网格模型,通过网格单元的随机法向量和视线向量的点积运算结果,反映该网格单元对应的特效对象的真实物理特性,使得该图像特效的效果真实、丰富,普适性较强,另外,本申请仅通过结构简单的网格模型,以及针对网格单元的简单运算即可实现对图像特效的模拟,该方法对计算资源的依赖不高,计算量不大,一定程度上降低了终端的图像处理器的使用率,降低了终端的发热量。
图13是根据一示例性实施例示出的一种电子设备600的框图。例如,电子设备600可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图13,电子设备600可以包括以下一个或多个组件:处理组件602,存储器604,电力组件606,多媒体组件608,音频组件610,输入/输出(I/O)的接口612,传感器组件614,以及通信组件616。
处理组件602通常控制电子设备600的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件602可以包括一个或多个处理器620来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件602可以包括一个或多个模块,便于处理组件602和其他组件之间的交互。例如,处理组件602可以包括多媒体模块,以方便多媒体组件608和处理组件602之间的交互。
存储器604用于存储各种类型的数据以支持在电子设备600的操作。这些数据的示例包括用于在电子设备600上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器604可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件606为电子设备600的各种组件提供电力。电源组件606可以包括电源管理系统,一个或多个电源,及其他与为电子设备600生成、管理和分配电力相关联的组件。
多媒体组件608包括在所述电子设备600和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件608包括一个前置摄像头和/或后置摄像头。当电子设备600处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件610用于输出和/或输入音频信号。例如,音频组件610包括一个麦克风(MIC),当电子设备600处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器604或经由通信组件616发送。在一些实施例中,音频组件610还包括一个扬声器,用于输出音频信号。
I/O接口612为处理组件602和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件614包括一个或多个传感器,用于为电子设备600提供各个方面的状态评估。例如,传感器组件614可以检测到电子设备600的打开/关闭状态,组件的相对定位,例如所述组件为电子设备600的显示器和小键盘,传感器组件614还可以检测电子设备600或电子设备600一个组件的位置改变,用户与电子设备600接触的存在或不存在,电子设备600方位或加速/减速和电子设备600的温度变化。传感器组件614可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件614还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件614还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件616用于便于电子设备600和其他设备之间有线或无线方式的通信。电子设备600可以接入基于通信标准的无线网络,如WiFi,运营商网络(如2G、3G、4G或5G),或它们的组合。在一个示例性实施例中,通信组件616经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件616还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,电子设备600可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于实现本申请实施例提供的一种图像特效的实现方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机存储介质,例如包括指令的存储器604,上述指令可由电子设备600的处理器620执行以完成上述方法。例如,所述非临时性存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
图14是根据一示例性实施例示出的一种电子设备700的框图。例如,电子设备700可以被提供为一服务器。参照图14,电子设备700包括处理组件722,其进一步包括一个或多个处理器,以及由存储器732所代表的存储器资源,用于存储可由处理组件722的执行的指令,例如应用程序。存储器732中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件722被配置为执行指令,以执行本申请实施例提供的一种图像特效的实现方法。
电子设备700还可以包括一个电源组件726被配置为执行电子设备700的电源管理,一个有线或无线网络接口750被配置为将电子设备700连接到网络,和一个输入输出(I/O)接口758。电子设备700可以操作基于存储在存储器732的操作系统,例如WindowsServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
本申请实施例还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现所述的图像特效的实现方法。
本领域技术人员在考虑说明书及实践这里公开的申请后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
Claims (16)
1.一种图像特效的实现方法,其特征在于,所述方法包括:
获取包括多个网格单元的网格模型,每个所述网格单元用于表示一个特效对象;
为每个所述网格单元添加一个随机法向量,所述随机法向量用于反映所述特效对象的朝向;
针对所述网格模型的每个网格单元,将所述网格单元对应的视线向量与所述网格单元的随机法向量进行点积运算,得到点积运算结果,所述视线向量用于反映由参与点积运算的网格单元指向视点的视线,且通过预设密度系数,控制对每个所述网格单元进行点积运算的次数,并仅保留每个所述网格单元最大的点积运算结果,从而调整所述网格模型中亮度大于或等于预设亮度阈值的网格单元的数量,每个所述网格单元在进行不同的点积运算时添加有不同的随机法向量,所述网格单元对应的特效对象的亮度,随着所述网格单元的点积运算结果的增大而增大;
按照所述网格单元的点积运算结果对所述网格单元进行渲染,生成第一图像特效。
2.根据权利要求1所述的方法,其特征在于,在所述针对所述网格模型的每个网格单元,将所述网格单元对应的视线向量与所述网格单元的随机法向量进行点积运算,得到点积运算结果之后,所述方法还包括:
针对所述网格模型的每个网格单元,将第一预设速度系数作为幂次,对所述网格单元的点积运算结果进行幂次运算,得到第一幂次运算结果,所述第一预设速度系数用于控制所述特效对象的闪烁速度;
或,针对所述网格模型的每个网格单元,将第一预设明暗系数与所述网格单元的点积运算结果进行乘积运算,得到第一乘积结果,所述第一预设明暗系数用于控制所述特效对象的明暗程度;
按照所述网格单元的第一幂次运算结果或第一乘积结果对所述网格单元进行渲染,生成第二图像特效。
3.根据权利要求2所述的方法,其特征在于,在所述将第一预·设速度系数作为幂次,对所述网格单元的点积运算结果进行幂次运算,得到第一幂次运算结果的情况下,所述方法还包括:
针对所述网格模型的每个网格单元,将第二预设明暗系数与所述网格单元的第一幂次运算结果进行乘积运算,得到第二乘积结果,所述第二预设明暗系数用于控制所述特效对象的明暗程度;
按照所述网格单元的第二乘积结果对所述网格单元进行渲染,生成第三图像特效。
4.根据权利要求2所述的方法,其特征在于,在所述将第一预设明暗系数与所述网格单元的点积运算结果进行乘积运算,得到第一乘积结果的情况下,所述方法还包括:
针对所述网格模型的每个网格单元,将第二预设速度系数作为幂次,对所述所述网格单元的第一乘积结果进行幂次运算,得到第二幂次运算结果,所述第二预设速度系数用于控制所述特效对象的闪烁速度;
按照所述网格单元的第二幂次运算结果对所述网格单元进行渲染,生成第四图像特效。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述方法还包括:
针对所述网格模型的每个网格单元,将预设旋转矩阵与所述网格单元的位置坐标进行乘积运算,从而调整所述网格单元的形状。
6.根据权利要求1所述的方法,其特征在于,所述为每个所述网格单元添加一个随机法向量,包括:
获取每个所述网格单元在网格模型中的索引坐标,所述索引坐标反映了所述网格单元在所述网格模型中的相对位置;
将所述索引坐标输入随机函数,得到所述随机函数输出的每个所述网格单元的随机法向量。
7.根据权利要求1-4、权利要求6任一项所述的方法,其特征在于,在所述将所述网格单元对应的视线向量与所述网格单元的随机法向量进行点积运算,得到点积运算结果之前,所述方法还包括:
将所述随机法向量的每个分量减去预设分量值;
对所述随机法向量进行归一化处理。
8.一种图像特效的实现装置,其特征在于,所述装置包括:
获取模块,被配置为获取包括多个网格单元的网格模型,每个所述网格单元用于表示一个特效对象;
添加模块,被配置为为每个所述网格单元添加一个随机法向量,所述随机法向量用于反映所述特效对象的朝向;
点积模块,被配置为针对所述网格模型的每个网格单元,将所述网格单元对应的视线向量与所述网格单元的随机法向量进行点积运算,得到点积运算结果,所述视线向量用于反映由参与点积运算的网格单元指向视点的视线;
密度设置模块,被配置为通过预设密度系数,控制对每个所述网格单元进行点积运算的次数,并仅保留每个所述网格单元最大的点积运算结果,从而调整所述网格模型中亮度大于或等于预设亮度阈值的网格单元的数量,每个所述网格单元在进行不同的点积运算时添加有不同的随机法向量,所述网格单元对应的特效对象的亮度,随着所述网格单元的点积运算结果的增大而增大;
第一展示模块,被配置为按照所述网格单元的点积运算结果对所述网格单元进行渲染,生成第一图像特效。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
第一幂次模块,被配置为针对所述网格模型的每个网格单元,将第一预设速度系数作为幂次,对所述网格单元的点积运算结果进行幂次运算,得到第一幂次运算结果,所述第一预设速度系数用于控制所述特效对象的闪烁速度;
或,第一乘积模块,被配置为针对所述网格模型的每个网格单元,将第一预设明暗系数与所述网格单元的点积运算结果进行乘积运算,得到第一乘积结果,所述第一预设明暗系数用于控制所述特效对象的明暗程度;
第二展示模块,被配置为按照所述网格单元的第一幂次运算结果或第一乘积结果对所述网格单元进行渲染,生成第二图像特效。
10.根据权利要求9所述的装置,其特征在于,在所述将第一预设速度系数作为幂次,对所述网格单元的点积运算结果进行幂次运算,得到第一幂次运算结果的情况下,所述装置还包括:
第二幂次模块,被配置为针对所述网格模型的每个网格单元,将第二预设明暗系数与所述网格单元的第一幂次运算结果进行乘积运算,得到第二乘积结果,所述第二预设明暗系数用于控制所述特效对象的明暗程度;
第三展示模块,被配置为按照所述网格单元的第二乘积结果对所述网格单元进行渲染,生成第三图像特效。
11.根据权利要求9所述的装置,其特征在于,在所述将第一预设明暗系数与所述网格单元的点积运算结果进行乘积运算,得到第一乘积结果的情况下,所述装置还包括:
第二乘积模块,被配置为针对所述网格模型的每个网格单元,将第二预设速度系数作为幂次,对所述所述网格单元的第一乘积结果进行幂次运算,得到第二幂次运算结果,所述第二预设速度系数用于控制所述特效对象的闪烁速度;
第四展示模块,被配置为按照所述网格单元的第二幂次运算结果对所述网格单元进行渲染,生成第四图像特效。
12.根据权利要求8至11任一项所述的装置,其特征在于,所述装置还包括:
网格单元设置模块,被配置为针对所述网格模型的每个网格单元,将预设旋转矩阵与所述网格单元的位置坐标进行乘积运算,从而调整所述网格单元的形状。
13.根据权利要求8所述的装置,其特征在于,所述添加模块,包括:
第一获取子模块,被配置为获取每个所述网格单元在网格模型中的索引坐标,所述索引坐标反映了所述网格单元在所述网格模型中的相对位置;
随机函数子模块,被配置为将所述索引坐标输入随机函数,得到所述随机函数输出的每个所述网格单元的随机法向量。
14.根据权利要求8至11、权利要求13任一项所述的装置,其特征在于,所述装置还包括:
均匀处理模块,被配置为将所述随机法向量的每个分量减去预设分量值;
归一处理模块,被配置为对所述随机法向量进行归一化处理。
15.一种电子设备,其特征在于,包括:处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至7中任一项所述的图像特效的实现方法。
16.一种非临时性计算机存储介质,其特征在于,当所述非临时性计算机存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如权利要求1至7中任一项所述的图像特效的实现方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011498009.1A CN112614227B (zh) | 2020-12-17 | 2020-12-17 | 图像特效的实现方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011498009.1A CN112614227B (zh) | 2020-12-17 | 2020-12-17 | 图像特效的实现方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112614227A CN112614227A (zh) | 2021-04-06 |
CN112614227B true CN112614227B (zh) | 2024-03-19 |
Family
ID=75240281
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011498009.1A Active CN112614227B (zh) | 2020-12-17 | 2020-12-17 | 图像特效的实现方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112614227B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113763287B (zh) * | 2021-09-27 | 2024-09-17 | 北京市商汤科技开发有限公司 | 图像处理方法及装置、电子设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101984467A (zh) * | 2010-11-10 | 2011-03-09 | 中国科学院自动化研究所 | 一种带特征线风格化的三维网格模型的非真实感渲染方法 |
CN104966312A (zh) * | 2014-06-10 | 2015-10-07 | 腾讯科技(深圳)有限公司 | 一种3d模型的渲染方法、装置及终端设备 |
CN107110991A (zh) * | 2015-01-13 | 2017-08-29 | 雪佛龙美国公司 | 用于根据地震数据生成沉积序列体的系统和方法 |
CN107233134A (zh) * | 2017-05-15 | 2017-10-10 | 青岛海信医疗设备股份有限公司 | 显示三维医学模型内部标记点的方法、装置和医疗设备 |
CN109754467A (zh) * | 2018-12-18 | 2019-05-14 | 广州市百果园网络科技有限公司 | 三维人脸构建方法、计算机存储介质和计算机设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11062461B2 (en) * | 2017-11-16 | 2021-07-13 | Zoox, Inc. | Pose determination from contact points |
-
2020
- 2020-12-17 CN CN202011498009.1A patent/CN112614227B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101984467A (zh) * | 2010-11-10 | 2011-03-09 | 中国科学院自动化研究所 | 一种带特征线风格化的三维网格模型的非真实感渲染方法 |
CN104966312A (zh) * | 2014-06-10 | 2015-10-07 | 腾讯科技(深圳)有限公司 | 一种3d模型的渲染方法、装置及终端设备 |
CN107110991A (zh) * | 2015-01-13 | 2017-08-29 | 雪佛龙美国公司 | 用于根据地震数据生成沉积序列体的系统和方法 |
CN107233134A (zh) * | 2017-05-15 | 2017-10-10 | 青岛海信医疗设备股份有限公司 | 显示三维医学模型内部标记点的方法、装置和医疗设备 |
CN109754467A (zh) * | 2018-12-18 | 2019-05-14 | 广州市百果园网络科技有限公司 | 三维人脸构建方法、计算机存储介质和计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112614227A (zh) | 2021-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110675310B (zh) | 视频处理方法、装置、电子设备及存储介质 | |
CN110189249B (zh) | 一种图像处理方法及装置、电子设备和存储介质 | |
CN112766234B (zh) | 图像处理方法及装置、电子设备和存储介质 | |
US20210256672A1 (en) | Method, electronic device and storage medium for processing image | |
CN109472738B (zh) | 图像光照校正方法及装置、电子设备和存储介质 | |
CN110909654A (zh) | 训练图像的生成方法及装置、电子设备和存储介质 | |
CN111047507A (zh) | 图像生成模型的训练方法、图像生成方法及装置 | |
CN112614228B (zh) | 三维网格的简化方法、装置、电子设备和存储介质 | |
CN112614064B (zh) | 图像处理方法、装置、电子设备及存储介质 | |
CN112348841B (zh) | 虚拟对象的处理方法、装置、电子设备及存储介质 | |
CN110580677B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN112614227B (zh) | 图像特效的实现方法、装置、电子设备及存储介质 | |
CN114463212A (zh) | 图像处理方法及装置、电子设备和存储介质 | |
CN113160099B (zh) | 人脸融合方法、装置、电子设备、存储介质及程序产品 | |
CN113645414B (zh) | 水波纹特效视频生成方法、装置、电子设备及存储介质 | |
WO2023045946A1 (zh) | 图像处理方法及装置、电子设备和存储介质 | |
US20230020937A1 (en) | Image processing method, electronic device, and storage medium | |
CN105447829B (zh) | 图像处理方法及装置 | |
WO2022042160A1 (zh) | 图像处理方法及装置 | |
CN114979479A (zh) | 拍摄方法及其装置 | |
CN113421214A (zh) | 特效文字生成方法、装置、存储介质以及电子设备 | |
CN111385400A (zh) | 背光亮度调节方法和装置 | |
CN109840928B (zh) | 针织图像的生成方法、装置、电子设备及存储介质 | |
CN114564160A (zh) | 显示处理方法及装置、电子设备、存储介质 | |
CN113763229B (zh) | 图像处理方法、装置、电子设备及存储介质 |
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 | ||
GR01 | Patent grant |