一种低内存占用的实时局部调色方法和装置以及设备与流程

文档序号:37359338发布日期:2024-03-22 10:13阅读:25来源:国知局
一种低内存占用的实时局部调色方法和装置以及设备与流程

本发明涉及局部调色,尤其涉及一种低内存占用的实时局部调色方法和装置以及设备。


背景技术:

1、目前市面上的一些图像调色软件使得图像的后期处理变得非常便捷,然而在局部调色这个功能上,却面临着一些挑战。例如,当叠加的掩码图层层过多时,可能会导致实时预览的性能大幅度下降。此外,还存在一个问题,即在进行局部调整时,可能无法无损地还原全局调整的效果。具体原因如下:

2、(1)假设图层1拉一个很大的曝光导致整个图像过曝,图像灰度值已经到255的像素,图层2再局部降低曝光,无法恢复图层1的原始图像内容。

3、(2)如果用户利用一百个图层调整局部效果,用户在拉第一个全局滑竿的时候就得运行的时候遍历一百个图层,执行一百次算法。


技术实现思路

1、有鉴于此,本发明的目的在于提出一种低内存占用的实时局部调色方法和装置以及设备,能够通过将所有灰度掩码图层与滑竿值进行融合,最终形成一张掩码图层,这种方法显著减少了算法的执行次数并降低了算法执行时的峰值内存占用。

2、根据本发明的一个方面,提供一种低内存占用的实时局部调色方法,包括:

3、将每次算法调整原始图片数据时产生的每个源掩码图层的灰度值归一化后乘以对应该算法的算法滑竿值,并将所有源掩码图层的灰度值的计算结果累加得到一输出掩码图层,利用该输出掩码图层调整原始图片数据。

4、在上述技术方案中,针对导致实时预览的性能大幅度下降的问题,将所有的灰度掩码图层(范围从0到255)归一化到0.0到1.0的范围,然后将每个掩码图层的值乘以对应算法效果滑竿的值,累加到最终结果掩码图层上。这样,在执行局部算法时,就无需遍历所有图层并对每个算法滑竿和掩码图层值进行alpha融合。此外,这种方案避免了串行执行方案中存在的效果不可逆的问题和性能问题。更重要的是,在算法执行期间无需保存所有的掩码图层图层,只需最终的一张掩码图层,因此内存和性能与图层数量无关。需要说明的是,不需要每次调整的时候都执行这一步骤,归一化只在设置每个源掩码图层的时候执行一次,每一个算法滑竿对应一个输出掩码图层。

5、在一些实施例中,利用该输出掩码图层调整原始图片数据,具体地:

6、图片调整算法基于该输出掩码图层对原始图片数据进行调色输出最终的结果图。

7、在上述技术方案中,通过将所有灰度掩码图层与滑竿值进行融合,最终形成一张输出掩码图层,这大大提高了算法的执行效率。这种方法显著减少了算法的执行次数并降低了算法执行时的峰值内存占用。

8、在一些实施例中,执行图片调整算法后,基于该输出掩码图层对原始图片数据进行调色输出最终的结果图。

9、在上述技术方案中,本实施例只需执行一次最终的输出掩码图层,而不需要对每个源掩码图层的算法结果进行遍历,这种方法成功地避免了在串行执行算法时可能出现的效果不可逆的问题。以曝光算法为例,如果上一步的曝光调色导致局部过曝,那么在下一补局部曝光调整时无法将曝光度降低,从而无法还原图像的细节。而通过本实施例的方法,可以避免这种情况的发生,使得局部调色成为一种可逆的操作,为图像调整带来了更多的创新可能性。在本实施例中,所述可逆的操作指的是,局部调整有能力还原全局或者其他局部的调整。举个例子,全局调整一张人脸曝光不足的大光比的场景照片。一般的,针对人脸进行正向曝光调整,这时候人脸曝光调整到合适的亮度,就会造成背景过曝,高光失去细节。这时候对背景再做高光负向调整,高光如果能拉的会细节,这就是可逆的操作,如果拉不会细节,则就是不可逆的操作。本案所描述可逆的操作方法,直接针对人脸全局拉高曝光,针对背景局部降低曝光,两步就完成了。

10、在一些实施例中,基于该输出掩码图层对原始图片数据进行调色输出最终的结果图,具体地:

11、利用输出掩码图层转换得到最终掩码图层,转换公式如下:

12、掩码图层=2-|dst_掩码图层_val|-1

13、式中,dst_掩码图层_val为输出掩码值,掩码图层为最终掩码图层;

14、利用最终掩码图层作为算法滑竿值的输入,执行图片调整算法利用最终掩码图层调整原始图片数据得到最终结果图。

15、在上述技术方案中,上述转换公式表示指每一个输入掩码层在每个算法滑竿值上程度的效果体现,如果滑竿值是-100到100归一化到-1到1和掩码图层的0~1的归一化的值相乘,如果有n个输入掩码,则这个最终掩码图层的值范围是-n到n。该公式中如果dst_掩码图层_val大于0.0,则将dst_掩码图层_val的值取反。需要进一步说明的是,本实施例所提出的公式刚好在mask值为1的时候效果等同于于全局滑竿的效果。至于拟合,因为mask有边缘契合问题,该函数是诸多函数里边缘过度表现相对较好的一个。本领域技术人员可根据自身的算法进行改进。

16、在一些实施例中,执行图片调整算法前,将图片数据调整时产生的每个源掩码图层的灰度值归一化后乘以对应该算法的算法滑竿值,并将所有源掩码图层的灰度值的计算结果累加得到一输出掩码图层。

17、在上述技术方案中,对每个源掩码图层的灰度值进行归一化处理,并计算得到输出掩码图层。这一步骤可以在算法执行前完成,从而在算法执行时无需保存所有的源掩码图层,降低了算法执行的峰值内存占用。通过这种方式,能够更高效地处理图像,并最大限度地减少内存占用。

18、根据本发明的另一个方面,提供一种低内存占用的实时局部调色装置,依序连接的掩膜模块和调色模块

19、掩膜模块,用于将每次算法调整原始图片数据时产生的每个源掩码图层的灰度值归一化后乘以对应该算法的算法滑竿值,并将所有源掩码图层的灰度值的计算结果累加得到一输出掩码图层;

20、调色模块,用于利用该输出掩码图层调整原始图片数据。

21、在上述技术方案中,针对导致实时预览的性能大幅度下降的问题,将所有的灰度掩码图层(范围从0到255)归一化到0.0到1.0的范围,然后将每个掩码图层的值乘以对应算法效果滑竿的值,累加到最终结果掩码图层上。这样,在执行局部算法时,就无需遍历所有图层并对每个算法滑竿和掩码图层值进行alpha融合。此外,这种方案避免了串行执行方案中存在的效果不可逆的问题和性能问题。更重要的是,在算法执行期间无需保存所有的掩码图层图层,只需最终的一张掩码图层,因此内存和性能与图层数量无关。

22、根据本发明的又一个方面,提供一种低内存占用的实时局部调色设备,包括:

23、至少一个处理器;以及,

24、与所述至少一个处理器通信连接的存储器;其中,

25、所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上所述的低内存占用的实时局部调色方法。

26、在上述技术方案中,为了更好的运行和处理该方法,将上述方法存储至存储器,并利用处理器来执行存储的方法。需要注意的是,每个步骤的原理和效果已在上文描述,此处不再展开说明。

27、根据本发明的再一个方面,提出一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述的低内存占用的实时局部调色方法。

28、在上述技术方案中,为了更好的运行和使用该方法,将上述方法存储至计算机可读存储介质,并利用处理器来实现上述方法。需要注意的是,每个步骤的原理和效果已在上文描述,此处不再展开说明。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1