CN116630478A - 对图像中发光体添加光芒特效的方法、系统及相关设备 - Google Patents
对图像中发光体添加光芒特效的方法、系统及相关设备 Download PDFInfo
- Publication number
- CN116630478A CN116630478A CN202310639057.5A CN202310639057A CN116630478A CN 116630478 A CN116630478 A CN 116630478A CN 202310639057 A CN202310639057 A CN 202310639057A CN 116630478 A CN116630478 A CN 116630478A
- Authority
- CN
- China
- Prior art keywords
- pixel
- pixel point
- light
- brightness
- color
- 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.)
- Pending
Links
- 230000000694 effects Effects 0.000 title claims abstract description 72
- 238000000034 method Methods 0.000 title claims abstract description 40
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 25
- 238000001514 detection method Methods 0.000 claims abstract description 17
- 238000004020 luminiscence type Methods 0.000 claims abstract description 14
- 230000007704 transition Effects 0.000 claims abstract description 12
- 239000003086 colorant Substances 0.000 claims description 40
- 230000003287 optical effect Effects 0.000 claims description 27
- 238000004364 calculation method Methods 0.000 claims description 17
- 230000006870 function Effects 0.000 claims description 13
- 230000008859 change Effects 0.000 claims description 9
- 238000009499 grossing Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 2
- 230000008569 process Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000001795 light effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 2
- 240000007594 Oryza sativa Species 0.000 description 1
- 235000007164 Oryza sativa Nutrition 0.000 description 1
- 230000003796 beauty Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007620 mathematical function Methods 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
- 230000002085 persistent effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 235000009566 rice Nutrition 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/40—Filling a planar surface by adding surface attributes, e.g. colour or texture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/60—Editing figures and text; Combining figures or text
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02B—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO BUILDINGS, e.g. HOUSING, HOUSE APPLIANCES OR RELATED END-USER APPLICATIONS
- Y02B20/00—Energy efficient lighting technologies, e.g. halogen lamps or gas discharge lamps
- Y02B20/40—Control techniques providing energy savings, e.g. smart controller or presence detection
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
Abstract
本发明提供了一种对图像中发光体添加光芒特效的方法、系统及相关设备,方法包括根据预设的明度阈值确定图像中的发光体像素区域和背景像素区域;通过预置的圆周探测算法对发光体像素区域四周的背景像素区域的各个像素点进行发光判断,获得需要发光的像素点集;对于需要发光的像素点集中的各个像素点,利用预置的渐变颜色填充算法,获得各个像素点的填充颜色;对需要发光的像素点集中的各个像素点进行颜色填充获得初步光芒特效图像;基于高亮覆盖低亮的原则对初步光芒特效图像中的光芒重叠区域进行自然过渡处理获得最终光芒特效图像。本发明实现了对图像中发光物体的自动识别并添加光芒特效,光芒特效模拟了自然光的特性,效果更加真实。
Description
技术领域
本发明涉及图像处理技术领域,尤其涉及一种对图像中发光体添加光芒特效的方法、系统及相关设备。
背景技术
随着图像处理技术的快速发展,逐渐出现了多种多样对图像进行处理的方式。其中,常用的一种处理方式是特效处理,例如,对图像进行美颜、添加特效等,通过对图像进行特效处理,能够增加图像的美观性或者趣味性。在对图像增加特效的一种具体场景中,是对图像中的发光体添加光芒效果,现有技术缺乏一种能够自动识别图像中的发光物体并自动进行添加光芒的方法。
因此,现有技术还有待于改进和发展。
发明内容
本发明的主要目的在于解决现有技术所存在背景技术中所提到的技术问题。
本发明第一方面提供了一种对图像中发光体添加光芒特效的方法,所述对图像中发光体添加光芒特效的方法包括:
根据预设的明度阈值确定图像中的发光体像素区域和背景像素区域;
通过预置的圆周探测算法对所述发光体像素区域四周的所述背景像素区域的各个像素点进行发光判断,获得需要发光的像素点集;
对于需要发光的所述像素点集中的各个所述像素点,利用预置的与发光距离有关的渐变颜色填充算法,计算获得各个所述像素点的填充颜色;
对需要发光的所述像素点集中的各个所述像素点进行颜色填充,获得初步光芒特效图像;
基于高亮覆盖低亮的原则对所述初步光芒特效图像中的光芒重叠区域进行自然过渡处理,获得最终光芒特效图像。
在本发明第一方面一种可选的实施方式中,所述根据预设的明度阈值确定图像中的发光体像素区域和背景像素区域包括:
对于所述图像中的各个所述像素点,通过预置的基于三原色和权重系数的像素明度计算公式获得各个所述像素点的明度值;
对于每个所述像素点,判断所述像素点的所述明度值是否大于所述明度阈值;
在所述图像中确定所有所述明度值大于所述明度阈值的所述像素点,对所有所述明度值大于所述明度阈值的所述像素点进行是否构成发光体判断;
基于判断结果获得所述图像中的发光体像素区域和背景像素区域。
在本发明第一方面一种可选的实施方式中,所述在所述图像中确定所有所述明度值大于所述明度阈值的所述像素点,对所有所述明度值大于所述明度阈值的所述像素点进行是否构成发光体判断包括:
在所述图像中确定所有所述明度值大于所述明度阈值的所述像素点;
对所有所述明度值大于所述明度阈值的所述像素点进行成团检测;
对所有所述明度值大于所述明度阈值的所述像素点中的每个所述像素点,若所述像素点能够与所述像素点周边的所述明度值大于所述明度阈值的所述像素点组成团,则判定所述像素点属于发光体像素点。
在本发明第一方面一种可选的实施方式中,所述对所有所述明度值大于所述明度阈值的所述像素点中的每个所述像素点,若所述像素点能够与所述像素点周边的所述明度值大于所述明度阈值的所述像素点组成团,则判定所述像素点属于发光体像素点包括:
对所有所述明度值大于所述明度阈值的所述像素点中的每个所述像素点,生成预设尺寸的移动窗口,将所述像素点依次置于所述移动窗口的各侧边缘;
获取所述像素点在所述移动窗口的各侧边缘时,所述移动窗口内所述明度值大于所述明度阈值的所述像素点占所述移动窗口内所有像素点的比例;
若存在一侧或多侧边缘所述移动窗口内所述明度值大于所述明度阈值的所述像素点占所述移动窗口内所有像素点的比例大于预设阈值,则判定所述像素点属于发光体像素点。
在本发明第一方面一种可选的实施方式中,所述通过预置的圆周探测算法对所述发光体像素区域四周的所述背景像素区域的各个像素点进行发光判断,获得需要发光的像素点集包括:
对所述发光体像素区域四周的所述背景像素区域的每个像素点,判断以所述像素点为探测中心的预设半径范围内是否存在所述发光体像素区域的所述像素点;
若以所述像素点为探测中心的预设半径范围内存在所述发光体像素区域的所述像素点,则进一步获取所述预设半径范围内与所述探测中心最近的所述发光体像素区域的所述像素点;
建立所述预设半径范围内与所述探测中心最近的所述发光体像素区域的所述像素点与所述探测中心之间的向量;
计算所述向量在所述探测中心的原点坐标系下的夹角;
若所述夹角属于预设的夹角集合,则判定所述像素点为发光像素点;
收集所有所述发光像素点,得到需要发光的所述像素点集。
在本发明第一方面一种可选的实施方式中,所述对于需要发光的所述像素点集中的各个所述像素点,利用预置的与发光距离有关的渐变颜色填充算法,计算获得各个所述像素点的填充颜色包括:
对于需要发光的所述像素点集中的每个所述像素点,获取所述像素点和离所述像素点最近的所述发光体像素区域的所述像素点之间的距离;
基于所述距离计算得到所述像素点在三种渐变填充色下分别对应的第一饱和度系数、第二饱和度系数和第三饱和度系数;
基于所述第一饱和度系数和预设的第一原始填充色并通过幂运算得到第一渐变填充色;
基于所述第二饱和度系数和预设的第二原始填充色并通过曲线函数和幂运算得到第二渐变填充色;
基于所述第三饱和度系数和预设的第三原始填充色并通过幂运算得到第三渐变填充色;
通过将所述第一渐变填充色、所述第二渐变填充色和所述第三渐变填充色混合,获得所述像素点的所述填充颜色。
在本发明第一方面一种可选的实施方式中,所述基于高亮覆盖低亮的原则对所述初步光芒特效图像中的光芒重叠区域进行自然过渡处理,获得最终光芒特效图像包括:
从需要发光的所述像素点集中确定得到光芒重叠像素点;
获取所述光芒重叠像素点的多种颜色;
判断所述多种颜色中是否存在白色;
若所述多种颜色中存在白色,则将白色作为所述光芒重叠像素点最终的填充颜色;
若所述多种颜色中不存在白色,则将计算得到所述多种颜色在灰度下的梯度差值,之后将所述梯度差值代入预置的平滑函数中得到平滑颜色值,再所述多种颜色的颜色值和所述平滑颜色值进行融合,获得融合颜色值,以所述融合颜色值对应的颜色作为所述光芒重叠像素点最终的填充颜色。
本发明第二方面提供了一种对图像中发光体添加光芒特效的系统,所述对图像中发光体添加光芒特效的系统包括:
区域区分模块,用于根据预设的明度阈值确定图像中的发光体像素区域和背景像素区域;
发光像素点确定模块,用于通过预置的圆周探测算法对所述发光体像素区域四周的所述背景像素区域的各个像素点进行发光判断,获得需要发光的像素点集;
发光颜色计算模块,用于对于需要发光的所述像素点集中的各个所述像素点,利用预置的与发光距离有关的渐变颜色填充算法,计算获得各个所述像素点的填充颜色;
颜色填充模块,用于对需要发光的所述像素点集中的各个所述像素点进行颜色填充,获得初步光芒特效图像;
颜色平滑模块,用于基于高亮覆盖低亮的原则对所述初步光芒特效图像中的光芒重叠区域进行自然过渡处理,获得最终光芒特效图像。
本发明第三方面提供了一种对图像中发光体添加光芒特效的设备,所述对图像中发光体添加光芒特效的设备包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互连;
所述至少一个处理器调用所述存储器中的所述指令,以使得所述对图像中发光体添加光芒特效的设备执行如上述任一项所述的对图像中发光体添加光芒特效的方法。
本发明第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述的对图像中发光体添加光芒特效的方法。
有益效果:本发明提供了一种对图像中发光体添加光芒特效的方法、系统及相关设备,方法包括根据预设的明度阈值确定图像中的发光体像素区域和背景像素区域;通过预置的圆周探测算法对发光体像素区域四周的背景像素区域的各个像素点进行发光判断,获得需要发光的像素点集;对于需要发光的像素点集中的各个像素点,利用预置的渐变颜色填充算法,获得各个像素点的填充颜色;对需要发光的像素点集中的各个像素点进行颜色填充获得初步光芒特效图像;基于高亮覆盖低亮的原则对初步光芒特效图像中的光芒重叠区域进行自然过渡处理获得最终光芒特效图像。本发明实现了对图像中发光物体的自动识别并添加光芒特效,光芒特效模拟了自然光的特性,效果更加真实。
附图说明
图1为本发明一种对图像中发光体添加光芒特效的方法的一个实施例示意图;
图2为本发明一种需要添加光芒特效的原始图像的一个实施例示意图;
图3为本发明一种添加光芒特效后的特效图像的一个实施例示意图;
图4为本发明一种对图像中发光体添加光芒特效的系统的一个实施例示意图;
图5为本发明一种对图像中发光体添加光芒特效的设备的一个实施例示意图。
具体实施方式
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明第一方面提供了一种对图像中发光体添加光芒特效的方法,所述对图像中发光体添加光芒特效的方法包括:
S100、根据预设的明度阈值确定图像中的发光体像素区域和背景像素区域;在本发明中,在图像中的发光体进行添加光芒特效之前,需要先确定图像中发光体的位置,确定的机理是基于发光体的明度要远高于非发光体的明度。
在步骤S100示例性的一种可选的实施方式中,所述根据预设的明度阈值确定图像中的发光体像素区域和背景像素区域包括:
对于所述图像中的各个所述像素点,通过预置的基于三原色和权重系数的像素明度计算公式获得各个所述像素点的明度值;示例性的,本发明中的像素明度计算公式为明度L=0.212f*R+0.715f*G+0.073f*B,R为像素颜色的红色分量,G为像素颜色的绿色分量,B为像素颜色的蓝色分量,本发明通过该公式来计算得到各个所述像素点的明度值;
对于每个所述像素点,判断所述像素点的所述明度值是否大于所述明度阈值;在本发明,通过计算得到的各个所述像素点的所述明度值,如果一个像素点的所述明度值大于预设的明度阈值,那么这个像素点就具备构成发光体的条件,所以本发明在确定发光体区域之前,需要先把所述明度值大于预设的所述明度阈值的像素点找出来;
在所述图像中确定所有所述明度值大于所述明度阈值的所述像素点,对所有所述明度值大于所述明度阈值的所述像素点进行是否构成发光体判断;在获得了图像中所有所述明度值大于所述明度阈值的所述像素点之后,接着就是判断这些点是不是能够组成发光体,如果能组成发光体,则将能够组成发光体的这些像素点分别归类起来,这些像素点在图像中能够组成多少个发光体,图像中就有多少个发光区域;
基于判断结果获得所述图像中的发光体像素区域和背景像素区域。在本发明中,在确定了发光体所在的区域之后,除发光体之外的区域称为背景像素区域,发光体发出的光芒形成在所述背景像素区域中。
在本发明一种可选的实施方式中,所述对所有所述明度值大于所述明度阈值的所述像素点中的每个所述像素点,若所述像素点能够与所述像素点周边的所述明度值大于所述明度阈值的所述像素点组成团,则判定所述像素点属于发光体像素点包括:
对所有所述明度值大于所述明度阈值的所述像素点中的每个所述像素点,生成预设尺寸的移动窗口,将所述像素点依次置于所述移动窗口的各侧边缘;在本发明中,所述移动窗口的形状可以是方形或者是圆形,当所述移动窗口为圆形时,所述移动窗口的各侧边缘指的是圆形的左侧顶点、右侧顶点、上侧顶点和下侧顶点;这里的预设尺寸指的是形成最小发光体的判定标准,当组成发光体的尺寸小于这个预设尺寸时,由于发光体过小,在本发明中对这种发光体进行了忽略;
获取所述像素点在所述移动窗口的各侧边缘时,所述移动窗口内所述明度值大于所述明度阈值的所述像素点占所述移动窗口内所有像素点的比例;在本发明,判断所述像素点是不是发光体的像素点的方式就是判断这个像素点和周边的像素点组成发光面积是不是预设的规格(通过所述移动窗口的面积来限定),为了便于计算,在本发明中将这个判断过程转换为了像素点所占的比例的判断;
若存在一侧或多侧边缘所述移动窗口内所述明度值大于所述明度阈值的所述像素点占所述移动窗口内所有像素点的比例大于预设阈值,则判定所述像素点属于发光体像素点。在本发明中,当所述像素点及所述像素点周边的明度值大于所述明度阈值的所述像素点填充满超过所述移动窗口总面积的例如百分之八十时,在本发明中,可认为这种发明点构成了发光体的像素点。
S200、通过预置的圆周探测算法对所述发光体像素区域四周的所述背景像素区域的各个像素点进行发光判断,获得需要发光的像素点集;在本发明中,在确定了图像中发光体像素区域的位置之后,就是要对发光体像素区域周边的各个像素点进行是否属于光芒区域(即像素点是否发光)进行判断;
在步骤S200一种可选的实施方式中,所述通过预置的圆周探测算法对所述发光体像素区域四周的所述背景像素区域的各个像素点进行发光判断,获得需要发光的像素点集包括:
对所述发光体像素区域四周的所述背景像素区域的每个像素点,判断以所述像素点为探测中心的预设半径范围内是否存在所述发光体像素区域的所述像素点;在本发明中,该步骤的目的是判断所述像素点是否落入所述发光体像素区域的发光范围内;
若以所述像素点为探测中心的预设半径范围内存在所述发光体像素区域的所述像素点,则进一步获取所述预设半径范围内与所述探测中心最近的所述发光体像素区域的所述像素点;在该步骤中,当所述像素点是否落入所述发光体像素区域的发光范围内时,再进行下一步的所述像素点是否发光判断,在本发明中,为了是光芒特效更美观,图像中发光体的光芒特效被配置形成“米”字型,要形成“米”字型,像素点除了在发光范围内的条件外,还要判断像素点和发光体之间的角度是否合适,在本发明中发光角度模型假设发光体的形状为圆形,像素点与发光体圆心的角度可以通过计算像素点与发光体边缘最近的发光点之间的角度得出;
建立所述预设半径范围内与所述探测中心最近的所述发光体像素区域的所述像素点与所述探测中心之间的向量;计算所述向量在所述探测中心的原点坐标系下的夹角;在本发明中,所述探测中心的原点坐标系的XY轴分别为竖直和水平,这个夹角可以是和X轴或Y轴形成的夹角,当选择X轴或Y轴时,后续对应的夹角集合不同;
若所述夹角属于预设的夹角集合,则判定所述像素点为发光像素点;在在本发明中,示例性的一种夹角集合为0°、45°和135°,当计算得到的夹角属于这个3个角度中的一个时,判定这个像素点为“米”字型光芒的像素点;
收集所有所述发光像素点,得到需要发光的所述像素点集。在本发明中,逐个获取到“米”字型光芒的像素点之后,汇总得到需要发光的所述像素点集。
S300、对于需要发光的所述像素点集中的各个所述像素点,利用预置的与发光距离有关的渐变颜色填充算法,计算获得各个所述像素点的填充颜色;在本发明中,发光像素点的颜色的填充使用一种类似3色渐变叠加的方式进行处理,并且渐变过程使用相关曲线函数进行插值,这里的发光距离指的是各个像素点离发光体边缘像素点的距离,发光距离越远,填充的颜色越暗(例如黑色),发光距离越近,填充的颜色越亮(例如白色);
在步骤S300一种可选的实施方式中,所述对于需要发光的所述像素点集中的各个所述像素点,利用预置的与发光距离有关的渐变颜色填充算法,计算获得各个所述像素点的填充颜色包括:
对于需要发光的所述像素点集中的每个所述像素点,获取所述像素点和离所述像素点最近的所述发光体像素区域的所述像素点之间的距离;基于所述距离计算得到所述像素点在三种渐变填充色下分别对应的第一饱和度系数、第二饱和度系数和第三饱和度系数;基于所述第一饱和度系数和预设的第一原始填充色并通过幂运算得到第一渐变填充色;基于所述第二饱和度系数和预设的第二原始填充色并通过曲线函数和幂运算得到第二渐变填充色;基于所述第三饱和度系数和预设的第三原始填充色并通过幂运算得到第三渐变填充色;通过将所述第一渐变填充色、所述第二渐变填充色和所述第三渐变填充色混合,获得所述像素点的所述填充颜色。
示例性的,本发明渐变颜色填充算法中所使用到的相关公式如下:
float lightRatio=0.0f;
float middleRatio=0.0f;
float shadowRatio=0.0f;
if(forwardDir){
lightRatio=
mix(0.0f,getNewValue(clamp(1.0f-(distance)/(topTotalDistanceLight),0.0f,1.0f)),step(distance,topTotalDistanceLight));
middleRatio=
mix(0.0f,getNewValue(clamp(1.0f-(distance)/(topTotalDistanceMiddle),
0.0f,1.0f)),step(distance,topTotalDistanceMiddle));
shadowRatio=
mix(0.0f,getNewValue(clamp(1.0f-(distance)/(topTotalDistanceShadow),0.0f,1.0f)),step(distance,topTotalDistanceShadow));
}
else{
lightRatio=
mix(0.0f,getNewValue(clamp(1.0f-(distance)/(bottomTotalDistanceLight),0.0f,1.0f)),step(distance,bottomTotalDistanceLight));
middleRatio=
mix(0.0f,getNewValue(clamp(1.0f-(distance)/(bottomTotalDistanceMiddle),0.0f,1.0f)),step(distance,bottomTotalDistanceMiddle));
shadowRatio=
mix(0.0,getNewValue(clamp(1.0f-(distance)/(bottomTotalDistanceShadow),0.0f,1.0f)),step(distance,bottomTotalDistanceShadow));
}
vec4 colorOne=lightColor*pow(middleRatio,20.0f);
vec4 colorTwo=middleColor*(sin(PI*0.875f*(1.0f-middleRatio)+0.125*PI)*1.0f)*pow(middleRatio,1.1f)*mix(0.0f,1.0f,step(floatOffset,middleRatio));
vec4 colorThree=shadowColor*pow(shadowRatio,1.0f);
vec4 resultColor=colorOne+colorTwo+colorThree。
其中,lightColor(例如白、红)、middleColor(例如白和黑之间的某种颜色)、shadowColor(例如黑、灰)为三种原始填充色,colorOne、colorTwo、colorThree分别为对应的渐变中间处理色,lightRatio、middleRatio、shadowRatio分别对应三种原始填充色的饱和度系数,PI为Π=3.1415926f,floatOffset为浮点数计算误差,sin、pow、mix为相应的数学函数和图形学函数。
S400、对需要发光的所述像素点集中的各个所述像素点进行颜色填充,获得初步光芒特效图像;在本发明中,在步骤S300计算得到需要发光的所述像素点集中的各个所述像素点的填充颜色之后,按照填充颜色将需要发光的所述像素点集中的各个所述像素点的颜色更改为所述填充颜色即可,在本发明中,如果一个像素点需要更改在颜色超过一种,在该补充中会先不填充颜色,而在在后续经过步骤S500的计算后获得最终的填充颜色之后在更改这些像素点的颜色;
S500、基于高亮覆盖低亮的原则对所述初步光芒特效图像中的光芒重叠区域进行自然过渡处理,获得最终光芒特效图像。
在本发明第一方面一种可选的实施方式中,所述基于高亮覆盖低亮的原则对所述初步光芒特效图像中的光芒重叠区域进行自然过渡处理,获得最终光芒特效图像包括:
从需要发光的所述像素点集中确定得到光芒重叠像素点;获取所述光芒重叠像素点的多种颜色;判断所述多种颜色中是否存在白色;若所述多种颜色中存在白色,则将白色作为所述光芒重叠像素点最终的填充颜色;若所述多种颜色中不存在白色,则将计算得到所述多种颜色在灰度下的梯度差值,之后将所述梯度差值代入预置的平滑函数中得到平滑颜色值,再所述多种颜色的颜色值和所述平滑颜色值进行融合,获得融合颜色值,以所述融合颜色值对应的颜色作为所述光芒重叠像素点最终的填充颜色。
示例性的,本发明对光芒重叠区域像素的颜色进行自然过渡处理的相关公式如下:
float grayOne=getGray(colorOne);
float grayTwo=getGray(colorTwo);
if(isWhiteColor(colorOne)||isWhiteColor(colorTwo)){
glFragColor=vec4(1.0f);}
else{glFragColor=mix(colorOne,colorTwo,smoothstep(-1.0f,1.0f,grayTwo-grayOne));
}
相关说明:函数smoothstep:y=x*x*(3-2*x),此处的自变量x=颜色明度梯度,根据这个梯度差,进行两种颜色的平滑融合,即每个颜色占据一定的比例,而这个比例有当前的函数重映射而来。
简单来讲,本发明技术方案的原理是先根据预设的“明度阈值”参数,对原始图像(图片或者视频)发光体和背景纹理进行进行分离,然后通过圆周探测算法获得发光体周边需要形成光芒特效的像素点,之后采用渐变颜色填充算法获得每个需要形成光芒特效的像素点的颜色,然后结合自然光照的物理原理(在多重光源重叠情况下,亮度高的光线覆盖亮度低的光线),对多光源光芒重叠的部分进行自然混合。本发明光芒效果的颜色填充,结合了真实自然光源规律,进行三色渐变叠加处理,并且每个颜色的分量需要合理的进行曲线函数约束,而并非线性关系,形成的发光体光芒效果更加真实自然,本发明示例性的一种添加光芒特效前的原图和添加特效后的效果图如图2和图3所示。
参见图4,本发明第二方面提供了一种对图像中发光体添加光芒特效的系统,所述对图像中发光体添加光芒特效的系统包括:
区域区分模块10,用于根据预设的明度阈值确定图像中的发光体像素区域和背景像素区域;
发光像素点确定模块20,用于通过预置的圆周探测算法对所述发光体像素区域四周的所述背景像素区域的各个像素点进行发光判断,获得需要发光的像素点集;
发光颜色计算模块30,用于对于需要发光的所述像素点集中的各个所述像素点,利用预置的与发光距离有关的渐变颜色填充算法,计算获得各个所述像素点的填充颜色;
颜色填充模块40,用于对需要发光的所述像素点集中的各个所述像素点进行颜色填充,获得初步光芒特效图像;
颜色平滑模块50,用于基于高亮覆盖低亮的原则对所述初步光芒特效图像中的光芒重叠区域进行自然过渡处理,获得最终光芒特效图像。
在本发明第二方面一种可选的实施方式中,所述区域区分模块10包括:
明度计算单元,用于对于所述图像中的各个所述像素点,通过预置的基于三原色和权重系数的像素明度计算公式获得各个所述像素点的明度值;
明度判断单元,用于对于每个所述像素点,判断所述像素点的所述明度值是否大于所述明度阈值;
发光体判断单元,用于在所述图像中确定所有所述明度值大于所述明度阈值的所述像素点,对所有所述明度值大于所述明度阈值的所述像素点进行是否构成发光体判断;
区域划分单元,用于基于判断结果获得所述图像中的发光体像素区域和背景像素区域。
在本发明第二方面一种可选的实施方式中,所述发光体判断单元包括:
目标像素点获取子单元,用于在所述图像中确定所有所述明度值大于所述明度阈值的所述像素点;
成团检测子单元,用于对所有所述明度值大于所述明度阈值的所述像素点进行成团检测;
判定子单元,用于对所有所述明度值大于所述明度阈值的所述像素点中的每个所述像素点,若所述像素点能够与所述像素点周边的所述明度值大于所述明度阈值的所述像素点组成团,则判定所述像素点属于发光体像素点。
在本发明第二方面一种可选的实施方式中,所述判定子单元包括:
窗口生成第一子单元,用于对所有所述明度值大于所述明度阈值的所述像素点中的每个所述像素点,生成预设尺寸的移动窗口,将所述像素点依次置于所述移动窗口的各侧边缘;
比例获取第二子单元,用于获取所述像素点在所述移动窗口的各侧边缘时,所述移动窗口内所述明度值大于所述明度阈值的所述像素点占所述移动窗口内所有像素点的比例;
判定第三子单元,用于若存在一侧或多侧边缘所述移动窗口内所述明度值大于所述明度阈值的所述像素点占所述移动窗口内所有像素点的比例大于预设阈值,则判定所述像素点属于发光体像素点。
在本发明第二方面一种可选的实施方式中,所述发光像素点确定模块包括:
像素点探测单元,用于对所述发光体像素区域四周的所述背景像素区域的每个像素点,判断以所述像素点为探测中心的预设半径范围内是否存在所述发光体像素区域的所述像素点;
最近发光体像素点获取单元,用于若以所述像素点为探测中心的预设半径范围内存在所述发光体像素区域的所述像素点,则进一步获取所述预设半径范围内与所述探测中心最近的所述发光体像素区域的所述像素点;
向量构建单元,用于建立所述预设半径范围内与所述探测中心最近的所述发光体像素区域的所述像素点与所述探测中心之间的向量;
夹角计算单元,用于计算所述向量在所述探测中心的原点坐标系下的夹角;
发光像素点判定单元,用于若所述夹角属于预设的夹角集合,则判定所述像素点为发光像素点;
发光像素点汇总单元,用于收集所有所述发光像素点,得到需要发光的所述像素点集。
在本发明第二方面一种可选的实施方式中,所述发光颜色计算模块包括:
距离获取单元,用于对于需要发光的所述像素点集中的每个所述像素点,获取所述像素点和离所述像素点最近的所述发光体像素区域的所述像素点之间的距离;
饱和系数计算单元,用于基于所述距离计算得到所述像素点在三种渐变填充色下分别对应的第一饱和度系数、第二饱和度系数和第三饱和度系数;
第一渐变填充色计算单元,用于基于所述第一饱和度系数和预设的第一原始填充色并通过幂运算得到第一渐变填充色;
第二渐变填充色计算单元,用于基于所述第二饱和度系数和预设的第二原始填充色并通过曲线函数和幂运算得到第二渐变填充色;
第三渐变填充色计算单元,用于基于所述第三饱和度系数和预设的第三原始填充色并通过幂运算得到第三渐变填充色;
混色单元,用于通过将所述第一渐变填充色、所述第二渐变填充色和所述第三渐变填充色混合,获得所述像素点的所述填充颜色。
在本发明第二方面一种可选的实施方式中,所述颜色平滑模块包括:
光芒重叠像素点获取单元,用于从需要发光的所述像素点集中确定得到光芒重叠像素点;
颜色获取单元,用于获取所述光芒重叠像素点的多种颜色;
颜色判断单元,用于判断所述多种颜色中是否存在白色;
第一颜色确定单元,用于若所述多种颜色中存在白色,则将白色作为所述光芒重叠像素点最终的填充颜色;
第二颜色确定单元,用于若所述多种颜色中不存在白色,则将计算得到所述多种颜色在灰度下的梯度差值,之后将所述梯度差值代入预置的平滑函数中得到平滑颜色值,再所述多种颜色的颜色值和所述平滑颜色值进行融合,获得融合颜色值,以所述融合颜色值对应的颜色作为所述光芒重叠像素点最终的填充颜色。
图5是本发明实施例提供的一种对图像中发光体添加光芒特效的设备的结构示意图,该对图像中发光体添加光芒特效的设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器60(central processing units,CPU)(例如,一个或一个以上处理器)和存储器70,一个或一个以上存储应用程序或数据的存储介质80(例如一个或一个以上海量存储设备)。其中,存储器和存储介质可以是短暂存储或持久存储。存储在存储介质的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对图像中发光体添加光芒特效的设备中的一系列指令操作。更进一步地,处理器可以设置为与存储介质通信,在车载中控上执行存储介质中的一系列指令操作。
本发明对图像中发光体添加光芒特效的设备还可以包括一个或一个以上电源90,一个或一个以上有线或无线网络接口100,一个或一个以上输入输出接口110,和/或,一个或一个以上操作系统,例如Windows Serve,Mac OS X,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,图5示出的对图像中发光体添加光芒特效的设备结构并不构成对对图像中发光体添加光芒特效的设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述的对图像中发光体添加光芒特效的方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统或系统、单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种对图像中发光体添加光芒特效的方法,其特征在于,所述对图像中发光体添加光芒特效的方法包括:
根据预设的明度阈值确定图像中的发光体像素区域和背景像素区域;
通过预置的圆周探测算法对所述发光体像素区域四周的所述背景像素区域的各个像素点进行发光判断,获得需要发光的像素点集;
对于需要发光的所述像素点集中的各个所述像素点,利用预置的与发光距离有关的渐变颜色填充算法,计算获得各个所述像素点的填充颜色;
对需要发光的所述像素点集中的各个所述像素点进行颜色填充,获得初步光芒特效图像;
基于高亮覆盖低亮的原则对所述初步光芒特效图像中的光芒重叠区域进行自然过渡处理,获得最终光芒特效图像。
2.根据权利要求1所述的对图像中发光体添加光芒特效的方法,其特征在于,所述根据预设的明度阈值确定图像中的发光体像素区域和背景像素区域包括:
对于所述图像中的各个所述像素点,通过预置的基于三原色和权重系数的像素明度计算公式获得各个所述像素点的明度值;
对于每个所述像素点,判断所述像素点的所述明度值是否大于所述明度阈值;
在所述图像中确定所有所述明度值大于所述明度阈值的所述像素点,对所有所述明度值大于所述明度阈值的所述像素点进行是否构成发光体判断;
基于判断结果获得所述图像中的发光体像素区域和背景像素区域。
3.根据权利要求2所述的对图像中发光体添加光芒特效的方法,其特征在于,所述在所述图像中确定所有所述明度值大于所述明度阈值的所述像素点,对所有所述明度值大于所述明度阈值的所述像素点进行是否构成发光体判断包括:
在所述图像中确定所有所述明度值大于所述明度阈值的所述像素点;
对所有所述明度值大于所述明度阈值的所述像素点进行成团检测;
对所有所述明度值大于所述明度阈值的所述像素点中的每个所述像素点,若所述像素点能够与所述像素点周边的所述明度值大于所述明度阈值的所述像素点组成团,则判定所述像素点属于发光体像素点。
4.根据权利要求3所述的对图像中发光体添加光芒特效的方法,其特征在于,所述对所有所述明度值大于所述明度阈值的所述像素点中的每个所述像素点,若所述像素点能够与所述像素点周边的所述明度值大于所述明度阈值的所述像素点组成团,则判定所述像素点属于发光体像素点包括:
对所有所述明度值大于所述明度阈值的所述像素点中的每个所述像素点,生成预设尺寸的移动窗口,将所述像素点依次置于所述移动窗口的各侧边缘;
获取所述像素点在所述移动窗口的各侧边缘时,所述移动窗口内所述明度值大于所述明度阈值的所述像素点占所述移动窗口内所有像素点的比例;
若存在一侧或多侧边缘所述移动窗口内所述明度值大于所述明度阈值的所述像素点占所述移动窗口内所有像素点的比例大于预设阈值,则判定所述像素点属于发光体像素点。
5.根据权利要求1所述的对图像中发光体添加光芒特效的方法,其特征在于,所述通过预置的圆周探测算法对所述发光体像素区域四周的所述背景像素区域的各个像素点进行发光判断,获得需要发光的像素点集包括:
对所述发光体像素区域四周的所述背景像素区域的每个像素点,判断以所述像素点为探测中心的预设半径范围内是否存在所述发光体像素区域的所述像素点;
若以所述像素点为探测中心的预设半径范围内存在所述发光体像素区域的所述像素点,则进一步获取所述预设半径范围内与所述探测中心最近的所述发光体像素区域的所述像素点;
建立所述预设半径范围内与所述探测中心最近的所述发光体像素区域的所述像素点与所述探测中心之间的向量;
计算所述向量在所述探测中心的原点坐标系下的夹角;
若所述夹角属于预设的夹角集合,则判定所述像素点为发光像素点;
收集所有所述发光像素点,得到需要发光的所述像素点集。
6.根据权利要求5所述的对图像中发光体添加光芒特效的方法,其特征在于,所述对于需要发光的所述像素点集中的各个所述像素点,利用预置的与发光距离有关的渐变颜色填充算法,计算获得各个所述像素点的填充颜色包括:
对于需要发光的所述像素点集中的每个所述像素点,获取所述像素点和离所述像素点最近的所述发光体像素区域的所述像素点之间的距离;
基于所述距离计算得到所述像素点在三种渐变填充色下分别对应的第一饱和度系数、第二饱和度系数和第三饱和度系数;
基于所述第一饱和度系数和预设的第一原始填充色并通过幂运算得到第一渐变填充色;
基于所述第二饱和度系数和预设的第二原始填充色并通过曲线函数和幂运算得到第二渐变填充色;
基于所述第三饱和度系数和预设的第三原始填充色并通过幂运算得到第三渐变填充色;
通过将所述第一渐变填充色、所述第二渐变填充色和所述第三渐变填充色混合,获得所述像素点的所述填充颜色。
7.根据权利要求1所述的对图像中发光体添加光芒特效的方法,其特征在于,所述基于高亮覆盖低亮的原则对所述初步光芒特效图像中的光芒重叠区域进行自然过渡处理,获得最终光芒特效图像包括:
从需要发光的所述像素点集中确定得到光芒重叠像素点;
获取所述光芒重叠像素点的多种颜色;
判断所述多种颜色中是否存在白色;
若所述多种颜色中存在白色,则将白色作为所述光芒重叠像素点最终的填充颜色;
若所述多种颜色中不存在白色,则将计算得到所述多种颜色在灰度下的梯度差值,之后将所述梯度差值代入预置的平滑函数中得到平滑颜色值,再所述多种颜色的颜色值和所述平滑颜色值进行融合,获得融合颜色值,以所述融合颜色值对应的颜色作为所述光芒重叠像素点最终的填充颜色。
8.一种对图像中发光体添加光芒特效的系统,其特征在于,所述对图像中发光体添加光芒特效的系统包括:
区域区分模块,用于根据预设的明度阈值确定图像中的发光体像素区域和背景像素区域;
发光像素点确定模块,用于通过预置的圆周探测算法对所述发光体像素区域四周的所述背景像素区域的各个像素点进行发光判断,获得需要发光的像素点集;
发光颜色计算模块,用于对于需要发光的所述像素点集中的各个所述像素点,利用预置的与发光距离有关的渐变颜色填充算法,计算获得各个所述像素点的填充颜色;
颜色填充模块,用于对需要发光的所述像素点集中的各个所述像素点进行颜色填充,获得初步光芒特效图像;
颜色平滑模块,用于基于高亮覆盖低亮的原则对所述初步光芒特效图像中的光芒重叠区域进行自然过渡处理,获得最终光芒特效图像。
9.一种对图像中发光体添加光芒特效的设备,其特征在于,所述对图像中发光体添加光芒特效的设备包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互连;
所述至少一个处理器调用所述存储器中的所述指令,以使得所述对图像中发光体添加光芒特效的设备执行如权利要求1-7中任一项所述的对图像中发光体添加光芒特效的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述的对图像中发光体添加光芒特效的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310639057.5A CN116630478A (zh) | 2023-05-31 | 2023-05-31 | 对图像中发光体添加光芒特效的方法、系统及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310639057.5A CN116630478A (zh) | 2023-05-31 | 2023-05-31 | 对图像中发光体添加光芒特效的方法、系统及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116630478A true CN116630478A (zh) | 2023-08-22 |
Family
ID=87597162
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310639057.5A Pending CN116630478A (zh) | 2023-05-31 | 2023-05-31 | 对图像中发光体添加光芒特效的方法、系统及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116630478A (zh) |
-
2023
- 2023-05-31 CN CN202310639057.5A patent/CN116630478A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3995016B2 (ja) | 仮想3次元照明シーンを作成するためのシミュレーション方法、およびプログラム、システム | |
US5572635A (en) | Method for changing a natural image based on a light environment in the natural image | |
US7557812B2 (en) | Multilevel texture processing method for mapping multiple images onto 3D models | |
CN111723902A (zh) | 使用神经网络动态估计增强现实场景中位置的照明参数 | |
US8189003B2 (en) | System and method for rendering computer graphics utilizing a shadow illuminator | |
US8577170B2 (en) | Shadow detection in a single image | |
US20050151751A1 (en) | Generation of texture maps for use in 3D computer graphics | |
US6320578B1 (en) | Image shadow elimination method, image processing apparatus, and recording medium | |
CN116506993A (zh) | 灯光控制方法及存储介质 | |
CN114638950A (zh) | 一种绘制虚拟物体阴影的方法及设备 | |
CN105976423B (zh) | 一种镜头光晕的生成方法和装置 | |
CN116630478A (zh) | 对图像中发光体添加光芒特效的方法、系统及相关设备 | |
CN111597963A (zh) | 用于图像中人脸的补光方法、系统、介质以及电子设备 | |
US20230171506A1 (en) | Increasing dynamic range of a virtual production display | |
JP3289787B2 (ja) | カラー画像の領域分割方法 | |
KR20050054730A (ko) | 색온도 조정 기능을 갖춘 에이치디알 영상 기반 쉐이더 | |
Heitbrink et al. | Simulation of Automotive Headlights for Human Factors Research | |
CN117078877B (zh) | 基于地理信息的三维引擎红外视景生成方法及系统 | |
CN114255641B (zh) | 虚拟机器视觉系统中模拟光源的制作方法及系统 | |
Sorokin et al. | Recovery of optical parameters of a scene using fully-convolutional neural networks. | |
TW201818353A (zh) | 虛擬物件之影像合成方法與裝置 | |
KR20050080334A (ko) | 멀티 텍스쳐링 방법 및 이를 기록한 기록매체 | |
Ho et al. | Estimation of Multiple Illuminant Colors Using Color Line Features | |
CN113836705A (zh) | 光照数据的处理方法、装置、存储介质和电子装置 | |
WO2023094872A1 (en) | Increasing dynamic range of a virtual production display |
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 |